1번 코드
#include <stdio.h>
int main()
{
int number[5][10];
int i=0,j;
for(i=0;i<50;i++) number[0][i]=i;
printf("한자리 숫자를 아래와 같은 형태로 입력해 주세요.\n");
printf("o o o o o\no o o o o\no o o o o\no o o o o\no o o o o\n");
printf("\n");
for(i=0;i<5;i++) scanf("%d %d %d %d %d",&number[i][0],&number[i][1],&number[i][2],&number[i][3],&number[i][4]);
printf("\n\n");
printf(" │\n │ transpose\n ▼\n\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++) printf("%2d",number[j][i]);
printf("\n");
}
printf("\n");
return 0;
1번코드 특별과제
#include <stdio.h>
int main()
{
int number[100][100];
int i=0,j;
int matrix_size;
for(i=0;i<10000;i++) number[0][i]=i;
printf("n*n행렬의 크기(행&열의 갯수)를 입력해주세요. : ");
scanf("%d",&matrix_size);
printf("한자리 숫자를 %d*%d형태의 행렬로 입력해주세요.\n",matrix_size,matrix_size);
printf("\n");
for(i=0;i<matrix_size;i++)
{
for(j=0;j<matrix_size;j++)
{
scanf("%d",&number[i][j]);//행렬의 크기만큼 입력받도록
}
}
printf("\n\n");
for(i=0;i<=matrix_size/2;i++) printf(" ");
printf("│\n");
for(i=0;i<=matrix_size/2;i++) printf(" ");
printf("│ transpose\n");
for(i=0;i<=matrix_size/2;i++) printf(" ");
printf("▼\n\n");
for(i=0;i<matrix_size;i++)
{
for(j=0;j<matrix_size;j++) printf("%2d",number[j][i]);
printf("\n");
}
printf("\n");
return 0;
}
2번 코드-A.I.포함
#include <stdio.h>
#include <Windows.h>
#include <time.h>
void UserTurn();
void ComputerTurn_Easy();
void ComputerTurn_Hard();
int o_x[3][3];
int main()
{
int i,finish_game,mode_select,turn_select,total_count=0;
for(i=0;i<9;i++) o_x[0][i]=0;
printf("tic-tac-toe\n");
printf("모드를 선택해주세요.(쉬움 : 1,어려움 : 2) : ");
scanf("%d",&mode_select);
printf("어느쪽이 먼저 시작하시겠습니까?(1. 당신,2. 컴퓨터)");
scanf("%d",&turn_select);
if(mode_select==1) printf("쉬움을 선택하셨습니다.\n");
else if(mode_select==2) printf("어려움을 선택하셨습니다.\n");
else
{
printf("이상한 선택을 하셨습니다.\n3초후 게임이 꺼집니다.\n");
Sleep(3000);
return 0;
}
if(turn_select==1) printf("먼저 시작합니다.\n");
else if(turn_select==2) printf("컴퓨터가 먼저 시작합니다.\n");
else
{
printf("이상한 선택을 하셨습니다.\n3초후 게임이 꺼집니다.\n");
Sleep(3000);
return 0;
}
printf("3초후에 게임 시작합니다.\n");
printf("3\n");
Sleep(1000);
printf("2\n");
Sleep(1000);
printf("1\n");
Sleep(1000);
printf("start~!");
while(1)//게임의 지속여부
{
system("cls");
printf("┌─┬─┬─┐\n");
printf("│%c │%c │%c │\n",o_x[0][0],o_x[0][1],o_x[0][2]);
printf("├─┼─┼─┤\n");
printf("│%c │%c │%c │\n",o_x[1][0],o_x[1][1],o_x[1][2]);
printf("├─┼─┼─┤\n");
printf("│%c │%c │%c │\n",o_x[2][0],o_x[2][1],o_x[2][2]);
printf("└─┴─┴─┘\n");
while(1)//게임 한판
{
printf("tic-tac-toe\n");
if(turn_select==1)
{
UserTurn();
total_count++;
turn_select=2;
}
system("cls");
printf("┌─┬─┬─┐\n");
printf("│%c │%c │%c │\n",o_x[0][0],o_x[0][1],o_x[0][2]);
printf("├─┼─┼─┤\n");
printf("│%c │%c │%c │\n",o_x[1][0],o_x[1][1],o_x[1][2]);
printf("├─┼─┼─┤\n");
printf("│%c │%c │%c │\n",o_x[2][0],o_x[2][1],o_x[2][2]);
printf("└─┴─┴─┘\n");
if((o_x[0][0]=='o'&&o_x[0][1]=='o'&&o_x[0][2]=='o')||(o_x[1][0]=='o'&&o_x[1][1]=='o'&&o_x[1][2]=='o')||(o_x[2][0]=='o'&&o_x[2][1]=='o'&&o_x[2][2]=='o')||(o_x[0][0]=='o'&&o_x[1][0]=='o'&&o_x[2][0]=='o')||(o_x[0][1]=='o'&&o_x[1][1]=='o'&&o_x[2][1]=='o')||(o_x[0][2]=='o'&&o_x[1][2]=='o'&&o_x[2][2]=='o')||(o_x[0][0]=='o'&&o_x[1][1]=='o'&&o_x[2][2]=='o')||(o_x[2][0]=='o'&&o_x[1][1]=='o'&&o_x[0][2]=='o'))
{
printf("당신이 이겼습니다. 축하드립니다.\n");
break;
}
else if(total_count==9)
{
printf("무승부입니다. 수고하셨습니다.\n");
break;
}
if(turn_select==2)
{
if(mode_select==1) ComputerTurn_Easy();
else if(mode_select==2) ComputerTurn_Hard();
total_count++;
turn_select=1;
}
system("cls");
printf("┌─┬─┬─┐\n");
printf("│%c │%c │%c │\n",o_x[0][0],o_x[0][1],o_x[0][2]);
printf("├─┼─┼─┤\n");
printf("│%c │%c │%c │\n",o_x[1][0],o_x[1][1],o_x[1][2]);
printf("├─┼─┼─┤\n");
printf("│%c │%c │%c │\n",o_x[2][0],o_x[2][1],o_x[2][2]);
printf("└─┴─┴─┘\n");
if((o_x[0][0]=='x'&&o_x[0][1]=='x'&&o_x[0][2]=='x')||(o_x[1][0]=='x'&&o_x[1][1]=='x'&&o_x[1][2]=='x')||(o_x[2][0]=='x'&&o_x[2][1]=='x'&&o_x[2][2]=='x')||(o_x[0][0]=='x'&&o_x[1][0]=='x'&&o_x[2][0]=='x')||(o_x[0][1]=='x'&&o_x[1][1]=='x'&&o_x[2][1]=='x')||(o_x[0][2]=='x'&&o_x[1][2]=='x'&&o_x[2][2]=='x')||(o_x[0][0]=='x'&&o_x[1][1]=='x'&&o_x[2][2]=='x')||(o_x[2][0]=='x'&&o_x[1][1]=='x'&&o_x[0][2]=='x'))
{
printf("컴퓨터가 당신을 이겼습니다. 분발하시기바랍니다.\n");
break;
}
else if(total_count==9)
{
printf("무승부입니다. 수고하셨습니다.\n");
break;
}
}
printf("게임을 계속 하시려면 1,그만두시려면 0을 입력하시기 바랍니다. : ");
scanf("%d",&finish_game);
if(finish_game==1)
{
for(i=0;i<9;i++) o_x[0][i]=0;
total_count=0;
printf("모드를 선택해주세요.(쉬움 : 1,어려움 : 2) : ");
scanf("%d",&mode_select);
printf("어느쪽이 먼저 시작하시겠습니까?(1. 당신,2. 컴퓨터)");
scanf("%d",&turn_select);
if(mode_select==1) printf("쉬움을 선택하셨습니다.\n");
else if(mode_select==2) printf("어려움을 선택하셨습니다.\n");
else
{
printf("이상한 선택을 하셨습니다.\n3초후 게임이 꺼집니다.\n");
Sleep(3000);
return 0;
}
if(turn_select==1) printf("먼저 시작합니다.\n");
else if(turn_select==2) printf("컴퓨터가 먼저 시작합니다.\n");
else
{
printf("이상한 선택을 하셨습니다.\n3초후 게임이 꺼집니다.\n");
Sleep(3000);
return 0;
}
}
else break;
turn_select=0;
}
printf("게임을 종료합니다.\n");
Sleep(2000);
return 0;
}
void UserTurn()
{
int row_number,column_number,select_check;
printf("당신의 차례입니다. 행과 열을 선택해주세요.\n");
printf("행을 선택해주세요.(1~3행) : ");
scanf("%d",&row_number);
printf("열을 선택해주세요.(1~3열) : ");
scanf("%d",&column_number);
printf("선택하신곳이 %d행 %d열이 맞습니까?\n맞으면 1, 틀리면 0을 선택해주세요. : ",row_number,column_number);
scanf("%d",&select_check);
row_number-=1;
column_number-=1;
if(select_check==1)
{
if(o_x[row_number][column_number]=='x'||o_x[row_number][column_number]=='o')
{
printf("빈 공간이 아닙니다. 다시선택해주세요\n");
UserTurn();
}
else o_x[row_number][column_number]='o';
}
else if(select_check==0) UserTurn();
}
void ComputerTurn_Easy()
{
int row_number,column_number;
srand(time(NULL));
row_number=rand();
column_number=rand();
row_number%=3;
column_number%=3;
Sleep(50);
if(o_x[row_number][column_number]=='x'||o_x[row_number][column_number]=='o') ComputerTurn_Easy();
else o_x[row_number][column_number]='x';
}
void ComputerTurn_Hard()
{
int i,j,select_check;
select_check=0;
if(o_x[1][1]==0) o_x[1][1]='x';
else
{
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(o_x[i][j]=='x'&&o_x[(i+1)%3][j]=='x')//열
{
if(o_x[(i+2)%3][j]==0) o_x[(i+2)%3][j]='x';
else continue;
select_check++;
break;
}
else if(o_x[i][j]=='x'&&o_x[i][(j+1)%3]=='x')//행
{
if(o_x[i][(j+2)%3]==0) o_x[i][(j+2)%3]='x';
else continue;
select_check++;
break;
}
else if(o_x[i][j]=='x'&&o_x[(i+1)%3][(j+1)%3]=='x')//대각선
{
if(o_x[(i+2)%3][(j+2)%3]==0) o_x[(i+2)%3][(j+2)%3]='x';
else continue;
select_check++;
break;
}
else if(o_x[i][j]=='o'&&o_x[(i+1)%3][j]=='o')//열
{
if(o_x[(i+2)%3][j]==0) o_x[(i+2)%3][j]='x';
else continue;
select_check++;
break;
}
else if(o_x[i][j]=='o'&&o_x[i][(j+1)%3]=='o')//행
{
if(o_x[i][(j+2)%3]==0) o_x[i][(j+2)%3]='x';
else continue;
select_check++;
break;
}
else if(o_x[i][j]=='o'&&o_x[(i+1)%3][(j+1)%3]=='o')//대각선
{
if(o_x[(i+2)%3][(j+2)%3]==0) o_x[(i+2)%3][(j+2)%3]='x';
else continue;
select_check++;
break;
}
}
}
if(select_check==0)//아무것도 아닐때
{
ComputerTurn_Easy();
}
}
}
*2번째 코드에서 어려움모드(A.I.)돌아는 가지만 오류가 보임...