黑马程序员技术交流社区

标题: 石头剪刀布游戏,重写的了一遍,脑袋不好使,累死我了 [打印本页]

作者: ★W...    时间: 2015-5-24 16:46
标题: 石头剪刀布游戏,重写的了一遍,脑袋不好使,累死我了
  1. //
  2. //  main.c
  3. //  剪刀石头布
  4. //
  5. //  Created by apple on 15/5/24.
  6. //  Copyright (c) 2015年 双元课堂(王建军). All rights reserved.
  7. //

  8. #include <stdio.h>
  9. #include <stdlib.h>

  10. int main(int argc, const char * argv[]) {
  11.    
  12.     printf("欢迎来到石头剪刀布游戏!\n");
  13.     int flag=0;
  14.     printf("输入0进入游戏,退出游戏请输入其他数字!\n");
  15.     scanf("%d",&flag);
  16.     while(!flag)
  17.     {
  18.         int clientCount=0;
  19.         int computerCount = arc4random_uniform(3)+1;
  20.         
  21.         printf("请输入一个1-3的整数重新进入游戏,输入其他数退出游戏\n");
  22.         scanf("%d",&clientCount);
  23.         
  24.         if(clientCount==computerCount)
  25.         {
  26.             printf("真遗憾,平局!\n");
  27.         }
  28.         else if((computerCount==1&&clientCount==2)||(computerCount==2&&clientCount==3)||(computerCount==3&&clientCount==1))
  29.         {
  30.             printf("恭喜你,赢了!\n");
  31.         }
  32.         
  33.         else if((computerCount==1&&clientCount==3)||(computerCount==2&&clientCount==1)||(computerCount==3&&clientCount==2))
  34.         {
  35.             
  36.             printf("运气太臭,输了!\n");
  37.         }
  38.         else
  39.         {
  40.             flag=1;
  41.         }
  42.       
  43.     }
  44.   printf("退出游戏!\n");
  45.     return 0;
  46. }
复制代码

作者: x331275955    时间: 2015-5-24 17:36
我最近也学这个了,我也弄了一,呵呵,挺逗比的.
  1. #include <stdio.h>

  2. #include <stdlib.h>

  3. char again = 'y';
  4. void game()
  5. {
  6.     //定义两个变量,用来储存电脑和人的出拳,
  7.     int computer=0,person=0;
  8.    
  9.     //随机3个数字,用来当做电脑的出拳(因为个人不喜欢0,所以在得到0时会重新生成直到得到1,2,3).
  10.     while (computer == 0) {
  11.         
  12.         computer = arc4random_uniform(4);
  13.     }
  14.    
  15.     //提示用户输入相对应的数字用来表示想出的拳
  16.     printf("请输入您想出的拳所对应的数字:\n1--剪刀\t2--石头\t3--布\n");
  17.    
  18.     scanf("%d",&person);
  19.    
  20.     //判定输入是否合法
  21.     while(person >=4||person <= 0) {
  22.         
  23.         //提示用户输入相对应的数字,表示想出的拳
  24.         printf("您的输入有误!\n请重新输入您想出的拳所对应的数字:\n1--剪刀\t2--石头\t3--布\n");
  25.         
  26.         scanf("%*c%d",&person);
  27.     }
  28.    
  29.     //输出电脑所出的拳,以说明游戏的平衡机制
  30.     if (computer==1) {
  31.         
  32.         printf("电脑出的是:剪刀\tPS:咔嚓咔嚓!\n\n");
  33.         
  34.     }else if (computer==2){
  35.         
  36.         printf("电脑出的是:石头\tPS:我很硬哦!\n\n");
  37.         
  38.     }else {
  39.         
  40.         printf("电脑出的是:布\tPS:来吧来吧!\n\n");
  41.     }
  42.    
  43.     //一切准备就绪然后进行输赢比较及输出
  44.     if (person==1&&computer==3) {
  45.         
  46.         printf("<<<<<<<<你赢了>>>>>>>>\n大哥!老弟错了,饶过我这次吧.您的<<剪刀>>太锋利了,您赢了!!!\n\n[呵呵,再来一次?(输入y继续,任意键结束)]\n");
  47.         
  48.     }else if (person==2&&computer==1){
  49.         
  50.         printf("<<<<<<<<你赢了>>>>>>>>\n我勒个去,我发誓刚刚是我大意了,你的<<石头>>太硬了 --!\n\n[呵呵,再来一次?(输入y继续,任意键结束)]\n");
  51.         
  52.     }else if (person==3&&computer==2){
  53.         
  54.         printf("<<<<<<<<你赢了>>>>>>>>\n难道这是命运?如果老天再给我一次机会的话,我一定能赢你出的<<布>>!!!\n\n[呵呵,再来一次?(输入y继续,任意键结束)]\n");
  55.         
  56.     }else if (person==1&&computer==2){
  57.         
  58.         printf("<<<<<<<<你输了>>>>>>>>\n呵呵,知道我的厉害了吧??就凭你的<<剪刀>>也想赢我???送你2个字:白日...做梦!\n\n[不服气?再来一次?(输入y继续,任意键结束)]\n");
  59.         
  60.     }else if (person==2&&computer==3){
  61.         
  62.         printf("<<<<<<<<你输了>>>>>>>>\n呵呵,跟你玩这个我都让你一个手的!就凭你的<<石头>>也想赢我???送你2个字:白日...做梦!\n\n[不服气?再来一次?(输入y继续,任意键结束)]\n");
  63.         
  64.     }else if (person==3&&computer==1){
  65.         
  66.         printf("<<<<<<<<你输了>>>>>>>>\n呵呵,你回去修炼一千年再来找我挑战吧!就凭你的<<布>>也想赢我???送你1个字:你...太嫩!\n\n[不服气?再来一次?(输入y继续,任意键结束)]\n");
  67.         
  68.     }else{
  69.         
  70.         printf("<<<<<<<<平手了>>>>>>>>\n骚年,看你年纪平平居然身手这么了得,居然跟我打个平手!\n\n[输入y继续,任意键结束.]\n");
  71.     }
  72.    
  73.     //接收用户输入用来判定是否继续游戏
  74.     scanf("%*c%c",&again);
  75. }
  76. //game over...

  77. int main()
  78. {
  79.     //用来判定用户是否进行下次游戏.
  80.     while (1)
  81.         
  82. //        if (again == 'y')
  83. //        {
  84. //            game();
  85. //        
  86. //        }else
  87. //        {
  88. //            return 0;
  89. //        }
  90.     switch (again)
  91.     {
  92.         case 'y' : game();
  93.                     break;
  94.         default : return 0;
  95.     }

  96.     return 0;
  97. }
