1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | #include <iostream> using namespace std; int board[3][3] = {0,{0,},}; //전역변수 void opning(){ cout<< "TicTacToe게임입니다." <<endl; cout<< "연속적으로 3개의 모형이 나오면 이기는 게임입니다." <<endl; cout<< "입력은 1~3만 받습니다, 만약 (0,0)을 입력시 조기종료를 할 수 있습니다." <<endl; } void draw_ground(){ //화면에 그려주는 함수 for ( int i=0;i<15;i++) cout<< "-" ; //첫째 줄 cout<<endl; for ( int i=0;i<3;i++){ //둘째 줄 cout<< "|" ; if (board[0][i]==1) cout<< " O |" ; else if (board[0][i]==2) cout<< " X |" ; else cout<< " |" ; } cout<<endl; for ( int i=0;i<15;i++) cout<< "-" ; //셋째 줄 cout<<endl; for ( int i=0;i<3;i++){ //넷째 줄 cout<< "|" ; if (board[1][i]==1) cout<< " O |" ; else if (board[1][i]==2) cout<< " X |" ; else cout<< " |" ; } cout<<endl; for ( int i=0;i<15;i++) cout<< "-" ; //다섯째 줄 cout<<endl; for ( int i=0;i<3;i++){ //여섯째 줄 cout<< "|" ; if (board[2][i]==1) cout<< " O |" ; else if (board[2][i]==2) cout<< " X |" ; else cout<< " |" ; } cout<<endl; for ( int i=0;i<15;i++) cout<< "-" ; //일곱째 줄 cout<<endl; } bool check(){ //게임이 끝났는지 체크하는 함수 for ( int i = 0; i < 3; i++){ if ((board[i][0] == 1)&&(board[i][1] == 1)&&(board[i][2] == 1)||(board[i][0] == 2)&&(board[i][1 ]== 2)&&(board[i][2] == 2)) return true ; //가로 체크 if ((board[0][i] == 1)&&(board[1][i] == 1)&&(board[2][i] == 1)||(board[0][i] == 2)&&(board[1][i] == 2)&&(board[2][i] == 2)) return true ; //세로 체크 } if ((board[0][0] == 1)&&(board[1][1] == 1)&&(board[2][2] == 1)||(board[0][0] == 2)&&(board[1][1] == 2)&&(board[2][2] == 2)) return true ; //대각선 체크 if ((board[0][2] == 1)&&(board[1][1] == 1)&&(board[2][0] == 1)||(board[0][2] == 2)&&(board[1][1] == 2)&&(board[2][0] == 2)) return true ; //대각선 / 체크 return false ; } void main(){ int x, y; opning(); //오프닝 함수 호출 draw_ground(); //시작전 화면 호출 for ( int a = 1 ; a <= 10 ; a++){ //게임이 아무리 길어져도 9턴까지 반복문 9번 돌림 if (a == 10){ //9턴이 될때까지 승패가 나지않으면 무승부처리 cout<< "무승부입니다" <<endl; break ; } if (a%2==1) cout<< "1P차례" ; else cout<< "2P차례" ; cout<< "(" <<a<< "턴)" <<endl; cout<< "좌표를 입력하세요." <<endl; cout<< "가로 : " ; cin>>x; cout<< "세로 : " ; cin>>y; if (x==0&&y==0){ //0,0입력시 종료시키는 if문 cout<< "종료를 실행하셨습니다." <<endl; break ; } if (x>3||y>3){ //1~3이 아닌 범위를 입력시 호출 cout<< "좌표범위를 넘었습니다.다시 입력하세요" <<endl; a--; } else if (board[y-1][x-1]==1||board[y-1][x-1]==2){ //입력한 자리에 입력시 호출 cout<< "이미 입력한 좌표입니다.다시 입력하세요" <<endl; a--; } else { //정상 진행 if (a%2==1) board[y-1][x-1] = 1; // 1 = 0 로 출력 else board[y-1][x-1] = 2; // 2 = X 로 출력 draw_ground(); //화면 표시 if (check()== true ){ //체크 함수 호출 if (a%2==1) cout<< "1P WIN, 2P 루져" <<endl; else cout<< "2P WIN, 1P 루져" <<endl; cout<< "게임을 종료하겠습니다" <<endl; break ; } } } } |