鱼C论坛

 找回密码
 立即注册
查看: 1645|回复: 9

[技术交流] 猜拳小游戏

[复制链接]
发表于 2017-8-6 16:43:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*做不好请大家指出*/
#include<stdio.h>

#define da printf
#define g(h) h/2

void main()
{
      int ms;
      char mnbvcxz,name[30],name_1[30],qd;
      /*双人模式数据*/
      int q, w, q1=0, w1=0, ju, se, ty;
      /*单人模式数据*/
      int j, r, jq=0, rq=0;
      int a, b, c, d, e, f, g, h, p;
      /*单人模式的5个机器人*/
      int aa[]={0,1,2,1,1,1,0,1,0,2,2,2,0,0,2,1,1,0,2,1,2,0,1,2,0,1,2,0,1,2,0,0,0,1,2,1,2,1,2,1,2,1,0,1,2,1,2,1,2,0,0,1,0,2,1,2,1,2,0,1,2,1,2,1,2,1,0,0,0,2,1,2,1,2,1,1,1,2,1,2,1,2,2,2,0,1,2,1,1,1,0,1,0,2,2,2,0,0,2,1,1,0,2,1,2,0,1,2,0,1,2,0,1,2,0,0,0,1,2,1,2,1,2,1,2,1,0,1,2,1,2,1,2,0,0,1,0,2,1,2,1,2,0,1,2,1,2,1,2,1,0,0,0,2,1,2,1,2,1,1,1,2,1,2,1,2,2,2};
      int bb[]={2,1,2,0,1,2,1,2,1,0,2,1,0,2,1,0,2,1,0,2,1,2,1,1,0,1,0,2,1,0,1,2,0,1,2,0,2,1,0,2,1,0,0,0,2,0,1,0,1,2,0,0,1,0,2,1,0,2,0,2,1,0,2,1,1,0,2,1,2,1,1,2,0,0,2,1,2,1,2,0,2,0,2,0,2,1,2,0,1,2,1,2,1,0,2,1,0,2,1,0,2,1,0,2,1,2,1,1,0,1,0,2,1,0,1,2,0,1,2,0,2,1,0,2,1,0,0,0,2,0,1,0,1,2,0,0,1,0,2,1,0,2,0,2,1,0,2,1,1,0,2,1,2,1,1,2,0,0,2,1,2,1,2,0,2,0,2,0};
      int cc[]={2,1,1,0,1,0,2,1,0,1,2,0,1,2,0,2,1,0,2,1,0,1,1,0,2,1,2,1,1,2,0,0,2,1,2,1,2,0,2,0,2,0,0,0,2,0,1,0,1,2,0,0,1,0,2,1,0,2,0,2,1,0,2,2,1,2,0,1,2,1,2,1,0,2,1,0,2,1,0,2,1,0,2,1,2,1,1,0,1,0,2,1,0,1,2,0,1,2,0,2,1,0,2,1,0,1,1,0,2,1,2,1,1,2,0,0,2,1,2,1,2,0,2,0,2,0,0,0,2,0,1,0,1,2,0,0,1,0,2,1,0,2,0,2,1,0,2,2,1,2,0,1,2,1,2,1,0,2,1,0,2,1,0,2,1,0,2,1};
      int dd[]={0,0,2,0,1,0,1,2,0,0,1,0,2,1,0,2,0,2,1,0,2,2,1,2,1,2,1,2,1,2,1,0,2,0,2,0,2,0,1,1,0,1,2,1,0,2,0,0,1,1,2,2,2,0,0,1,2,0,2,0,2,1,0,2,1,0,2,1,0,2,1,0,2,1,0,2,1,0,2,1,2,0,1,2,0,0,2,0,1,0,1,2,0,0,1,0,2,1,0,2,0,2,1,0,2,2,1,2,1,2,1,2,1,2,1,0,2,0,2,0,2,0,1,1,0,1,2,1,0,2,0,0,1,1,2,2,2,0,0,1,2,0,2,0,2,1,0,2,1,0,2,1,0,2,1,0,2,1,0,2,1,0,2,1,2,0,1,2};
      int ee[]={1,1,0,2,1,2,1,1,2,0,0,2,1,2,1,2,0,2,0,2,0,0,0,2,0,1,0,1,2,0,0,1,0,2,1,0,2,0,2,1,0,2,2,1,1,0,1,0,2,1,0,1,2,0,1,2,0,2,1,0,2,1,0,2,0,0,2,1,2,1,2,0,2,0,2,0,0,0,2,1,0,2,0,0,1,1,0,2,1,2,1,1,2,0,0,2,1,2,1,2,0,2,0,2,0,0,0,2,0,1,0,1,2,0,0,1,0,2,1,0,2,0,2,1,0,2,2,1,1,0,1,0,2,1,0,1,2,0,1,2,0,2,1,0,2,1,0,2,0,0,2,1,2,1,2,0,2,0,2,0,0,0,2,1,0,2,0,0};
      
      da("请输入用户名:");
      scanf("%s",&name);
      da("%s:\n你好\n欢迎游玩本游戏\n本游戏是猜拳游戏\n请你选择模式:\n双人模式输入:0\n单人模式输入:1\n请输入:",name);
      scanf("%c",&mnbvcxz);
CON:
      scanf("%d",&ms);
      if(ms>1)
      {
            da("输入错误,请重新选择:");
            goto CON;
      }
      da("确定吗?\n是:y\n不:n\n请输入:");
      scanf("%c",&mnbvcxz);
      scanf("%c",&qd);
      if(qd=='n')
      {
            da("请选择:");
            goto CON;
      }
      
      switch(ms)
      {
            
      case 0:
            /*双人模式*/
            da("1玩家:%s\n2玩家:",name);
            scanf("%s",&name_1);
            
            da("输入要玩几局:");
            scanf("%d",&ju);
            if(g(ju)==ju-g(ju))
            {
                  se=ju/2;
            }
            else
            {
                  se=ju/2+1;
            }
            da("本轮%d局,%d胜\n",ju,se);
            
            for(ty=0;ty<ju;ty++)
            {
CON2:
            da("0.是石头\n1.是剪刀\n2.是布\n\n请%s出拳:",name);
            scanf("%d",&q);
            if(q==0)
            {
                  for(h=0;h<30;h++)
                  {
                        da("%s已出拳 ! !!!!!!!!!!!!!\n",name);
                  }
                  
            }
            else
            {
                  if(q==1)
                  {
                        for(h=0;h<30;h++)
                        {
                              da("%s已出拳!!!!!!!!!!!\n",name);
                        }
                  }
                  else
                  {
                        if(q==2)
                        {
                              da("%s已出拳 !!!!!!!!!!!\n",name);
                        }
                        else
                        {
                              goto CON2;
                        }
                  }
            }
CON3:
            da("0.是石头\n1.是剪刀\n2.是布\n\n请%s出拳:",name_1);
            scanf("%d",&w);
            
            
            if(q==w)
            {
                  da("$平局$\n目前比分:\n%d:%d\n",q1,w1);
            }
            else
            {
                  if(q==0)
                  {
                        if(w==1)
                        {
                              q1++;
                              da("%s出石头战胜了%s的剪刀\n目前比分:\n%d:%d\n",name,name_1,q1,w1);                                 
                              if(q1==se)
                              {
                                    da("%s获胜\n%s赢了%d局,而%s只赢%d局\n",name,name,q1,name_1,w1);
                                    goto CON4;
                              }
                        }
                        else//w==2
                        {
                              w1++;
                              da("%s出布战胜了%s的石头\n目前比分:\n%d:%d\n",name_1,name,q1,w1);                                 
                              if(w1==se)
                              {
                                    da("%s获胜\n%s赢了%d局,而%s只赢%d局\n",name_1,name_1,w1,name,q1);
                                    goto CON4;
                              }
                        }
                  }
                  else
                  {
                        if(q==1)
                        {
                              if(w==0)
                              {
                                    w1++;
                                    da("%s出石头战胜了%s的剪刀\n目前比分:\n%d:%d\n",name_1,name,q1,w1);                                 
                                    if(w1==se)
                                    {
                                          da("%s获胜\n%s赢了%d局,而%s只赢%d局\n",name_1,name_1,w1,name,q1);
                                          goto CON4;
                                    }
                              }
                              else//w==2
                              {
                                    q1++;
                                    da("%s出剪刀战胜了%s的布\n目前比分:\n%d:%d\n",name,name_1,q1,w1);                                 
                                    if(q1==se)
                                    {
                                          da("%s获胜\n%s赢了%d局,而%s只赢%d局\n",name,name,q1,name_1,w1);
                                          goto CON4;
                                    }
                              }
                        }
                        else//q==2
                        {
                              if(w==0)
                              {
                                    q1++;
                                    da("%s出布战胜了%s的石头\n目前比分:\n%d:%d\n",name,name_1,q1,w1);                                 
                                    if(q1==se)
                                    {
                                          da("%s获胜\n%s赢了%d局,而%s只赢%d局\n",name,name,q1,name_1,w1);
                                          goto CON4;
                                    }
                              }
                              else
                              {
                                    if(w==1)
                                    {
                                          w1++;
                                          da("%s出剪刀战胜了%s的布\n目前比分:\n%d:%d\n",name_1,name,q1,w1);                                 
                                          if(w1==se)
                                          {
                                                da("%s获胜\n%s赢了%d局,而%s只赢%d局\n",name_1,name_1,w1,name,q1);
                                                goto CON4;
                                          }
                                    }
                                    else
                                    {
                                          goto CON3;
                                    }
                              }
                        }
                  }
            }
            }
            
            
CON4:
            da("还想再玩其他的吗?\n想输入:Y\n不想输入:N\n请输入:");
            scanf("%c",&mnbvcxz);
            scanf("%c",&ms);
            if(ms=='Y')
            {
                  da("想玩输入对应数字:\n单人模式:1\n如果想再玩本模式输入:0\n请输入:");
                  goto CON;
            }
            
            break;
            
            
      case 1:
            /*单人模式*/
            printf("开始单人猜拳游戏\n请先选择与几号机器人对决\n请输入它们对应编码\n1号机器人:0\n2号机器人:1\n3号机器人:2\n4号机器人:3\n5号机器人:4\n");
CONXIN:
            scanf("%d",&a);
            if(a<5)
            {
                  b=a+1;
                  printf("%s想和%d机器人玩几局:",name,b);
                  scanf("%d",&c);
                  if(g(c)==c-g(c))
                  {
                        d=c/2;
                  }
                  else
                  {
                        d=c/2+1;
                  }
                  printf("谁先赢%d局谁胜!!!!\n",d);
                  printf("请输入一个50以下的数:");
                  scanf("%d",&e);
                  g=e+c;
                  f=e;
                  for(;f<g;f++)
                  {
                        if(a==0)        
                        {
                              j=aa[f];
                        }
                        else
                        {
                              if(a==1)
                              {
                                    j=bb[f];
                              }
                              else
                              {
                                    if(a==2)
                                    {
                                          j=cc[f];
                                    }
                                    else
                                    {
                                          if(a==3)
                                          {
                                                j=dd[f];
                                          }
                                          else
                                          {
                                                j=ee[f];
                                          }
                                    }
                              }
                        }
                        if(j==0)
                        {
                              printf("%d号机器人出了石头\n",b);
                        }
                        else
                        {
                              if(j==1)
                              {
                                    printf("%d号机器人出了剪刀\n",b);
                              }
                              else
                              {
                                    printf("%d号机器人出了布\n",b);
                                    
                              }   
                        }
                        if(j==0)
                        {
                              for(h=0;h<30;h++)
                              {
                                    printf("%d号机器人出了 ! !\n",b);
                              }
                        }
                        else
                        {
                              if(j==1)
                              {
                                    for(h=0;h<30;h++)
                                    {
                                          printf("%d号机器人出了!!\n",b);
                                    }
                              }
                              else
                              {
                                    for(h=0;h<30;h++)
                                    {
                                          printf("%d号机器人出了 !!\n",b);
                                    }
                              }
                        }
                        printf("0.是石头\n1.是剪刀\n2.是布\n\n现在该%s出拳:",name);
CONXING:
                        scanf("%d",&r);
                        if(r<3)
                        {
                              if(j==r)
                              {
                                    printf("$平局$\n");
                                    g++;
                                    printf("目前比分%d:%d\n",jq, rq);
                                    printf("输入任意数,继续:");
                                    scanf("%d",&p);
                              }
                              else
                              {
                                    if(j==0)
                                    {
                                          if(r==1)
                                          {
                                                jq++;
                                                printf("%d号机器出石头战胜了%s的剪刀!\n目前比分%d:%d\n",b,name,jq, rq);
                                                printf("输入任意数,继续:");
                                                scanf("%d",&p);                                   
                                                if(jq==d)
                                                {
                                                      printf("%d号机器人赢了\n赢了%d局\n而%s只赢%d局\n",b,jq,name,rq);
                                                      goto QWE;
                                                }
                                          }
                                          else
                                          {
                                                rq++;
                                                printf("%s出布战胜%d号机器人的石头!\n目前比分%d:%d\n",name,b,jq, rq);
                                                printf("输入任意数,继续:");
                                                scanf("%d",&p);                                         
                                                if(rq==d)
                                                {
                                                      printf("%s赢了\n赢了%d局\n而%d号机器人只赢%d局\n",name,rq,b,jq);
                                                      goto QWE;
                                                }
                                          }
                                    }
                                    else
                                    {
                                          if(j==1)
                                          {
                                                if(r==0)
                                                {
                                                      rq++;
                                                      printf("%s出石头战胜%d号机器人的剪刀!\n目前比分%d:%d\n",name,b,jq, rq);
                                                      printf("输入任意数,继续:");
                                                      scanf("%d",&p);                                                
                                                      if(rq==d)
                                                      {
                                                            printf("%s赢了\n赢了%d局\n而%d号机器人只赢%d局\n",name,rq,b,jq);
                                                            goto QWE;
                                                      }
                                                }
                                                else
                                                {
                                                      jq++;
                                                      printf("%d号机器出剪刀战胜了%s的布!\n目前比分%d:%d\n",b,name,jq, rq);
                                                      printf("输入任意数,继续:");
                                                      scanf("%d",&p);
                                                      if(jq==d)
                                                      {
                                                            printf("%d号机器人赢了\n赢了%d局\n而%s只赢%d局\n",b,jq,name,rq);
                                                            goto QWE;
                                                      }
                                                      
                                                }
                                          }
                                          else
                                          {
                                                if(r==0)
                                                {
                                                      jq++;
                                                      printf("%d号机器出布战胜了%s的石头!\n目前比分%d:%d\n",b,name,jq, rq);
                                                      printf("输入任意数,继续:");
                                                      scanf("%d",&p);                                                
                                                      if(jq==d)
                                                      {
                                                            printf("%d号机器人赢了\n赢了%d局\n而%s只赢%d局\n",b,jq,name,rq);
                                                            goto QWE;
                                                      }
                                                }
                                                else
                                                {
                                                      rq++;
                                                      printf("%s出剪刀战胜%d号机器人的布!\n目前比分%d:%d\n",name,b,jq, rq);
                                                      printf("输入任意数,继续:");
                                                      scanf("%d",&p);
                                                      if(rq==d)
                                                      {
                                                            printf("%s赢了\n赢了%d局\n而%d号机器人只赢%d局\n",name,rq,b,jq);
                                                            goto QWE;
                                                      }
                                                }
                                          }
                                    }
                              }
                        }
                        else
                        {
                              printf("请重新输入:");
                              goto CONXING;
                        }
             }
       }
       else
       {
             printf("请重新输入:");
             goto CONXIN;
       }
QWE:
       printf("\n");
      
       da("还想再玩其他的吗?\n想输入:Y\n不想输入:N\n请输入:");
       scanf("%c",&mnbvcxz);
       scanf("%c",&ms);
       if(ms=='Y')
       {
             da("想玩输入对应数字:\n双人模式:0\n如果想再玩本模式输入:1\n请输入:");
             goto CON;
       }
      
       break;
      
      }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-7 02:05:39 | 显示全部楼层
用随机数取机器出拳的可能是不是更加科学一点?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-7 10:01:34 | 显示全部楼层
起了很久的名字 发表于 2017-8-7 02:05
用随机数取机器出拳的可能是不是更加科学一点?

这个我不懂,还请多多指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-7 21:29:31 From FishC Mobile | 显示全部楼层
起了很久的名字 发表于 2017-8-7 02:05
用随机数取机器出拳的可能是不是更加科学一点?

同不懂,具体怎么做?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-7 22:35:01 | 显示全部楼层
xjy99 发表于 2017-8-7 21:29
同不懂,具体怎么做?

time函数,你可以百度一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-7 22:36:13 | 显示全部楼层
还差几 发表于 2017-8-7 10:01
这个我不懂,还请多多指教

time函数,百度一下可以了解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 10:06:05 | 显示全部楼层
起了很久的名字 发表于 2017-8-7 22:36
time函数,百度一下可以了解

谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 10:22:48 | 显示全部楼层
起了很久的名字 发表于 2017-8-7 22:36
time函数,百度一下可以了解

我查了一下,time函数是用来提取时间的,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-8 17:26:08 | 显示全部楼层
还差几 发表于 2017-8-8 10:22
我查了一下,time函数是用来提取时间的,

还有radom函数的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-9 08:59:25 | 显示全部楼层

这次对了,谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 15:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表