ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   jkh0721
   ÁÖ¼®À» ºÎʵ右´Ï´Ù

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&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 : 4267     Date : 2012/04/02 11:18



    
ralehgus123 ¤§¤§
Çì´õÆÄÀÏ·Î Á¤¸®Çسõ¾ÒÀ¸¸é ´õ ÁÁ¾ÒÀ» ÅÙµð...
´«ÀÌ ¾îÁö·¯¿ö¿ä...¤»¤»
±×¸®°í ¸µÄ¿ ¿¡·¯µµ Á¶±Ý ÀÖ°í
2012/04/07