삼자기 게임 C 언어 시뮬레이션 실현
#ifndef __ADD_H__
#define __ADD_H__
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
void game();
void com_move(char a[3][3]);
void play_move(char a[3][3]);
void init(char a[3][3]);
void print(char a[3][3]);
char check_win(char a[3][3]);
int is_full(char a[3][3]);//
#endif //__ADD_H__
test.c
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
void menu()
{
printf("**********************************
");
printf("****** 1.game 2.exit *******
");
printf("**********************************
");
}
void test()
{
int input = 0;
srand((unsigned int)time(NULL));
while(1)
{
menu();
scanf("%d",&input);
switch(input)
{
case 1:
game();
break;
case 2:
exit(1);
break;
default:
printf("
");
break;
}
}
}
int main()
{
test();
return 0;
}
game.c
#define _CRT_SECURE_NO_WARNINGS 1
#include "game.h"
// ,
void init(char a[3][3])
{
int i = 0;
int j = 0;
//memset(a,' ',row*col*sizeof(char)) <string.h>
// , ,
for(i = 0;i < 3;i++)
{
for(j=0;j<3;j++)
{
a[i][j]=' ';
}
}
}
//
void print(char a[3][3])
{
int i = 0;
for(i = 0;i<3;i++)
{
printf(" %c | %c | %c
",a[i][0],a[i][1],a[i][2]);
if ( 2!=i)
printf("-----------
");
}
printf("
");
}
void player_move(char a[3][3])
{
int x = 0;
int y = 0;
while(1)
{
printf(" :
");
scanf("%d%d",&x,&y);
if(x>=0&&x<=2&&y>=0&&y<=2)
{
if(' '==a[x][y])
{
a[x][y]='x';
break;
}
else
{
printf("
");
}
}
else
printf("
");
}
}
void com_move(char a[3][3])
{
int x = 0;
int y = 0;
while(1)
{
x = rand()%3;
y = rand()%3;
if(' '==a[x][y])
{
a[x][y] = '0';
break;
}
}
}
char check_win(char a[3][3])
{
int i = 0;
for(i=0;i<3;i++)
{
if ((a[i][0]==a[i][1])&&(a[i][1]==a[i][2])&&(a[i][0]!=' ')) //
return a[i][0];
if ((a[0][i]==a[1][i])&&(a[1][i]==a[2][i])&&(a[0][i]!=' ')) //
return a[0][i];
if ((a[0][0]==a[1][1])&&(a[1][1]==a[2][2])&&(a[0][0]!=' '))
return a[0][0];
if ((a[0][2]==a[1][1])&&(a[1][1]==a[2][0])&&(a[1][1]!=' '))
return a[1][1];
}
if(is_full(a)==1)
{
return 'q';// q
}
return 'r';//
}
int is_full(char a[3][3])
{
int i =0;
int j = 0;
for(i = 0; i<3;i++)
{
for(j=0;j<3;j++)
{
if(a[i][j]==' ')
{
return 0;// 0
}
}
}
return 1;// 1
}
void game()
{
char a[3][3] = {0};
char win = 0;
init(a);
print(a);
do
{
//
player_move(a);
print(a);
win = check_win(a);
if(win != 'r' )
{
break;
}
//
com_move(a);
print(a);
win = check_win(a);
// win ' '
if(win != 'r')
{
break;
}
}while(1);
if(win == '0')
printf("
");
else if(win == 'x')
printf("
");
else if(win == 'q')
printf("
");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
cocos2d 학습노트(5)CCMenu와 CocosDenshion게임 중의 메뉴는 반드시 없어서는 안 된다. 그림, 텍스트 등을 사용할 수 있습니다. cocos2d는menuitem에 필요한 전환 방법을 제공했다. 예를 들어CCMenuItemLabel은 CCLabelBMFont를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.