黑马程序员技术交流社区

标题: 剪刀石头布完善,增强玩家体验,只求技术分,线上代码 [打印本页]

作者: 吴伟健    时间: 2015-4-11 21:08
标题: 剪刀石头布完善,增强玩家体验,只求技术分,线上代码
今晚自习,作为完全0基础的我自己完善了下剪刀石头布游戏的代码,感觉每天都在进步,来到黑马几天,每天都觉得有所前进,心里暗自高兴,贴上代码,希望能给高点技术分,谢谢!!!

#include <stdlib.h>

#include <stdio.h>

int main(int argc, const char * argv[]) {
   
    while (1) {  //主题程序写完,可以搞个while死循环,一直玩下去
        
    //1.定义变量存储电脑的随机数值
    int computer = arc4random_uniform(3);
    //2.请用户输入一个数
    printf("请输入一个数,0.剪刀,1.石头,2.布\n");
    //定义一个变量存储用户输入的值
    int player = -1;
   
    scanf("%d",&player);
   
    //3.对用户输入的数合法性进行判断
    while (player <0 || player>2) {
        printf("你语文是体育老师教的吗?请输入0 1 2!!!\n");
        scanf("%d",&player);
    }
        printf("\n");
        
        if (player ==0) {
            printf("玩家:剪刀\n");  //打印玩家出拳
        }else if(player==1 ){
            printf("玩家:石头\n");
        }else{
            printf("玩家:布\n");
        }
      
        printf("\n");
      
        if (computer ==0) {      //打印电脑出拳
            printf("电脑:剪刀\n");
        }else if(computer==1 ){
            printf("电脑:石头\n");
        }else{
            printf("电脑:布\n");
        }
    //4.对用户输入的数字和电脑的进行判断
    if ((player==0&&computer==2)||
        (player==1&&computer==0)||
        (player==2&&computer==1)) {
        printf("恭喜你赢了!!!\n");
         printf("\n");
    } else if((player==2&&computer==0)||
              (player==0&&computer==1)||
              (player==1&&computer==2)){
        printf("哈哈,你输了!!!\n");
         printf("\n");
    }else {
        
        printf("\n");
        
        printf("平局\n");
        
    }
  
        char  op;        //定义一个变量存储用户输入判断的值
        
        scanf("%c",&op);
        while (op!='Y' && op!='N') {
            printf("你丫的还玩不玩了,继续玩请输入Y,不玩了请输入N!!!\n");
            scanf("%c",&op);
        }
        if (op=='N') {      //如果不玩了,跳出循环
            break;
        }
        
    }

    return 0;
}

增强了用户体验,有兴趣的朋友运行试试,还有什么可以改进的地方希望能多多交流,这里感谢旁边哥们的指导,希望早日甩掉小白的帽子,向小牛进军!
作者: 深情眸    时间: 2015-4-11 21:10
不错哦!都蛮好
作者: 糊涂娃    时间: 2015-4-11 21:11
很专业的啊!
作者: 上古丶    时间: 2015-4-11 21:16
不错嘛...感谢分享
作者: 大路朝天    时间: 2015-4-11 21:22
很不错,膜拜中
作者: bieny    时间: 2015-4-11 21:34
其实可以再简化下
  1. if ((player==0&&computer==2)||
  2.         (player==1&&computer==0)||
  3.         (player==2&&computer==1)) {
  4.         printf("恭喜你赢了!!!\n");
  5.          printf("\n");
  6.     } else if((player==2&&computer==0)||
  7.               (player==0&&computer==1)||
  8.               (player==1&&computer==2)){
  9.         printf("哈哈,你输了!!!\n");
  10.          printf("\n");
  11.     }else {
  12.         
  13.         printf("\n");
  14.         
  15.         printf("平局\n");
  16.         
  17.     }
复制代码


作者: bieny    时间: 2015-4-11 21:36
本帖最后由 bieny 于 2015-4-11 21:37 编辑

这样
  1. </blockquote></div>
  2. <div class="blockcode"><blockquote>if ((player==0&&computer==2)||
  3.         (player==1&&computer==0)||
  4.         (player==2&&computer==1)) {
  5.         printf("恭喜你赢了!!!\n");
  6.          printf("\n");
  7.     } else if((player==computer)
  8.         printf("平局\n");
  9.     }else {
  10. printf("你输了");
  11. }
复制代码



作者: 吴伟健    时间: 2015-4-11 21:41
受用了,老大,分点黑马币给我呗:lol
作者: longer057    时间: 2015-4-11 21:42
大神,好流弊,膜拜,感谢分享----
作者: 赵俊腾    时间: 2015-4-11 21:43
表示完全惊呆了,膜拜中
作者: 我们要勇敢    时间: 2015-4-11 21:44
楼主很有童心呀
作者: 吴伟健    时间: 2015-4-11 21:50
楼上的老大,你技术分够了,施舍点黑马币把
作者: 距离    时间: 2015-4-11 21:53
很不错哎,
作者: tyisbest    时间: 2015-4-11 22:00
牛逼,增强的不错
作者: 吴伟健    时间: 2015-4-11 22:01
bieny 发表于 2015-4-11 21:36
这样

确实不错,换一种思考方式,一下简单明了了,谢谢
作者: yxnheima    时间: 2015-4-11 22:06
你确定你是零寄出的。
作者: 吴伟健    时间: 2015-4-11 22:09
本帖最后由 吴伟健 于 2015-4-11 22:12 编辑

我是学修飞机的,你说能不0基础吗:o
作者: zeizei    时间: 2015-4-11 22:13
杠杠的,很牛的样子
作者: chenzuliang1993    时间: 2015-4-11 22:39
嗯,很强大,学习了
作者: Logic    时间: 2015-4-11 23:00
这也行?
作者: 花短裤的夏天    时间: 2015-4-12 00:10
棒棒哒!
作者: 吴伟健    时间: 2015-4-12 10:24
怎么没见加技术分,求解下技术分流程




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