본문 바로가기

OOP, FP/스칼라로 만드는 테트리스

(11)
03. [스칼라 테트리스] GUI, 스윙 컴포넌트 관련 클래스 분석 -1- 오늘은 UI를 분석하기 전에, 스칼라의 Swing에 대해 공부했다.스칼라는 JVM 기반으로 구동된다. 자바의 광범위한 라이브러리를 가져다 쓸 수 있으며,문법 또한 자바와 상단 부분 비슷하다. 아직 스칼라 책을 두번정도 읽어봤을 뿐, 딱히 무언가를 만들어 본 적이 없다. 뿐만 아니라, 스칼라로 프로그램을 만들어본 경험이 없기 때문에 트레잇, 패턴 매칭, 높은 다형성과 같은 스칼라의 장점이 잘 이해가 가질 않는다. 스칼라의 장점은 무엇일까?일반적인 함수형 언어와 같이 의도하지 않았던 부작용으로 부터 발생하는 이슈들을 줄이기 위해 함수형 프로그래밍 테크닉을 익힐 수 있다. 부작용은 이전에 함수형 자바스크립트에서 공부한 부수 효과와 같은 것이다.함수에서 출력(반환) 이 아닌 외부의 상태에 영향을 미치는 효과를 ..
02. [스칼라 테트리스] 자료 구조 분석 단면 테트로미노는 아래와 같이 알파벳과 블록이 매칭된다. I O TJ L S Z 테트로미노는 4개의 정사각형으로 이루어진 폴리오미노다.폴리오미노란 n(n > 1)개의 정사각형들이 서로 최소한 1개의 변을 공유하여 만들어지는 다각형들을 총칭한다가장 작은 단위인 Block 클래스가 있다.기본 블록들은 4개의 정사각형의 좌표를 튜플로 관리하여 모양을 표시한다.블록은 패널의 (5, 1)부터 그려진다. (이를 중앙 혹은 (0,0)이라 칭하겠다)블록의 움직임은 left: x가 1감소, right: x가 1증가, top: y가 1감소, bottom: y가 1증가 와 같이 움직인다.T는 중앙(0,0), 중앙왼쪽(-1,0), 중앙오른쪽(1,0), 중앙아래(0,1)로 시작한다.S는 중앙(0,0), 중앙왼쪽(-1,0), 중..
01. [스칼라 테트리스] 오픈 소스, 전체 클레스 분석 스칼라로 작성된 싱글 테트리스 스칼라로 테트리스를 만들어 보려고 한다.이 서비스와 유사한 서비스와 앱을 검색해서 알아보고 정리한다.깃헙에서 Scaltris라는 프로젝트를 발견했다.해당 프로젝트는 1인용 테트리스 게임이다.코드의 흐름을 분석한다.실행 방법우선 실행을 위해선 sbt 1.0이상의 버전이 필요하다.sbt 1.0.2를 설치한 뒤 프로젝트 디렉터리에서 sbt run 명령어를 실행하니 문제없이 실행되었다.프로젝트 설정 방법이클립스에 scala plugin을 설치한다.sbt에 이클립스 플러그인을 추가한 뒤 sbt eclipse 명령어를 입력하면 프로젝트를 이클립스에 import 할 수 있다.코드 분석 - 7개의 scala 클래스 파일이 있다.Scaltris.scala프로그램을 처음 실행하면 시작되는 메..