黑马程序员技术交流社区

标题: 剪刀石头布游戏 [打印本页]

作者: yuyang    时间: 2014-12-29 20:54
标题: 剪刀石头布游戏
//
//  main.c
//  09-剪刀石头布游戏
//
//  Created by apple on 14/12/28.
//  Copyright (c) 2014年 itcast. All rights reserved.
//

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

int main(int argc, const char * argv[]) {
   
    //制定游戏的规则
    /*
       输赢的规则:
     
       剪刀 干掉 布
     
       石头 干掉 剪刀
     
       布   干掉 石头
     
       规定:
     
       0.剪刀    1.石头    2.布
     
     
      思路:
     
       计算机随机出一个拳(计算机如何随机出拳)
     
       玩家自己选择一个拳
     
       判断输赢
     
     */
   
    //实现的步骤:
   
    //1、定义变量,保存计算机出的拳 ,保存用户输入的拳
    int computer=-1,player = -1;
   
    //2、先让计算机出拳
    //随机产生
    //0   1   2
    //产生随机数的方法   arc4random_uniform随机数产生的函数
    // arc4random_uniform 函数使用的时候,首先要导入一个头文件
    // stdlib.h
    // arc4random_uniform(3);  //0  1  2
    computer = arc4random_uniform(3);
    //printf("%d\n",computer);
   
   
    //3、给一个提示,提示让玩家出拳
    printf("请出拳:  0.剪刀   1.石头   2.布\n");
    //保存用户出的拳
    scanf("%d",&player);
    //校验
    if (player<0 || player > 2) {
        printf("请按套路出拳!\n");
        return 0;
    }
   
   
    //4、开始比较
    //先判断玩家赢的情况
    if ((player==0 && computer==2)||
        (player==1 && computer==0)||
        (player==2 && computer==1)) {
        
        printf("恭喜你,你赢了!\n");
    }else if ((computer==0 && player==2)||
              (computer==1 && player==0)||
              (computer==2 && player==1)){
        printf("很遗憾,你输了!\n");
   
    }else{
     
        printf("平局!\n");
   
    }
   
    //    玩家          电脑          赢的情况
    //    剪刀 0         2
    //    石头 1         0
    //    布   2         1
   
   
   
   
   
    return 0;
}

作者: BBD2008    时间: 2014-12-29 22:35
赞一个,很有趣,个人感觉要是用枚举看起来能清楚些。0,1,2容易分不清是什么。
作者: shicuf    时间: 2014-12-29 22:37
最难游戏有的吧
作者: wx_hg1q2t6v    时间: 2014-12-29 22:38
感觉楼主和我一个班...1222?
作者: wx_hg1q2t6v    时间: 2014-12-29 22:44
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int main()
{
       
        int i,j=1,m;
       
   /*                         人      电脑
   赢的情况: 剪刀       布
              石头       剪刀
                          布        石头   
   */
        // 每人五次机会
        for(j=1;j<6;j++)
        {
                // 格式,拿到系统当前时间
                srand((unsigned)time(NULL));
                // 随机生成1-3
                i=rand()%3+1;
                printf("电脑出的是%d\n",i);
                printf("请出拳 1剪刀 2石头 3布:\n");
                scanf("%d",&m);
                // 排除非法输入
                 if(m>3 || m<1)
                {
                        printf("请按规则出拳\n");
                }
                // 判断输的情况
            else if(i==1&&m==3 || i==2&&m==1 || i==3&&m==2)
            {
                    printf("你输了!\n");
            }
            // 赢的情况
            else if(m==1&&i==3 || m==2&&i==1 || m==3&&i==2)
            {
                    printf("你赢了!\n");
            }
            // 平局
            else
                {
                        printf("平局!\n");
                }   
               
        }
    return 0;
}


作者: 精英通    时间: 2014-12-30 07:31
不错,清晰明了
作者: Jeason_1007    时间: 2014-12-30 09:52
我记得我大学的时间学过这么一个程序,
作者: yuyang    时间: 2015-1-1 17:39
wx_hg1q2t6v 发表于 2014-12-29 22:44
#include
#include
#include

不错!!!!!!!!!
作者: 世界静极    时间: 2015-1-1 17:52
看来你们都是学过的啊




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