2
3
4
5
6
7
8
#include<stdio.h>
main()
{
 int a=0,b=0,c=0;
 if(a++>0&&b++>0)//此处先判断a>0为假,执行a+1,与运算,第一个判断为假,其值肯定为假,后面的都不执行了,而且跳出if语句体,也就是b++没有 执行,++c也没有执行
 ++c;
 printf("\na=%d,b=%d,c=%d",a,b,c);
C语言实现的猜拳游戏(剪子锤子布),让你与电脑对决
这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。

下面的代码会实现一个猜拳游戏,让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。

启动程序后,让用户出拳,截图:


用户出拳,显示对决结果:截图:


代码实现:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    char gamer;  // 玩家出拳
    int computer;  // 电脑出拳
    int result;  // 比赛结果
    // 为了避免玩一次游戏就退出程序,可以将代码放在循环中
    while (1){
        printf("这是一个猜拳的小游戏,请输入你要出的拳头:\n");
        printf("A:剪刀\nB:石头\nC:\nD:不玩了\n");
        scanf("%c%*c",&gamer);
        switch (gamer){
            case 65 | 97:  // A | a
                gamer=4; break;
            case 66 | 98:  // B | b
                gamer=7; break;
            case 67 | 99:  // C | c
                gamer=10; break;
            case 68 | 100:  // D | d
                return 0;
         
            default:
                printf("你的选择为 %c 选择错误,退出...\n",gamer);
                getchar();
                system("cls"); // 清屏
                return 0;
                break;
        }
     
        srand((unsigned)time(NULL));  // 随机数种子
        computer=rand()%3;  // 产生随机数并取余,得到电脑出拳
        result=(int)gamer+computer;  // gamer char 类型,数学运算时要强制转换类型
        printf("电脑出了");
        switch (computer)
        {
            case 0:printf("剪刀\n");break; //4    1
            case 1:printf("石头\n");break; //7  2
            case 2:printf("\n");break;  //10 3
c语言游戏编程题经典100例        }
        printf("你出了");
        switch (gamer)
        {
            case 4:printf("剪刀\n");break;
            case 7:printf("石头\n");break;
            case 10:printf("\n");break;
        }
        if (result==6||result==7||result==11) printf("你赢了!");
        else if (result==5||result==9||result==10) printf("电脑赢了!");
        else printf("平手");
        system("pause>nul&&cls");  // 暂停并清屏
    }
    return 0;
}
代码分析
1) 首先,我们需要定义3个变量来储存玩家出的拳头(gamer)、电脑出的拳头(computer)和最后的结果(result),然后给出文字提示,让玩家出拳。

接下来接收玩家输入:
scanf("%c%*c",&gamer);
注意:由于每次输入以回车结束,缓冲区中除了玩家输入的字母,还有回车符。回车符要
跳过,以免影响下次输入。Scanf() 函数的格式控制字符串个数可以多于参数个数,scanf("%c%*c",&gamer);的作用是从缓冲区多输出一个字符(回车符),却不赋给任何变量。

玩家输入结束,使用 switch 语句判断输入内容,65(A)97(a)66(B)98(b)67(C)99(c)68(D)100(d)为相应字符的ASCII码。

注意:system("cls"); 语句的作用是清屏。System() 函数用来执行 dos 命令,这里相当于在 dos 里输入 cls 命令。

2) 玩家出拳结束,电脑开始出拳。

电脑通过产生随机数来出拳:
srand((unsigned)time(NULL));  //为了避免多次运行结果相同,故在前面加入上(需要time.h

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。