2013년 8월 22일 목요일

컴퓨터과학,객체지향,출석대체과제,2009,1학기,2학년,메뉴얼 2학년 객체지향프로그래밍 출석수업대체시험 실험?실습과제

컴퓨터과학,객체지향,출석대체과제,2009,1학기,2학년,메뉴얼 2학년 객체지향프로그래밍 출석수업대체시험 실험?실습과제
tictactoe.zip


목차
3목 게임(tic-tac-toe)을 나타내는 클래스를 설계하고, 이를 이용하여 X와 O가 번갈아 수를 두어 승자를 결정하는 프로그램을 작성하라. 임의의 행, 열, 또는 대각선을 먼저 모두 차지한 X 또는 O가 승자가 홱?
3목 게임 클래스의 객체는 다음과 같은 행위를 할 수 있다.
3목 게임 클래스
□ 게임판을 초기화한다.
□ 지정된 행/열에 X 또는 O의 수를 둔다.
□ 승자가 결정되었는지 판별한다.
□ 게임 판을 화면에 디스플레이한다.

▶ 프로그램 동작 : X와 O가 번갈아 수를 두게 한다. 수를 놓을 위치는 행과 열 번호를 입력하게 한다(예 : 아래의 판에서 현재 O가 놓인 위치는 ‘A3’ 이라고 지정함). 수를 둘 때마다 현재 판의 상황을 아래 그림과 같이 출력한다. 승부가 나면 승자를 알린다.
123
A..O
B.X.
C..X


☞ 주의
▷ 클래스에 필요한 데이터 멤버 및 멤버 함수는 각자 설계한다. 위에 나열한 행위 이외에도 필요한 사항은 멤버 함수로 정의한다.
▷ 프로그램은 개인별로 작성하여야 하며, 공동 작업은 인정하지 않음
▷ 실행 프로그램의 예는 과목 자료실에 등록해 놓을 예정이니 참고하기 바람

☞ 제출할 내용
① 클래스 멤버 설계에 대한 설명
② 소스 프로그램 인쇄물
③ 실행 결과 출력물
④ 소스파일(디스켓 또는 CD-ROM에 제출. 디스켓의 경우 손상 여부 확인)

안녕하세요. 객체지향프로그래밍 매뉴얼 제작자입니다. 우선 본 프로그램을 소개해 드리면
쉽게 보이도록 편집했습니다. 다만 어렵게 느끼실 부분들은 최대한 길게 주석을 달아놓았습니다. 그냥 그대로 컴파일

1. 요구분석
3목 게임(tic-tac-toe)을 나타내는 클래스를 설계하고, 이를 이용하여 X와 O가 번갈아 수를 두어 승자를 결정하는 프로그램을 작성하라. 임의의 행, 열, 또는 대각선을 먼저 모두 차지한 X 또는 O가 승자가 된다.






본문
3목 게임 클래스의 객체는 다음과 같은 행위를 할 수 있다.
3목 게임 클래스
□ 게임판을 초기화한다.
□ 지정된 행/열에 X 또는 O의 수를 둔다.
□ 승자가 결정되었는지 판별한다.
□ 게임 판을 화면에 디스플레이한다.


프로그램 동작 : X와 O가 번갈아 수를 두게 한다. 수를 놓을 위치는 행과 열 번호를 입력하게 한다(예 : 아래의 판에서 현재 O가 놓인 위치는 ‘A3’ 이라고 지정함). 수를 둘 때마다 현재 판의 상황을 아래 그림과 같이 출력한다. 승부가 나면 승자를 알린다.

2. 클래스 모델링 설계

void Default(); //게임을 할수 있도록 초기화
int input(char a); //좌표를 입력받아 화면에 전달
void Screen();//현재 엽력받은
.

> 클래스 모델링은 클래스를 만들고 그 속에 함수와 변수들의 역할에 대해서 설명하는 부분입니다. 꼭 이렇게 할 필요는 없습니다. PUBLIC와PUBLIC의 역할에 대해서 책의 클래스 파트를 읽어보시면 어느정도 이해가 가
.


본문내용
ar mok[9]; //1차원배열로 선언 했습니다. 2차원 배열로 응용가능합니다.
public:
void Default();
int input(char a);
void Screen();
void Win();
};
int sammok::input(char a)//입력부분
{
int select;
cout << "좌표를 입력하시오. " ;
cin >> select;
switch(select)// 입력 부분의 핵심 스위치문!
{
case 11 : if (mok[0] ) {
mok[0] = a;
system("cls");
Screen();
break;}
else
{cout<<"그곳은 둘수없습니다."<<endl;
input(a);
break;
}
case 12 : if (mok[1] ) {
mok[

참고문헌


하고 싶은 말
메뉴얼로 쉽게 변경하실수 있을겁니다!
 

댓글 없음:

댓글 쓰기