當前位置:首頁 » 編程語言 » c語言井字游戲

c語言井字游戲

發布時間: 2022-12-31 09:23:05

『壹』 c語言編程題~~選幾個做出了給我吧~~看著我混亂了啊~用C程序哦~c++。。。

35題:
#include<stdio.h>
main()
{
inti,sum=0;
for(i=1;i<50;i=i+2)
sum+=i*(i+1);
printf("result=%d ",sum);
}

38題:
#include<stdio.h>
main()
{
inta[10],i,sum=0,squaresum=0;
printf("pleaseinput10number:");
scanf("%d%d%d%d%d%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4],&a[5],&a[6],&a[7],&a[8],&a[9]);
for(i=0;i<10;i++)
{sum+=a[i];squaresum+=a[i]*a[i];}
printf("sum=%dsumofsquaue=%d ",sum,squaresum);
}

『貳』 player=i%2+1怎麼理解

1.
i%2 是i/2的余數,所以i是偶數時,playe=1;i是奇數時,player=2;
2.
choice/3是choice除以3後的整數部分,choice%3是choice除以3後的余數部分,兩者分別表示當前的行數與列數。
例如:
choic=5,表示1行2列
注意第1行之前是否有第0行
choice是否從0開始計數
00 01 02 0 1 2
10 11 12 --> 3 4 5
20 21 22 6 7 8

『叄』 c語言井字游戲的問題求助!

錯誤集中在下面這段語句,即輸入下棋位置的合理性判斷。
do
{
printf("Player %d,please enter where you want to put your %c:",player,(player==1)?'x':'o');
scanf("%d",&choice);
row=--choice/3;
column=--choice%3; // 第一處錯誤
}while(i<1||i>9||board[row][column]>'9'); // 第二處錯誤
第一處錯誤是:column=--choice%3;
原因:--運算符沒搞清楚。--運算符意思是先減一,再做別的運算。那麼,這句話就相當於 choice -= 1; coloumn = choice%3; 這樣就看出來, choice -= 1;這半句話是多餘的,只要出現在 row=--choice/3;這里就足夠了。
因為這里多運算了一次choice-1,所以輸入1的時候行運算正確而列運算少了1,要麼觸碰邊界,要麼遇到了其他格子。

由於--運算符很容易出錯,所以一般謹慎的程序員很少用,轉而用復雜的語句代替,至少意思比較明白。

第二處錯誤是: i<1||i>9
原因:i 這里應該是棋手的落子順序。第一手是0,判斷為棋手1。但是用在這個語句里明顯出錯。這個語句應當是判斷棋手落子的位置,即是不是下在棋盤外面,所以應當是choice<1 || choice>9,然而結合第一處錯誤,仍然是錯的,因為choice已經在計算row 和column的時候被改變了。

因為這處錯誤,第一手棋永遠無法走完,因為i初始值為0,滿足i<1這個條件,進而出現死循環

結合兩處錯誤,建議這樣改:

do
{
printf("Player %d,please enter where you want to put your %c:",player,(player==1)?'x':'o');
scanf("%d",&choice);
row=(choice-1)/3; // 修改
column=(choice-1)%3; // 修改
}while(choice<1||choice>9||board[row][column]>'9'); // 修改

『肆』 C語言井字游戲

http://www.pudn.com/downloads112/sourcecode/game/49636984jzGame.rar
還有這個
井字游戲:為雙人對弈游戲,雙方輪流放子,單任一行,列,斜線為三個相同的 子時即為勝利!
http://download.pudn.com/downloads63/sourcecode/game/57578890xtkdige.rar
還有
http://download.pudn.com/downloads76/sourcecode/game/55593407402922602.rar
還有這個
一個用c語言寫的「井字游戲」,經過turbo c編譯通過。
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<bios.h>
#include<alloc.h>
#include<stdlib.h>
#define x1 150
#define x2 250
#define x3 350
#define x4 450
#define y1 100
#define y2 200
#define y3 300
#define y4 400
/* 1表示O, 2表示X */

void *buf_yuan,*buf_cha,*buf;
FILE *fp;
int a[4][4];
int flag=0;
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void main(void)
{
int gd=DETECT,gm;
int END=0;
int i,j,h,kai=0,restart,key;
int heng=2,lie=2;
int temp=1;
void SystemInitial(void);/*初始化游戲界面*/
void SiJiao(int heng,int lie);/*顯示將要走步的位格的邊框*/
void hua(int heng,int lie,int type);/*走步,即畫圓或畫叉*/
void display(int type);/*顯示誰贏了*/
void hz(int x,int y,int a,int COL,int b,char *s);/*顯漢字,只可以顯示中文*/
void computer(void);/*單人游戲時,電腦走步*/
void hanzi(int x,int y,char *p,int colour);/*也是顯漢字,可以中文與英語混合顯示*/
initgraph(&amt;gd,&amt;gm,"");
if ((fp=fopen("hzk16","rb"))==NULL)
{
printf("Can't open hzk16,Please add it");
getch();
closegraph();
exit(0);
}
cleardevice();
hz(220,100,40,2,YELLOW,"井字游戲");
setcolor(BLUE);
hanzi(400,460,"作者:04計科3班 鄧永華 08號",BLUE);
setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
flag=0;
if(flag==0)/*單人游戲*/
{
circle(195,242,4);
floodfill(195,242,WHITE);
}
else/*雙人游戲*/
{
circle(195,262,4);
floodfill(195,262,WHITE);
}
outtextxy(200,220,"Please select:");
setcolor(RED);
outtextxy(205,240,"Play with computer");
outtextxy(205,260,"Two people play");

hanzi(30,350,"游戲說明:雙方輪流走步,先連成三個符號一直線(橫、豎、斜)就Win",GREEN);

while(temp)
{
switch(bioskey(0))
{
case 0x1c0d:/*回車*/
{
temp=0;
break;
}
case 0x11b:/*Esc*/
exit(0);
case 0x4800:/*上*/
if(flag==0)
break;
else
{
flag=0;
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(195,262,4);
floodfill(195,262,BLACK);

setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
circle(195,242,4);
floodfill(195,242,WHITE);
}
break;
case 0x5000:/*下*/
if(flag==1)
break;
else
{
flag=1;
/*清除*/
setcolor(BLACK);
setfillstyle(SOLID_FILL,BLACK);
circle(195,242,4);
floodfill(195,242,BLACK);

setcolor(WHITE);
setfillstyle(SOLID_FILL,WHITE);
circle(195,262,4);
floodfill(195,262,WHITE);
break;
}
}
}
cleardevice();
/*begin to play*/
SystemInitial();
while(END!=1)
{
restart=0;
switch(bioskey(0))/*按鍵*/
{
case 0x11b:/*Esc退出*/
END=1;
break;
case 0x3920:/*space*/
if(kai==1)
break;
if(a[heng][lie]) break;
kai=1;
hua(heng,lie,1);
a[heng][lie]=1;

if((a[1][1]==1&amt;&amt;a[1][2]==1&amt;&amt;a[1][3]==1)/*判斷是否贏了*/
||(a[2][1]==1&amt;&amt;a[2][2]==1&amt;&amt;a[2][3]==1)
||(a[3][1]==1&amt;&amt;a[3][2]==1&amt;&amt;a[3][3]==1)
||(a[1][1]==1&amt;&amt;a[2][1]==1&amt;&amt;a[3][1]==1)
||(a[1][2]==1&amt;&amt;a[2][2]==1&amt;&amt;a[3][2]==1)
||(a[1][3]==1&amt;&amt;a[2][3]==1&amt;&amt;a[3][3]==1)
||(a[1][1]==1&amt;&amt;a[2][2]==1&amt;&amt;a[3][3]==1)
||(a[1][3]==1&amt;&amt;a[2][2]==1&amt;&amt;a[3][1]==1))
{
display(1);
END=1;
}
if(!END)
{
h=0;
for(i=1;i<4;i++)
for(j=1;j<4;j++)
if(a[i][j])
h++;
if(h==9)
{
display(3);
END=1;
}
}
if(END==1)
{
outtextxy(260,450,"play again? Y/N ");
while(1)
{
key=bioskey(0);
if(key==0x1579||key==0x1559)/*y的大小寫*/
{
END=0;
restart=1;
break;
}
else if((key==0x316e)||(key==0x314e))/*n的大小寫*/
break;
else continue;
}
}
break;
case 0x5230:/*0*/
if(kai==2) break;
if(a[heng][lie]) break;
kai=2;
hua(heng,lie,2);
a[heng][lie]=20;

if((a[1][1]==20&amt;&amt;a[1][2]==20&amt;&amt;a[1][3]==20)/*判斷是否贏了*/
||(a[2][1]==20&amt;&amt;a[2][2]==20&amt;&amt;a[2][3]==20)
||(a[3][1]==20&amt;&amt;a[3][2]==20&amt;&amt;a[3][3]==20)
||(a[1][1]==20&amt;&amt;a[2][1]==20&amt;&amt;a[3][1]==20)
||(a[1][2]==20&amt;&amt;a[2][2]==20&amt;&amt;a[3][2]==20)
||(a[1][3]==20&amt;&amt;a[2][3]==20&amt;&amt;a[3][3]==20)
||(a[1][1]==20&amt;&amt;a[2][2]==20&amt;&amt;a[3][3]==20)
||(a[1][3]==20&amt;&amt;a[2][2]==20&amt;&amt;a[3][1]==20))

{
display(2);
END=1;
}
if(!END)
{ h=0;
for(i=1;i<4;i++)
for(j=1;j<4;j++)
if(a[i][j])
h++;
if(h==9)
{
display(3);
END=1;
}
}
if(END==1)
{
outtextxy(260,450,"play again? Y/N ");
while(1)
{
key=bioskey(0);
if(key==0x1579||key==0x1559)
{
END=0;
restart=1;
break;
}
if(key==0x316e||key==0x314e)
break;
else continue;
}
}
break;
case 0x4800:
case 0x1177:
heng--;
if(heng<1)
heng=1;
SiJiao(heng,lie);
break;
case 0x5000:
case 0x1f73:
heng++;
if(heng>3)
heng=3;
SiJiao(heng,lie);
break;
case 0x4b00:
case 0x1e61:
lie--;
if(lie<1)
lie=1;
SiJiao(heng,lie);
break;
case 0x4d00:
case 0x2064:
lie++;
if(lie>3)
lie=3;
SiJiao(heng,lie);
break;
}
if(flag==0&amt;&amt;kai==1&amt;&amt;END!=1&amt;&amt;restart!=1)
{
computer();
kai=2;
if((a[1][1]==20&amt;&amt;a[1][2]==20&amt;&amt;a[1][3]==20)/*判斷是否贏了*/
||(a[2][1]==20&amt;&amt;a[2][2]==20&amt;&amt;a[2][3]==20)
||(a[3][1]==20&amt;&amt;a[3][2]==20&amt;&amt;a[3][3]==20)
||(a[1][1]==20&amt;&amt;a[2][1]==20&amt;&amt;a[3][1]==20)
||(a[1][2]==20&amt;&amt;a[2][2]==20&amt;&amt;a[3][2]==20)
||(a[1][3]==20&amt;&amt;a[2][3]==20&amt;&amt;a[3][3]==20)
||(a[1][1]==20&amt;&amt;a[2][2]==20&amt;&amt;a[3][3]==20)
||(a[1][3]==20&amt;&amt;a[2][2]==20&amt;&amt;a[3][1]==20))

{
display(2);
END=1;
}
if(!END)
{ h=0;
for(i=1;i<4;i++)
for(j=1;j<4;j++)
if(a[i][j])
h++;
if(h==9)
{
display(3);
END=1;
}
}
if(END==1)
{
outtextxy(260,450,"play again? Y/N ");
while(1)
{
key=bioskey(0);
if(key==0x1579||key==0x1559)
{
END=0;
restart=1;
break;
}
if(key==0x316e||key==0x314e)
break;
else continue;
}
}
}
if(restart==1)
{
cleardevice();
SystemInitial();
kai=0;
heng=2;
lie=2;
}
}
free(buf_yuan);
free(buf_cha);
free(buf);
fclose(fp);
closegraph();
}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void SystemInitial(void)
{
void hz(int x,int y,int a,int COL,int b,char *s);
void SiJiao(int heng,int lie);
int size,i,j;

for(i=1;i<4;i++)
for(j=1;j<4;j++)
a[i][j]=0;

SiJiao(2,2);
hz(240,30,40,2,YELLOW,"井字游戲");
setcolor(GREEN);
outtextxy(10,200,"1P");
setcolor(WHITE);
outtextxy(10,220,"up: w");
outtextxy(10,240,"down: s");
outtextxy(10,260,"left: a");
outtextxy(10,280,"right: d");
outtextxy(10,300,"fill: space");
outtextxy(10,320,"exit: Esc");
if(flag==1)
{
setcolor(GREEN);
outtextxy(520,200,"2P");
setcolor(WHITE);
outtextxy(520,220,"up:");
outtextxy(520,240,"down:");
outtextxy(520,260,"left: ");
outtextxy(520,280,"right: ");
outtextxy(520,300,"fill: 0");
outtextxy(520,320,"exit: Esc");
hz(585,220,25,1,WHITE,"↑");
hz(585,240,25,1,WHITE,"↓");
hz(585,260,25,1,WHITE,"←");
hz(585,280,25,1,WHITE,"→");
}
line(x1,y1,x1,y4);
line(x1,y1,x4,y1);
line(x4,y1,x4,y4);
line(x1,y4,x4,y4);
line(x2,y1,x2,y4); /*shu*/
line(x3,y1,x3,y4);
line(x1,y2,x4,y2); /*heng*/
line(x1,y3,x4,y3);

circle((x2+x3)/2,(y2+y3)/2,(y3-y2)/2-10);/*hua yuan*/
size=imagesize((x2+x3)/2-(y3-y2)/2+9,(y2+y3)/2-(y3-y2)/2+9,(x2+x3)/2+(y3-y2)/2-9,(y2+y3)/2+(y3-y2)/2-9);
buf_yuan=malloc(size);
if(!buf_yuan) exit(1);
getimage((x2+x3)/2-(y3-y2)/2+9,(y2+y3)/2-(y3-y2)/2+9,(x2+x3)/2+(y3-y2)/2-9,(y2+y3)/2+(y3-y2)/2-9,buf_yuan);
setcolor(BLACK);
circle((x2+x3)/2,(y2+y3)/2,(y3-y2)/2-10);

setcolor(WHITE); /*hua cha*/
line(x2+10,y2+10,x3-10,y3-10);
line(x2+10,y3-10,x3-10,y2+10);
buf_cha=malloc(size);
getimage((x2+x3)/2-(y3-y2)/2+9,(y2+y3)/2-(y3-y2)/2+9,(x2+x3)/2+(y3-y2)/2-9,(y2+y3)/2+(y3-y2)/2-9,buf_cha);
setcolor(BLACK);
line(x2+10,y2+10,x3-10,y3-10);
line(x2+10,y3-10,x3-10,y2+10);
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void SiJiao(int heng,int lie)
{
int a1,b1,a2,b2;
void huahei(void);/*把原來用白色顯示的將要走步的邊框用黑色覆蓋*/
huahei();

setcolor(WHITE);
switch(heng)
{
case 1:
b1=y1;
b2=y2;
break;
case 2:
b1=y2;
b2=y3;
break;
case 3:
b1=y3;
b2=y4;
break;
}
switch(lie)
{
case 1:
a1=x1;
a2=x2;
break;
case 2:
a1=x2;
a2=x3;
break;
case 3:
a1=x3;
a2=x4;
break;
}
line(a1+3,b1+3,a1+30,b1+3);
line(a1+3,b1+3,a1+3,b1+30);
line(a1+3,b2-3,a1+3,b2-30);
line(a1+3,b2-3,a1+30,b2-3);
line(a2-30,b1+3,a2-3,b1+3);
line(a2-3,b1+3,a2-3,b1+30);
line(a2-30,b2-3,a2-3,b2-3);
line(a2-3,b2-30,a2-3,b2-3);

}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void huahei(void)
{
int i,j,a1,b1,a2,b2;

setcolor(BLACK);
for(i=1;i<4;i++)
for(j=1;j<4;j++)
{
switch(i)
{
case 1:
b1=y1;
b2=y2;
break;
case 2:
b1=y2;
b2=y3;
break;
case 3:
b1=y3;
b2=y4;
break;
}
switch(j)
{
case 1:
a1=x1;
a2=x2;
break;
case 2:
a1=x2;
a2=x3;
break;
case 3:
a1=x3;
a2=x4;
break;
}

line(a1+3,b1+3,a1+30,b1+3);
line(a1+3,b1+3,a1+3,b1+30);
line(a1+3,b2-3,a1+3,b2-30);
line(a1+3,b2-3,a1+30,b2-3);
line(a2-30,b1+3,a2-3,b1+3);
line(a2-3,b1+3,a2-3,b1+30);
line(a2-30,b2-3,a2-3,b2-3);
line(a2-3,b2-30,a2-3,b2-3);
}

}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void hua(int heng,int lie,int type)/*type的值為1表示圓,2表示叉*/
{
int x,y;
setcolor(WHITE);
switch(lie)
{
case 1:
x=(x1+x2)/2-(x2-x1)/2+9;
break;
case 2:
x=(x2+x3)/2-(x3-x2)/2+9;
break;
case 3:
x=(x3+x4)/2-(x4-x3)/2+9;
break;
}

switch(heng)
{
case 1:
y=(y1+y2)/2-(y2-y1)/2+9;
break;
case 2:
y=(y2+y3)/2-(y3-y2)/2+9;
break;
case 3:
y=(y3+y4)/2-(y4-y3)/2+9;
break;
}
switch(type)
{
case 1:
buf=buf_yuan;
a[heng][lie]=1;
break;
case 2:
buf=buf_cha;
a[heng][lie]=20;
break;
}
putimage(x,y,buf,COPY_PUT);
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void display(int type)
{
if(type==1)
outtextxy(270,430,"O Win");
if(type==2)
outtextxy(270,430,"X Win");
if(type==3)
outtextxy(270,430,"draw");

}
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
void hz(int x,int y,int a,int COL,int b,char *s)/*x,y為顯示的坐標,a為字與字之間的間隔,b為字的大小,s為指向為顯示的漢字的指針*/
{
int ROW;
char buffer[32];
register m,n,i1,j1,k;
unsigned char qh,wh;
unsigned long offset;
ROW=COL;
while(*s)
{
qh=*(s)-0xa0;/*漢字區位碼*/
wh=*(s+1)-0xa0;
offset=(94*(qh-1)+(wh-1))*32L;/*計算該漢字在字型檔中偏移量*/
fseek(fp,offset,SEEK_SET);
fread(buffer,32,1,fp);/*取出漢字32位元組的點陣字模存入buffer中(一個漢字) */
for (i1=0;i1<16;i1++)/*將32位位元組的點陣按位在屏幕上列印出來(1:列印,0:不列印),顯示漢字 */
for(n=0;n<ROW;n++)
for(j1=0;j1<2;j1++)
for(k=0;k<8;k++)
for(m=0;m<COL;m++)
if (((buffer[i1*2+j1]>>(7-k))&amt;0x1)!=NULL)
putpixel(x+8*j1*COL+k*COL+m,y+i1*ROW+n,b);
s+=2;/*因為一個漢字內碼佔用兩個位元組,所以s必須加2*/
x+=a;
}
}
/**************************************************************************/
void computer(void)
{
int i,j;
for(i=1;i<4;i++)/*橫向判斷*/
if(a[i][1]+a[i][2]+a[i][3]==40)
for(j=1;j<4;j++)
if(a[i][j]==0)
{
hua(i,j,2);
return;
}
for(i=1;i<4;i++)/*橫向判斷*/
if(a[i][1]+a[i][2]+a[i][3]==2)
for(j=1;j<4;j++)
if(a[i][j]==0)
{
hua(i,j,2);
return;
}

for(i=1;i<4;i++)/*豎向判斷*/
if(a[1][i]+a[2][i]+a[3][i]==40)
{
for(j=1;j<4;j++)
if(a[j][i]==0)
{
hua(j,i,2);
return;
}
}
for(i=1;i<4;i++)/*豎向判斷*/
if(a[1][i]+a[2][i]+a[3][i]==2)
for(j=1;j<4;j++)
if(a[j][i]==0)
{
hua(j,i,2);
return;
}

if(a[1][1]+a[2][2]+a[3][3]==40)/*左上角到右下角判斷*/
{
for(i=1;i<4;i++)
if(a[i][i]==0)
{
hua(i,i,2);
return;
}
}
else if(a[1][1]+a[2][2]+a[3][3]==2)
for(i=1;i<4;i++)
if(a[i][i]==0)
{
hua(i,i,2);
return;
}

if(a[3][1]+a[2][2]+a[1][3]==40)/*右上角到左下角判斷*/
{
for(i=1;i<4;i++)
if(a[i][4-i]==0)
{
hua(i,4-i,2);
return;
}
}
else if(a[3][1]+a[2][2]+a[1][3]==2)
for(i=1;i<4;i++)
if(a[i][4-i]==0)
{
hua(i,4-i,2);
return;
}

for(i=1;i<4;i++)/*隨便找到空位填上去*/
for(j=1;j<4;j++)
if(a[i][j]==0)
{
hua(i,j,2);
return;
}

}
void hanzi(int x,int y,char *p,int colour)
{
FILE *fp;
char buffer[32];
register i,j,k;
unsigned char qh,wh;
unsigned long location;
if((fp=fopen("hzk16","rb"))==NULL)
{
printf("Can't open hzk16!");
getch();
exit(0);
}
while(*p)
{
if(((unsigned char)*p>=0xa1&amt;&amt;(unsigned char)*p<=0xfe)&amt;&amt;((unsigned char)*(p+1)>=0xal&amt;&amt;(unsigned char)*(p+1)<=0xfe))
{
qh=*p-0xa0;
wh=*(p+1)-0xa0;
location=(94*(qh-1)+(wh-1))*32L;
fseek(fp,location,SEEK_SET);
fread(buffer,32,1,fp);
for(i=0;i<16;i++)
for(j=0;j<2;j++)
for(k=0;k<8;k++)
if(((buffer[i*2+j]>>(7-k))&amt;0x1)!=NULL)
putpixel(x+8*j+k,y+i,colour);
p+=2;
x+=18;
if(x>600)
{
x=15;y+=18;
}
}
else
{
char q[2];
moveto(x,y);
*q=*p;
*(q+1)='\0';
outtextxy(x,y+4,q);
x+=8+1;p++;
}
}
fclose(fp);
}
都是井字游戲,C語言的,你參考看看。

『伍』 用C語言編寫井字游戲tic tac toe 人機對戰

前兩個好辦,智能電腦不好實現,我資料里有聯系方式

『陸』 C語言 怎麼編程井字棋

簡單來說,定義數據結構(比如棋盤數組,棋盤格子以及棋子,雙方玩家等相關的數據結構表示),定義規則(比如同一個位置不能放兩顆棋子,三顆棋子連線放勝利)。

具體取決於需求,比如圖形表示和AI(人工智慧)等等。如果你只是想要簡單的用命令行和文字輸出表示,那麼編寫一個控制台應用程序就可以。如果需要圖形等控制,需要藉助一些圖形以及UI庫等。但是這些外部表示可以跟核心數據結構和規則,演算法等分離開來。所以剛開始先用文字表示寫出核心代碼,後續可以逐漸加上UI圖形,AI等。

『柒』 c語言 如何用數組來畫出井字格{井字游戲的那種}

可以用tc裡面的<graphics.h>來做,但是vc裡面沒有,那麼就要通過形式的找規律來做了,要是你僅僅是想輸出一個井字格,而不是做一個小游戲的話可以用下面的思路,但是你要是想做一個小游戲的話,那麼就不可以了,因為下面說的是靜態的,空都是自己輸出的,是空格字元,不能實時的改變裡面的內容,比如..
..*...*...
**********
..*...*...
**********
..*...*...
.就代表空格,那麼你就定義5個一維數組了,或者是一個二維數組,然後吧裡面的元素先賦值好,然後輸出就可以了,辦法有點笨...不笨點就是用循環,然後你自己輸入行數和列數,但是這個就不能用數組輸出了,就是找規律之後再一個一個的輸出了~~

『捌』 C語言 井字游戲

#include<iostream>
usingnamespacestd;
ints1[5][5]={0},a,b,c;
voidout(into)
{
inta,b;
for(a=1;a<=3;a++)
{
for(b=1;b<=3;b++)
{
switch(s1[a][b])
{
case1:cout<<"x";break;
case2:cout<<".";break;
default:cout<<s1[a][b]<<"";break;
}
}
cout<<endl;
}
if(o==1)cout<<"x";elsecout<<".";
cout<<"贏了";
}
voidgc(intx,inty,intn,intm,into)
{
cout<<x<<y<<endl;
if(n!=3)
switch(m)
{
case1:if(s1[x-1][y-1]==o)gc(x-1,y-1,n+1,m,o);break;
case2:if(s1[x-1][y]==o)gc(x-1,y,n+1,m,o);break;
case3:if(s1[x-1][y+1]==o)gc(x-1,y+1,n+1,m,o);break;
case4:if(s1[x][y+1]==o)gc(x,y+1,n+1,m,o);break;
case5:if(s1[x+1][y+1]==o)gc(x+1,y+1,n+1,m,o);break;
case6:if(s1[x+1][y]==o)gc(x+1,y,n+1,m,o);break;
case7:if(s1[x+1][y-1]==o)gc(x+1,y-1,n+1,m,o);break;
case8:if(s1[x][y-1]==o)gc(x,y-1,n+1,m,o);break;
}
if(n==3){out(o);exit(0);}
}
intmain()
{
for(a=1;a<=3;a++)
for(b=1;b<=3;b++)cin>>s1[a][b];
for(a=1;a<=3;a++)
for(b=1;b<=3;b++)
if(s1[a][b]==1||s1[a][b]==2)
for(c=1;c<=8;c++)
gc(a,b,1,c,s1[a][b]);
}

『玖』 C語言編寫井字棋游戲 代碼已有半成品

你初始化一個字元數組,裡面都給他一樣的初始值 E
X 下了就改成X ,O 下了就改成 O,下完以後判斷橫豎斜三條線有沒有一樣的,

一共就九個格子,下一步就少一步 ,下之前判斷一下,如果等於E ,就是空的,可以放子。
下完一步總步數減一,你這樣不就能確定還有幾步可以走了。
九步都下完如果沒有橫豎斜都一樣的不就是平局嗎,所有數組元素的值都不等於E了不就結束了,或者九步完了也結束了

另外,少用GOTO ,變數定義最好有意義,寫點注釋

熱點內容
解壓玩具怎麼做只用水就可以做 發布:2025-07-01 20:52:56 瀏覽:160
解壓放鬆室 發布:2025-07-01 20:52:43 瀏覽:124
存儲器壞了 發布:2025-07-01 20:46:11 瀏覽:510
iphone怎麼設鎖屏密碼 發布:2025-07-01 20:46:10 瀏覽:620
伺服器如何處理千萬請求 發布:2025-07-01 20:30:53 瀏覽:332
plsqldeveloperjob 發布:2025-07-01 20:29:59 瀏覽:804
剪切文件用什麼配置 發布:2025-07-01 20:23:07 瀏覽:44
酷睿2020主要看哪些配置 發布:2025-07-01 20:23:06 瀏覽:261
sql保存文件 發布:2025-07-01 20:18:52 瀏覽:802
安卓做的登錄頁面怎麼運行 發布:2025-07-01 20:18:48 瀏覽:813