复制代码




作者: 李闯    时间: 2015-5-24 20:18
定义的函数名 看着好心酸,好累:lol
作者: aSmallStone    时间: 2015-5-24 22:17
慢慢长征路。。。。
作者: Never_Yg    时间: 2015-5-24 22:44
基础还没学完,进班了吗?
作者: zhangyq    时间: 2015-5-24 23:25
不错!!!!

作者: 蜡笔小炎    时间: 2015-5-25 00:16
进来看看           
作者: ★W...    时间: 2015-6-11 08:38
蜡笔小炎 发表于 2015-5-25 00:16
进来看看

纯灌水啊
作者: ★W...    时间: 2015-6-11 08:39
李闯 发表于 2015-5-24 20:18
定义的函数名 看着好心酸,好累

闯哥 求抱大腿啊
作者: CQY    时间: 2015-6-13 18:16
好强大的呀,
作者: Thomas-王    时间: 2015-6-13 20:13
过来学学经验..
作者: aofex    时间: 2015-6-13 21:07
评论下  收藏了
作者: chaoyueshan    时间: 2015-6-13 22:09
刚学过去这个,哈哈 还行吧
作者: goldboy    时间: 2015-6-13 22:16
石头剪刀布应该有很多种写法
作者: lipeng524824    时间: 2015-6-13 23:04
基础班刚开始的路过,感觉到危机感了!
作者: 李言    时间: 2015-6-14 11:32
哈哈,很多老师教学用的实例都挺有意思的
作者: diaodiao    时间: 2015-6-14 17:37
万事开头难,只为明天新征程
作者: 任伟    时间: 2015-6-14 17:47
是啊  学习的过程中感觉有点难啊

作者: aofex    时间: 2015-6-14 22:27
aSmallStone 发表于 2015-5-24 22:17
慢慢长征路。。。。

:lol  照片是本人吗?
作者: aofex    时间: 2015-6-14 22:29
aSmallStone 发表于 2015-5-24 22:17
慢慢长征路。。。。

:victory: 照片是本人吗?   
作者: 飞翔的猪    时间: 2015-6-15 09:34
用C语言写一个:victory:
作者: aSmallStone    时间: 2015-6-15 21:05
看来我要换头像了
作者: 王鹏飞1    时间: 2015-6-15 21:12
好复杂的样子。。
作者: 安逸丶    时间: 2015-6-15 21:45
让我们这没学会的望尘莫及啊。。。
作者: goldboy    时间: 2015-6-15 21:49
还可以吧,要是你看到推箱子就不会说石头剪刀布了
作者: fixer    时间: 2015-6-15 21:51
哎哟,不错哦
作者: Chasel    时间: 2015-6-16 10:08
加油,现在的我自学中!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2