http://www.hackerschool.org/HS_Boards/zboard.php?desc=desc&no=3377 [º¹»ç]
¾Æ·¡ Äڵ带 Àß ÀÌÇØ ¸øÇÏ°Ú½À´Ï´Ù. ´ëÃæ Áß¿äÇÑ ºÎºÐ¿¡ ÁÖ¼®À» ´Þ¾ÆÁÖ¼¼¿ä
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#define NONE 0
#define LEFT 1
#define UP 2
#define RIGHT 3
#define DOWN 4
#define SET 5
#define DRAW -1
#define NONE 0
#define WINO 1
#define WINX 2
#define SETN 0
#define SETO 1
#define SETX 2
int arr[3][3];
int turn=SETO;
int px=2, py=2;
#define CT(x) (x==SETO ? SETX : x==SETX ? SETO : x )
#define CC(x) (x==SETO ? 'O' : x==SETX ? 'X' : ' ' )
#define over(x,y) ( (x<1) || (x>3) || (y<1) || (y>3) )
int chkwin()
{
int i,j,so,sx, dchk=0;
for ( i=0,j,so=0,sx=0 ; i < 3 ; i++,so=0,sx=0)
{
for (j=0 ; j < 3 ; j++ )
{
if(arr[i][j]==SETO) so++;
if(arr[i][j]==SETX) sx++;
}
if(so==3) return WINO;
if(sx==3) return WINX;
}
for ( i=0,j,so=0,sx=0 ; i < 3 ; i++,so=0,sx=0)
{
for (j=0 ; j < 3 ; j++ )
{
if(arr[j][i]==SETO) so++;
if(arr[j][i]==SETX) sx++;
}
if(so==3) return WINO;
if(sx==3) return WINX;
}
for( i=0 ; i<3 ; i++)
{
if(arr[i][i]==SETO) so++;
if(arr[i][i]==SETX) sx++;
}
if(so==3) return WINO;
if(sx==3) return WINX;
so=0,sx=0;
for( i=2, j=0 ; j<3 ; i--, j++ )
{
if(arr[i][j]==SETO) so++;
if(arr[i][j]==SETX) sx++;
}
if(so==3) return WINO;
if(sx==3) return WINX;
so=0,sx=0;
for ( i=0 ; i<3 ; i++ )
for ( j=0 ; j<3 ; j++ )
if(arr[i][j]) dchk++;
if(dchk==9) return DRAW;
return NONE;
}
int inputkey()
{
int t=_getch();
if(t==75) return LEFT;
if(t==72) return UP;
if(t==77) return RIGHT;
if(t==80) return DOWN;
if(t=='A' || t=='a') return SET;
return NULL;
}
void output()
{
system("cls");
for(int i=0,j=0 ; i < 3 ; i++ )
{
for (j=0 ; j < 3 ; j++ )
printf("%c ",CC(arr[j][i]));
if(py-1==i) printf("¡ç");
printf("\n");
}
if(px==1)printf("¡è\n");
if(px==2)printf(" ¡è\n");
if(px==3)printf(" ¡è\n");
printf("¹æÇâÅ°:À̵¿, A:³õ±â. [%cÂ÷·Ê]\n",CC(turn));
}
int set()
{
if(arr[px-1][py-1])
return false;
arr[px-1][py-1]=turn;
turn=CT(turn);
return true;
}
int main()
{
int key, tx=px, ty=py;
while(1)
{
output();
if(chkwin()) break;
key = inputkey();
tx=px,ty=py;
if(key==LEFT) px--;
if(key==UP) py--;
if(key==RIGHT) px++;
if(key==DOWN) py++;
if(key==SET) set();
if(over(px,py)) px=tx, py=ty;
}
if(chkwin()>0)
printf("%cÀÇ ½Â¸®ÀÔ´Ï´Ù.",CC(chkwin()));
else
printf("¹«½ÂºÎÀÔ´Ï´Ù.");
printf("Á¾·áÇÏ°Ú½À´Ï´Ù.\n");
system("pause");
return 0;
} |
Hit : 3377 Date : 2012/04/02 11:18
|