Created
October 8, 2016 19:23
-
-
Save irrationnelle/9a09a6e7c5919306a51526ac6f93b661 to your computer and use it in GitHub Desktop.
보드 인터페이스
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package team_project; | |
public interface BoardInterface { | |
/* | |
* 보드의 width = 10, height = 22 는 | |
* 각각 가로로 10개의 사각형(사각형 네 개가 모여 피스 하나를 이룸), | |
* 세로로 22개의 사각형을 의미합니다. | |
* 따라서, 보드판의 크기는 사각형 한 면의 길이에 따라 다릅니다. 그리고 사각형 한 면의 길이는 피스를 이루는 사각형 한 면의 길이와 동일해야합니다. | |
* 이는 블록 클래스와 동일한 값을 가져야 하므로, 사각형 한 면의 길이는 상수가 아닌 변수로 지정합니다. | |
* 메소드들이 boolean타입을 반환할 때 저장할 수 있는 boolean타입 변수를 선언합니다. | |
* 메소드에 특별히 블록 객체가 매개 변수로 선언되지 않은 것은, 블록 객체는 보드 클래스의 필드(멤버 변수)로 선언되기 때문이며, | |
* 따라서 블록 객체를 현재 보드 클래스의 필드로 가져야 하며, 블록 객체로부터 받아오는 값들은 '수정된' 블록 인터페이스를 참조합니다. | |
* !!!!주의:--'수정된' 블록 인터페이스는 현재(16.10.09.오전 4시)는 미구현 상태입니다. 일단은 블록 클래스에 임의로 상수값과 임의의 메소드들을 넣어서 만들어주세요..ㅠ-- | |
* 현재 인터페이스에 명시된 것 이외의 메소드를 선언할 경우에는 가급적 인터페이스에 명시된 메소드들 내부에서만 호출되는 메소드들로 해주세요. | |
* 즉, 타 클래스에서 현재 인터페이스에 명시된 메소드들이 아닌 '상정하지 않은 메소드들'을 호출해야만 하는 경우를 최대한 지양해주세요. | |
* | |
* 참고로, http://www.ssaurel.com/blog/learn-to-create-a-tetris-game-in-java-with-swing/ 에서 | |
* 보드의 크기를 지정할 때, Dimension 클래스의 getSize().getWidth() 메소드와 getSize().getHeight()메소드를 사용하는데 | |
* 이것은 현재 프레임(JFrame 클래스의 객체)의 크기(setSize()메소드로 정한 크기)를 직접 가져오는 메소드입니다. | |
* 구글링해도 내용찾기가 힘들었기 때문에 여기에 주석으로 남깁니다. | |
*/ | |
void clearBoard(); // 보드를 모두 NoShape 피스로 채운다. 이후에 shapeAt 메소드를 통해 다른 모양의 피스를 '쌓기'위한 선행 단계 | |
boolean isGameOver(); // 보드의 최상단(int boardTop) 값이 피스의 currentY 값 이상인 경우, True를 반환한다. | |
boolean isWall(); // 피스의 maxX값이 보드의 양끝 좌표의 x값보다 이하(좌)/이상(우)인 경우 True를 반환한다. | |
boolean isCollideAt(); // 피스가 보드의 최하단에 도착하여 피스의 maxY값이 보드의 최하단부 Y값 이상인 경우 True를 반환한다. | |
void stackUpBlock(); // 현재 피스의 정보(피스 종류(L,J..), 좌표값(x,y)을 저장한다. | |
Tetrominoes shapeAt(int currentX, int currentY); // 인자로 전달한 x,y 값에 따라 해당 좌표에 피스값을 가지는 enum 값을 반환하도록 한다. | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment