#include"stdio.h"
#include"conio.h"
#include"time.h"
#include"stdlib.h"
int a[3][3]={{0},{0},{0}}; /*存放所下棋,0表示未走过的,1表示游戏者走过的,2表示电脑走的*/
/*画出棋盘*/
void picture()
{
int i;
/*画出左边的棋盘*/
for(i=5;i<=20;i++)
{
gotoxy(i,4);
cprintf("%c",196);
gotoxy(i,10);
cprintf("%c",196);
}
for(i=2;i<=14;i++)
{
gotoxy(9,i);
cprintf("%c",179);
gotoxy(16,i);
cprintf("%c",179);
}
/*画出右边的棋盘*/
for(i=45;i<=60;i++)
{
gotoxy(i,4);
cprintf("%c",196);
gotoxy(i,10);
cprintf("%c",196);
}
for(i=2;i<=14;i++)
{
gotoxy(49,i);
cprintf("%c",179);
gotoxy(56,i);
cprintf("%c",179);
}
/*写下右边棋盘中的数字*/
gotoxy(47,3);
printf("1");
gotoxy(53,3);
printf("2");
gotoxy(58,3);
printf("3");
gotoxy(47,7);
printf("4");
gotoxy(53,7);
printf("5");
gotoxy(58,7);
printf("6");
gotoxy(47,12);
printf("7");
gotoxy(53,12);
printf("8");
gotoxy(58,12);
printf("9");
gotoxy(65,5);
printf("YOU:%c",2);
gotoxy(65,10);
printf("COMPUTER:%c",42);
}
/*检查是否还有没有未走之处*/
void exam()
{
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(a[i][j]==0)
return;
}
exit(0);
}
/*游戏者走一步*/
void user()
{
int n,i,j;
usergo:
gotoxy(5,15);
printf("enter the num(1-9) you choice:\n");
scanf("%d",&n);
sleep(1);
gotoxy(5,16);
switch(n)
{
case 1:if(a[0][0]!=1&&a[0][0]!=2) /*假如所选的那一步未走过,则,赋值1*/
{
a[0][0]=1;
gotoxy(7,2);
printf("%c",2);
break;
}
else
{
goto usergo;
}
case 2:if(a[0][1]!=1&&a[0][1]!=2)
{
a[0][1]=1;
gotoxy(13,2);
printf("%c",2);
break;
}
else
{
goto usergo;
}
case 3:if(a[0][2]!=1&&a[0][2]!=2)
{
a[0][2]=1;
gotoxy(18,2);
printf("%c",2);
break;
}
else
{
goto usergo;
}
case 4:if(a[1][0]!=1&&a[1][0]!=2)
{
a[1][0]=1;
gotoxy(7,7);
printf("%c",2);
break;
}
else
{
goto usergo;
}
case 5:if(a[1][1]!=1&&a[1][1]!=2)
{
a[1][1]=1;
gotoxy(13,7);
printf("%c",2);
break;
}
else
{
goto usergo;
}
case 6:if(a[1][2]!=1&&a[1][2]!=2)
{
a[1][2]=1;
gotoxy(18,7);
printf("%c",2);
break;
}
else
{
goto usergo;
}
case 7:if(a[2][0]!=1&&a[2][0]!=2)
{
a[2][0]=1;
gotoxy(7,12);
printf("%c",2);
break;
}
else
{
goto usergo;
}
case 8:if(a[2][1]!=1&&a[2][1]!=2)
{
a[2][1]=1;
gotoxy(13,12);
printf("%c",2);
break;
}
else
{
goto usergo;
}
case 9:if(a[2][2]!=1&&a[2][2]!=2)
{
a[2][2]=1;
gotoxy(18,12);
printf("%c",2);
break;
}
else
{
goto usergo;
}
default:goto usergo;
}
sleep(1);
}
/*电脑随机走一步*/
void computer()
{
int n;
computergo:
randomize();
n=rand()%9;
switch(n)
{
case 0:if(a[0][0]!=1&&a[0][0]!=2) /*假如所选的那一步未走过,则,赋值2*/
{
a[0][0]=2;
gotoxy(7,2);
printf("%c",42);
break;
}
else
{
goto computergo;
}
case 1:if(a[0][1]!=1&&a[0][1]!=2)
{
a[0][1]=2;
gotoxy(13,2);
printf("%c",42);
break;
}
else
{
goto computergo;
}
case 2:if(a[0][2]!=1&&a[0][2]!=2)
{
a[0][2]=2;
gotoxy(18,2);
printf("%c",42);
break;
}
else
{
goto computergo;
}
case 3:if(a[1][0]!=1&&a[1][0]!=2)
{
a[1][0]=2;
gotoxy(7,7);
printf("%c",42);
break;
}
else
{
goto computergo;
}
case 4:if(a[1][1]!=1&&a[1][1]!=2)
{
a[1][1]=2;
gotoxy(13,7);
printf("%c",42);
break;
}
else
{
goto computergo;
}
case 5:if(a[1][2]!=1&&a[1][2]!=2)
{
a[1][2]=2;
gotoxy(18,7);
printf("%c",42);
break;
}
else
{
goto computergo;
}
case 6:if(a[2][0]!=1&&a[2][0]!=2)
{
a[2][0]=2;
gotoxy(7,12);
printf("%c",42);
break;
}
else
{
goto computergo;
}
case 7:if(a[2][1]!=1&&a[2][1]!=2)
{
a[2][1]=2;
gotoxy(13,12);
printf("%c",42);
break;
}
else
{
goto computergo;
}
case 8:if(a[2][2]!=1&&a[2][2]!=2)
{
a[2][2]=2;
gotoxy(18,12);
printf("%c",42);
break;
}
else
{
goto computergo;
}
default:goto computergo;
}
sleep(1);
}
/*测试游戏状态,0,1,2*/
int exam_user()
{
int i,key=0;
for(i=0;i<3;i++)
{
if((a[i][0]==a[i][1]&&a[i][0]==a[i][2]&&a[i][1]==a[i][2]&&a[i][0]==1)||(a[0][i]==a[1][i]&&a[0][i]==a[2][i]&&a[1][i]==a[2][i]&&a[0][i]==1)||(a[0][0]==a[1][1]&&a[0][0]==a[2][2]&&a[1][1]==a[2][2]&&a[2][2]==1)||(a[2][0]==a[1][1]&&a[2][0]==a[0][2]&&a[1][1]==a[0][2]&&a[0][2]==1))
key=1;
break;
}
return key;
}
int exam_computer()
{
int i,key=0;
for(i=0;i<3;i++)
{
if((a[i][0]==a[i][1]&&a[i][0]==a[i][2]&&a[i][1]==a[i][2]&&a[i][0]==2)||(a[0][i]==a[1][i]&&a[0][i]==a[2][i]&&a[1][i]==a[2][i]&&a[0][i]==2)||(a[0][0]==a[1][1]&&a[0][0]==a[2][2]&&a[1][1]==a[2][2]&&a[2][2]==2)||(a[2][0]==a[1][1]&&a[2][0]==a[0][2]&&a[1][1]==a[0][2]&&a[0][2]==2))
key=1;
break;
}
return key;
}
/*游戏者和电脑各走完一步,做一下检查*/
void end()
{
int key1,key2;
key1=exam_user();
key2=exam_computer();
if((key1==1)&&(key2==0))
{
gotoxy(35,20);
printf("YOU WIN");
sleep(2);
exit(0);
}
else if((key1==0)&&(key2==1))
{
gotoxy(35,20);
printf("YOU LOST");
sleep(2);
exit(0);
}
else if((key1==key2)&&(key1==0))
{
exam();
return;
}
else if((key1==key2)&&(key1==1))
{
gotoxy(35,20);
printf("PING JU");
sleep(2);
exit(0);
}
else exit(0);
}
main()
{
picture();
while(1)
{
user();
exam();
computer();
end();
}
}
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |