클래스를 이용하지 않고 그럭저럭 테트리스가 완성되었다.
만약 이 테트리스게임을 2명,3명... 아니 100명이서 할려고 한다고 생각해 보자.
100개를 각각 키보드를 눌렀느지 체크하고,
100개를 각각 한줄이 없어졌는지 체크하고,
100개를 각각 게임이 끝났는지 체크하고,
.......... 점수를 체크하고.
지금 사용하는 변수의 수를100배로 늘려야 하고,
복사해서 붙여넣기도 한계가 있을 것이다.
.................................................
생각만 해도 끔찍할 것이다.
이런 똑같은 작업을 여러 개 할수 있게 도와주는 것이 클래스라는 것이다.
사람으로 예를 들어 보자.
사람 5000천만명이 있다고 할때 그 많은 사람들을 가장 효율적으로 관리할수 있는 방법이 무엇일까?
그 사람들을 모두 한 곳에서 통제를 하는게 좋을까? 그렇지 않다.
'가족'을 모아서 '세대'로 만들고
'세대'를 모아서 '동'으로 만들고
'동'을 모아서 '구'로 만들고
'구'를 모아서 '시'로 만들어 관리를 하면 효율적이다.
즉 작은 것을 묶어서 하나의 패키지(?)로 관리를 하고.
또 그 패키지를 모아서 더 큰 패키지를 만들면 관리하기가 편해진다는 것이다.
테트리스 게임을 여러개 만들려면
그 게임을 하나의 패키지로 만들어서 그냥 복사해서 쓰면 되는 것이다.
즉, 클래스를 만들어 사용하면 되는 것이다.
클래스의 구조
(앞으로 작업하게 될)테트리스게임의 클래스구조를 보면 아래와 같다.
CWATOneTetris 는 클래스의 이름이다. (변수명과 같은거라 보면 된다.)
그리고 좌표와 현재점수, 현재모양 등의 변수를 가지며,
좌측이동, 우측이동, 한줄없애기, 게임진행 등의 함수를 가진다.
이제부터 이 클래스를 구체적으로 만들어보고 3개의 테트리스 게임을 동시에 해볼것이다.
.
만약 이 테트리스게임을 2명,3명... 아니 100명이서 할려고 한다고 생각해 보자.
100개를 각각 키보드를 눌렀느지 체크하고,
100개를 각각 한줄이 없어졌는지 체크하고,
100개를 각각 게임이 끝났는지 체크하고,
.......... 점수를 체크하고.
지금 사용하는 변수의 수를100배로 늘려야 하고,
복사해서 붙여넣기도 한계가 있을 것이다.
.................................................
생각만 해도 끔찍할 것이다.
이런 똑같은 작업을 여러 개 할수 있게 도와주는 것이 클래스라는 것이다.
사람으로 예를 들어 보자.
사람 5000천만명이 있다고 할때 그 많은 사람들을 가장 효율적으로 관리할수 있는 방법이 무엇일까?
그 사람들을 모두 한 곳에서 통제를 하는게 좋을까? 그렇지 않다.
'가족'을 모아서 '세대'로 만들고
'세대'를 모아서 '동'으로 만들고
'동'을 모아서 '구'로 만들고
'구'를 모아서 '시'로 만들어 관리를 하면 효율적이다.
즉 작은 것을 묶어서 하나의 패키지(?)로 관리를 하고.
또 그 패키지를 모아서 더 큰 패키지를 만들면 관리하기가 편해진다는 것이다.
테트리스 게임을 여러개 만들려면
그 게임을 하나의 패키지로 만들어서 그냥 복사해서 쓰면 되는 것이다.
즉, 클래스를 만들어 사용하면 되는 것이다.
하나의 테트리스 |
하나의 테트리스 |
하나의 테트리스 |
하나의 테트리스 |
하나의 테트리스 |
하나의 테트리스 |
클래스의 구조
(앞으로 작업하게 될)테트리스게임의 클래스구조를 보면 아래와 같다.
class CWATOneTetirs{
int x좌표;
int y좌표;
int 현재점수;
int 현재 모양;
BOOL 좌측으로 한칸이동();
BOOL 우측으로 한칸이동();
BOOL 한줄 없애기();
BOOL 게임진행();
...............
};
맨 위의 class라는 것은 클래스로 선언한다는 것을 나타내는 것이고,int x좌표;
int y좌표;
int 현재점수;
int 현재 모양;
BOOL 좌측으로 한칸이동();
BOOL 우측으로 한칸이동();
BOOL 한줄 없애기();
BOOL 게임진행();
...............
};
CWATOneTetris 는 클래스의 이름이다. (변수명과 같은거라 보면 된다.)
그리고 좌표와 현재점수, 현재모양 등의 변수를 가지며,
좌측이동, 우측이동, 한줄없애기, 게임진행 등의 함수를 가진다.
이제부터 이 클래스를 구체적으로 만들어보고 3개의 테트리스 게임을 동시에 해볼것이다.
.