/*
재귀함수 : 자신에게 다시 돌아오는 함수
f(n) : 1부터 n까지 출력
: 1출력 -> 2출력 -> ...->n-1출력->n출력
: f(n-1) -> n출력
#include <stdio.h>
void f(int n)
{
if(n==0) return ;//1.종료조건
f(n-1); //2. 재귀호출
printf("%d ",n);
}
int main()
{
f(5);
return 0;
}
#include<stdio.h>
void f(int n)
{
if(n==0) return ;
printf("%d\n",n);
f(n-1);
}
int main()
{
int n;
scanf("%d",&n);
f(n);
return 0;
}
#include<stdio.h>
void f(int a,int b)
{
if(a>b) return ;
f(a,b-1);
if(b%2==1)
{
printf("%d ",b);
}
}
int main()
{
int a,b;
scanf("%d %d",&a,&b);
f(a,b);
return 0;
}
#include<stdio.h>
void f(int n)
{
printf("%d\n",n);
if(n==1) return ;
if(n%2==1)
{
f(3*n+1);
}
else
{
f(n/2);
}
}
int main()
{
int n;
scanf("%d",&n);
f(n);
return 0;
}*/
#include<stdio.h>
#include<windows.h>
#include <stdlib.h>
void gotoxy(int x, int y)
{
COORD Pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
char board[3][3];
void view()
{
int i, j;
gotoxy(0,1);
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("%c |",board[i][j]);
}
printf("\n----------\n");
}
}
int isend()
{
if(' '!=board[0][0] && board[0][0]==board[1][0] && board[1][0]==board[2][0] ||
' '!=board[0][1] && board[0][1]==board[1][1] && board[1][1]==board[2][1] ||
' '!=board[0][2] &&board[0][2]==board[1][2] && board[1][2]==board[2][2] ||
' '!=board[0][0] &&board[0][0]==board[0][1] && board[0][1]==board[0][2] ||
' '!=board[1][0] && board[1][0]==board[1][1] && board[1][1]==board[1][2] ||
' '!=board[2][0] &&board[2][0]==board[2][1] && board[2][1]==board[2][2] ||
' '!=board[0][0] &&board[0][0]==board[1][1] && board[1][1]==board[2][2] ||
' '!=board[0][2] && board[0][2]==board[1][1] && board[1][1]==board[2][0])
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int x,y,k,i,j;
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
board[i][j]=' ';
}
}
for(i=0; i<9; i++)
{
view();
printf("좌표를 입력하세요.");
scanf("%d %d",&x,&y);
if(board[x][y]==' ')
{
if(i%2==0)
{
board[x][y]='O';
}
else
{
board[x][y]='X';
}
view();
}
else
{
printf("이미 선택된 자리입니다. 다른 자리를 선택해 주세요.\n");
i--;
}
if(isend()==1)
{
if(i%2==0) printf("player O");
else printf("player X ");
printf("이 이겼습니다\n");
return 0;
}
system( "cls" );
}
return 0;
}