美文网首页
C语言猜拳游戏

C语言猜拳游戏

作者: SkyHive | 来源:发表于2016-12-31 17:50 被阅读0次

2016年的最后一篇文章

今天闲来无事Google了一段C语言写的猜拳游戏的代码(本人水平比较低,几乎是刚入门),我没做什么修改。这个switch语句里面对result的处理让我眼前一新,原来是这么玩的,也算是学到了。
代码本身比较简单,算法上面也没有什么难理解的地方,所以我没有做什么修改,如果大家有兴趣可以完善一下交互的功能。
以下是代码

#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:
            case 97:
                gamer = 4;
                break;
            case 66:
            case 98:
                gamer = 7;
                break;

            case 67:
            case 99:
                gamer = 10;
                break;
            case 68:
            case 100:
                return 0;

            default:
                printf ("你的选择是%c 选择错误,退出...\n",gamer);
                getchar();
                system("cls");
                return 0;
                break;
        }
        srand ((unsigned)time(NULL));       //随机数种子
        computer = rand()%3;                //产生随机数并取余,得到电脑出拳
        result = (int)gamer+computer;       // 运算时要将char类型的gamer转换成int
        printf ("电脑出了");
        switch (computer){
            case 0:printf ("剪刀\n");break;
            case 1:printf ("石头\n");break;
            case 2:printf ("布\n");break;
        }
        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;
}

由于本人是新手,所以有些函数的功能还不是很清楚,在这里做一些小小的解释:

  • srand和rand函数:

在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void srand( inta)。可以利用srand((unsigned)time(NULL))来产生随机序列,因为没一次运行程序的时间是不同的。
1. 首先给srand()提供一个种子,它是一个unsigned int 类型,其取值范围从0~65535.
2. 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(0~32767).
3. 根据需要多次调用rand(),从而不间断的得到新的随机数.
4. 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果.

  • time()函数:

用于获取时间戳,用time(null)获取当前时间戳。

相关文章

  • C语言猜拳游戏

    2016年的最后一篇文章 今天闲来无事Google了一段C语言写的猜拳游戏的代码(本人水平比较低,几乎是刚入门),...

  • 基于C的猜拳游戏

    #include #include #include #include { char c; int b,m,a,d...

  • C语言编程学习之猜拳小游戏源码+注释

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

  • 猜拳游戏

    我妈突然就走不动了,她的双腿无力,站也站不起来,手掐上大腿一点反应也没有。 我望着对面的山,寻思着哪座山头草多些,...

  • 猜拳游戏

    我记得小时候,有一天爸爸说单位要出去旅游,每位员工可以带一个孩子。那时候出去旅游可是新鲜事物,极富吸引力,自然我和...

  • C语言编程入门学习:人机猜拳小游戏的实现

    C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程...

  • C语言拼图游戏,C语言视频,C语言零基础学习,C语言视频与源码

    C语言视频,C语言速成,C语言拼图游戏 完整源码: #include #include #include #def...

  • 猜拳小游戏

    import random a = random.randint(1,100) i = 0 for i in ra...

  • 猜拳小游戏

    门开了,孔医生和岳同学回到家中,我一如昨天微笑欢迎他们回家。 我发现岳同学本来应该是很亮的眼睛,像今天的天气一样被...

  • Java:猜拳游戏

    package game;import java.util.Scanner; package game;impor...

网友评论

      本文标题:C语言猜拳游戏

      本文链接:https://www.haomeiwen.com/subject/rjfbvttx.html