A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. //
  2. //  main.c
  3. //  剪刀石头布
  4. //
  5. //  Created by pcbeta on 15/5/20.
  6. //  Copyright (c) 2015年 ahyin007. All rights reserved.
  7. //

  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. int main()
  11. {
  12.     //剪刀>布;布>石头;石头>剪刀;
  13.     //剪刀0 石头1 布2
  14.     int computer = -1;
  15.     int player = -1;
  16.     char *str[]={"石头","剪刀","布"};
  17.     computer = arc4random_uniform(3);//0-2(n-1)随机数
  18.     printf("电脑出的是%s\n",str[computer]);//电脑出拳
  19.     printf("请出拳: 0-石头 1-剪刀 2-布\n");//提示用户出拳0-石头 1-剪刀 2-布
  20.     scanf("%d",&player);//接收用户输入
  21.     printf("用户出的是%s\n",str[player]);//输出用户输入
  22.     if (player < 0 || player > 2)// 如果用户输入的整数不是0,1,2提示输入错误
  23.     {
  24.         printf("输入错误\n");
  25.         return 0;
  26.     }
  27.     if (computer > player )
  28.     {
  29.         if (computer == 2 && player == 0)// 电脑布 赢 用户石头
  30.         {
  31.             printf("你输了\n");
  32.         }
  33.         else printf("你赢了\n");//电脑石头 输 用户剪刀;电脑剪刀 输 用户布
  34.     }
  35.     if (computer == player)//平局
  36.     {
  37.         printf("平局\n");
  38.     }
  39.     if (computer < player)
  40.     {
  41.         if(computer == 0 && player == 2) printf("你赢了\n");// 电脑石头 输 用户布
  42.         else printf("你输了\n");//电脑石头 赢 用户剪刀;电脑剪刀 赢 用户布
  43.     }
  44.     return 0;
  45. }
复制代码

评分

参与人数 1黑马币 +17 收起 理由
谢囧 + 17 很给力!

查看全部评分

9 个回复

倒序浏览
1111111111111
回复 使用道具 举报
楼上这样合适吗,,,   
回复 使用道具 举报
楼主这样合适吗?
回复 使用道具 举报
我也没事弄了一个.
  1. #include <stdio.h>

  2. #include <stdlib.h>

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