C语言版井字棋文档格式.docx

上传人:b****5 文档编号:16504610 上传时间:2022-11-24 格式:DOCX 页数:10 大小:16.95KB
下载 相关 举报
C语言版井字棋文档格式.docx_第1页
第1页 / 共10页
C语言版井字棋文档格式.docx_第2页
第2页 / 共10页
C语言版井字棋文档格式.docx_第3页
第3页 / 共10页
C语言版井字棋文档格式.docx_第4页
第4页 / 共10页
C语言版井字棋文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

C语言版井字棋文档格式.docx

《C语言版井字棋文档格式.docx》由会员分享,可在线阅读,更多相关《C语言版井字棋文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

C语言版井字棋文档格式.docx

//清空之前的选择框

intJudge(intchoice,charsymbol);

//判断输赢返回值0为无结果,1为获胜,2为平局

intFuncx(intchoice);

//将标号转换为行号

intFuncy(intchoice);

//将标号转换为列号

voidEnd(charsymbol);

//结束

intFound();

//返回第一个没有棋子的位置的编号

chara[31][64];

//用数组存放棋盘和棋子,a[行][列]

intb=0;

//棋子个数

intmain(){

charplayer;

intchoice;

system("

title井字棋"

);

//设置标题

modeconcols=64lines=35"

//设置窗口大小

color70"

//设置颜色

while

(1){

printf("

\n\n\n\n\n\n\t\t\t井\t字\t棋"

\n\n\n\n\n\n\n\n\t\t\t1.玩家先手\n\n\t\t\t2.电脑先手\n\n\t\t\t3.帮助\n\n\t\t\t4.退出\n\n\n\n\n\t\t请输入:

"

player=getch();

if(player=='

1'

){

Init();

Block(5);

choice=5;

Play(player,choice);

}elseif(player=='

2'

3'

Help();

getch();

system("

cls"

continue;

4'

return0;

}else{

printf("

\n\n\t\t输入错误请重新输入!

"

Sleep(1000);

}

}

return0;

}

voidHelp(){

printf("

\n\n\n\n\n\n\n\n\n\t\t\t帮助\n\n\n"

\t'

W'

上移,'

S'

下移,'

A'

左移,'

D'

右移\n\n"

\t\t游戏中按'

退出"

\n\n\n\n\t\t按任意键退出"

intPlay(charplayer,intchoice){//对弈

charget;

charsymbol;

intc=0;

//Judge得出的结果

system("

//每次循环清屏一次

Display();

){//玩家下棋

while

(1){//确定要下的位置

if((get=getch())!

='

'

if(get=='

){

system("

return0;

}elseif((get=='

w'

||get=='

)&

&

choice-3>

=1){

Clear(choice);

choice=choice-3;

}elseif((get=='

s'

)&

choice+3<

=9){

choice=choice+3;

a'

(choice+2)/3==(choice+1)/3){

choice-=1;

d'

(choice-1)/3==choice/3){

choice+=1;

}else{

continue;

}

Block(choice);

system("

Display();

}

else{

if(a[((choice-1)/3)*10+2][((choice-1)%3)*21+4]!

printf("

该位置已有其他棋子!

break;

}//while结束

b++;

Black(choice);

player='

0'

;

symbol='

#'

}//if结束

else{//电脑下棋

choice=Found();

Block(choice);

White(choice);

*'

}

if((c=Judge(choice,symbol))!

=0){//判断输赢

if(c==2)

symbol='

c=0;

End(symbol);

break;

voidInit(){//初始化棋盘

intx=0,y=0;

inti='

for(x=0;

x<

31;

x++)

{

for(y=0;

y<

64;

y++)

{

if((y==Funcy

(1)||y==Funcy

(2)||y==Funcy(3)||y==Funcy

(2)+Funcy(3)))

{

if(x==Funcx

(1)||x==Funcx(4)||x==Funcx(7)||x==Funcx(4)+Funcx(7))

a[x][y]='

+'

else

|'

}

elseif(x==Funcx

(1)||x==Funcx(4)||x==Funcx(7)||x==Funcx(4)+Funcx(7))

a[x][y]='

-'

else

//for(x=1;

=7;

x=x+3)//在每个格子的左上角添加序号,范围1~9

//{

//for(y=1;

=3;

//{

//a[(Funcx(x)+1)][(Funcy(y)+1)]=i;

//i++;

//}

//}

voidDisplay(){//打印棋盘

%c"

a[x][y]);

voidBlock(intchoice){//添加选择框

intx,y;

for(x=Funcx(choice)+1;

Funcx(choice)+10;

for(y=Funcy(choice)+2;

Funcy(choice)+20;

if(x==Funcx(choice)+1||x==Funcx(choice)+9)

if(y==Funcy(choice)+2||y==Funcy(choice)+19)

elseif(y<

Funcy(choice)+7||y>

Funcy(choice)+14)

elseif(x<

Funcx(choice)+4||x>

Funcx(choice)+6)

voidClear(intchoice){//清空选择框

intx,y,i;

for(i=1;

i<

=9;

i++){

if(a[Funcx(choice)+1][Funcy(choice)+2]=='

i!

=choice){

for(x=Funcx(choice)+1;

for(y=Funcy(choice)+2;

if(x==Funcx(choice)+1||x==Funcx(choice)+9)

{

if(y==Funcy(choice)+2||y==Funcy(choice)+19)

a[x][y]='

elseif(y<

elseif(x<

voidBlack(choice){//添加黑棋

for(x=Funcx(choice)+2;

Funcx(choice)+9;

for(y=Funcy(choice)+4;

Funcy(choice)+18;

if(x==Funcx(choice)+2||x==Funcx(choice)+8)

elseif(y==Funcy(choice)+4||y==Funcy(choice)+17)

voidWhite(choice){//添加白棋

intx;

intd=4;

=Funcx(choice)+8;

a[x][Funcy(choice)+d]='

a[x][Funcy(choice)+20-d]='

d=d+2;

intJudge(intchoice,charsymbol){//判断输赢返回值0为无结果,1为获胜,2为平局

if(

(a[Funcx(choice)+2][Funcy(choice)+4]==a[Funcx(choice+3)+2][Funcy(choice)+4]

&

a[Funcx(choice+3)+2][Funcy(choice)+4]==a[Funcx(choice+6)+2][Funcy(choice)+4])

||

(a[Funcx(choice)+2][Funcy(choice)+4]==a[Funcx(choice)+2][Funcy(choice+1)+4]

a[Funcx(choice)+2][Funcy(choice+1)+4]==a[Funcx(choice)+2][Funcy(choice+2)+4])

a[Funcx(5)+2][Funcy(5)+4]==symbol

(a[Funcx

(1)+2][Funcy

(1)+4]==a[Funcx(5)+2][Funcy(5)+4]

a[Funcx(5)+2][Funcy(5)+4]==a[Funcx(9)+2][Funcy(9)+4])

(a[Funcx(3)+2][Funcy(3)+4]==a[Funcx(5)+2][Funcy(5)+4]

a[Funcx(5)+2][Funcy(5)+4]==a[Funcx(7)+2][Funcy(7)+4])

return1;

if(b==9)

return2;

intFuncx(intchoice){//将标号转换为行号

return(((choice-1)/3)%3)*10;

intFuncy(intchoice){//将标号转换为列号

return((choice-1)%3)*21;

voidEnd(charsymbol){//结束

Display();

if(symbol=='

\t\t\t电脑胜利!

\n\n"

elseif(symbol=='

\t\t\t玩家胜利!

else

\t\t\t平局!

b=0;

\t\t\t按任意键返回菜单"

getch();

intFound(){//返回第一个没有棋子的位置的编号

inti;

i++)

if(a[Funcx(i)+2][Funcy(i)+4]=='

returni;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1