? ? ? ? 快要期末考试了,这几天因为疫情封在宿舍,闲来无聊,编一个三子棋玩一玩,全当复习考试了。
话不多说,上程序
#include<stdio.h> #include<string.h> #include<time.h> #include<stdlib.h> int main() { int i; select:printf("---------请输入模式0: game ?or ?1: quit---------\n----------"); scanf("%d",&i); while(i!=0&&i!=1) { ?? ?printf("出错了,请重新输入\n");? ?? ?scanf("%d",&i); } ? ?while(i==0) ? { ? int f1,f2; ?? ?again:srand((unsigned)time(0)); ?? ?f1=rand()%6+1; ?? ?for(int k=10;k<20;) ?? ?{ ?? ? ??? ?k++; ?? ?} ?? ?f2=rand()%6+1; ?? ?//printf("%d %d",f1,f2); ?? ?if(f1>f2){ ?? ??? ?printf("-----------------%d %d-----------------\n",f1,f2); ?? ??? ?printf("---------------玩家1先手---------------\n"); ?? ?} ?? ?else if(f1<f2) ?? ?{ ?? ?printf("-----------------%d %d-----------------\n",f1,f2); ?? ?printf("---------------玩家2先手---------------\n"); ?? ? }? ?? ?else if(f1==f2) ?? ?{ ?? ??? ?goto again; ?? ?} ?? ? ? ?printf("--------------游戏 开始--------------\n"); ?? ?char a='&'; ?? ?char b='*'; ?? ?char pl[6][12]={" ? | ? | ? ","---|---|---"," ? | ? | ? ","---|---|---"," ? | ? | ? "}; ?? ?for(int i=0;i<6;i++) ?? ?puts(pl[i]);?? ? ?? ?// ?? ?int row,line,k=0;?? ? ?? ?int flag1=0,flag2=0,flag=0,left=9; ?? ?while(flag==0&&left>0) ?? ?{? ?? ?back:printf("请输入 行 和 列 \n"); ?? ? ?scanf("%d %d",&row,&line); ?? ? ?//k++; ?? ? ?if(row==1) ?? ? ?row=0; ?? ? ?else if(row==3) ?? ? ?row=4; ?? ? ?if(line==2) ?? ? ?line=5; ?? ? ?else if(line==3) ?? ? ?line=9; ?? ? ?if(pl[row][line]!=' ') ?? ? ?{ ?? ? ??? ?printf("出错了\n"); ?? ? ??? ?goto back; ?? ? ?} ?? ? ?k++;left--; ?? ? ?char mk; ?? ? ?if(k%2==1) ?? ? ?{ ?? ? ??? ?mk=a; ?? ? ? pl[row][line]=mk; ?? ? ? for(int q=0;q<5;q+=2) ?? ? ? { ?? ? ? ?? ?if(pl[q][1]==mk&&pl[q][5]==mk&&pl[q][9]==mk) ?? ? ? ?? ?flag1=1; ?? ? ? } ?? ? ? for(int p=1;p<10;p+=4) ?? ? ? { ?? ? ? ?? ?if(pl[0][p]==mk&&pl[2][p]==mk&&pl[4][p]==mk) ?? ? ? ?? ?flag1=1; ?? ? ? } ?? ? ? if(pl[0][1]==mk&&pl[2][5]==mk&&pl[4][9]==mk||pl[0][9]==mk&&pl[2][5]==mk&&pl[4][1]==mk) ?? ? ? flag1=1; ?? ? ?? ? ?} ?? ? ?else if(k%2==0) ?? ? ?{ ?? ? ??? ?mk=b; ?? ? ? pl[row][line]=mk; ?? ? ? for(int q=0;q<5;q+=2) ?? ? ? { ?? ? ? ?? ?if(pl[q][1]==mk&&pl[q][5]==mk&&pl[q][9]==mk) ?? ? ? ?? ?flag2=1; ?? ? ? } ?? ? ? for(int p=1;p<10;p+=4) ?? ? ? { ?? ? ? ?? ?if(pl[0][p]==mk&&pl[2][p]==mk&&pl[4][p]==mk) ?? ? ? ?? ?flag2=1; ?? ? ? } ?? ? ? if(pl[0][1]==mk&&pl[2][5]==mk&&pl[4][9]==mk||pl[0][9]==mk&&pl[2][5]==mk&&pl[4][1]==mk) ?? ? ? flag2=1; ?? ? ?} ?? ? ?for(int i=0;i<6;i++) ?? ? ?puts(pl[i]); ?? ? ?if(flag1==1) ?? ? ?printf("玩家1获胜\n"); ?? ? ?else if(flag2==1) ?? ? ?printf("玩家2获胜\n");? ?? ? ?flag=flag1+flag2; ?? ? ?if(flag==0&&left==0) ?? ? ?printf("平局");?? ? ?? ?}?? ? ?? ?goto select; ?}
return 0;?? ??? ? ?}?
有兴趣的小伙伴可以动手试一试,很简单哦~~
|