美文网首页
趣味C语言之杀人游戏

趣味C语言之杀人游戏

作者: 凌云struggle | 来源:发表于2019-08-02 21:18 被阅读0次
  • 游戏简述

    终端输入参与的人数:7,依次编号为1,2,3,4,5,6,7,大家围成一圈,输入死亡编号:3,凡是报到3的人死亡,剩下的人继续报数,问最后活着的人的编号是多少?
  • 程序运行效果

杀人游戏.png
  • 解题思路

    首先对参与人数依次进行编号,并且储存在数组中,然后再进行报数,报到死亡号码时对应元素的值变为-1(表示死亡),记录总的死亡人数,当死亡人数与参与人数之差为1时,游戏结束,数组中不为-1的元素值即为最后活着的人的编号。
  • 代码实现

#include <stdio.h>

//利用宏定义给死亡状态赋值
#define KILLED -1

int main(int argc, const char * argv[]) {
    /*
     杀人游戏/数字游戏
     终端输入参与的人数:7
     1 2 3 4 5 6 7
     大家围成一圈
     请输入死亡编号:3
     凡是报道3的人都死亡 后面的人继续数数
     输出最后一个活着的人的编号
     */
    
    int total = 0;  //总人数
    int killNumber;  //被杀死的人的编号
    int number[100] = {}; //存放每个人的编号
    int totalKillNumber = 0;//记录被杀掉的人数
    int count = 0;   //用来报数
    
    
    
    
    printf("请输入参与游戏的人数:\n");
    scanf("%d",&total);
    printf("请输入被杀掉的人的编号:\n");
    scanf("%d",&killNumber);
    
    
    //给每个人编号
    for (int i = 0; i < total; i++) {
        number[i] = i + 1;
    }
    
    //游戏开始
    for (int i = 0; i < total; i ++) {
        if (number[i] != KILLED) {
            //开始报数
            count++;
        }
        //判断当前号码是否到了死亡号码
        if (count == killNumber) {
            //报到杀死编号的赋值为KILLED
            number[i] = KILLED;
            
            //杀死人数+1
            totalKillNumber++;
            
            //count还原
            count = 0;
            
            //当总杀人数为total-1时跳出循环
            if (totalKillNumber == total-1) {
                break;
            }
        }
        
        //当i为最后一个时,i还原
        if (i == total - 1) {
            //最后执行i++,因此i=-1
            i = -1;
        }
    }
    
    
    //输出最后一个活着的人的编号
    for (int i = 0; i < total; i++) {
        if (number[i] != KILLED) {
            printf("最后一个人的编号为:%d\n",number[i]);
        }
    }
    return 0;
}

注意:

  1. 在合适的条件下对count与i的值进行还原
  2. 跳出循环的条件的判断
  • 心得体会

虽然是一个挺简单的小demo,却也学到了很多,在一些细节方面有了更好的把握 ,尤其是for循环和while循环的运用,以及对跳出循环条件的判断。总的来说,收获满满,革命尚未成功,同志仍需努力!!

相关文章

  • 趣味C语言之杀人游戏

    游戏简述终端输入参与的人数:7,依次编号为1,2,3,4,5,6,7,大家围成一圈,输入死亡编号:3,凡是报到3的...

  • 趣味C语言之猜数游戏

    游戏简述系统随机产生4个0~9不相同的数字,从小到大排序,玩家从终端输入4个从小到大排好序的不相同数字,如果数字相...

  • 每个人都可能是别人眼中的小丑

    这几年《饭局的诱惑》中的把“杀人游戏”搬到节目中玩,放大这个游戏的趣味点,也是放大生活中的带有不同标签人的生活状态...

  • C语言学习-趣味游戏

    目的 用所学内容完成两个游戏的编写 1.“杀人”游戏 输入总共参与人数,围成一个圈,给每个人一个编号,再输入一个死...

  • 当语c加入MMORPG玩法,就是另一个绿洲

    近日见一款语c产品融入MMORPG游戏的玩法,沉迷其中,于是好好体验了一番。 语c常见的产品形态是语c的对戏、同人...

  • iOS开发系列文章[转]

    C语言 iOS开发系列--C语言之基础知识 iOS开发系列--C语言之数组和字符串 iOS开发系列--C语言之指针...

  • 第一个 C 语言编译器是怎样编写的?

    首先向C语言之父Dennis Ritchie致敬! 当今几乎所有的实用的编译器/解释器(以下统称编译器)都是用C语...

  • 《四通师语》内容篇

    53. 言之有道,言之有德,言之有物,言之有理。 54. 百姓通俗,学生趣味,商业实战,官方正式,学术专业。 55...

  • c语言版杀人游戏,猜数字游戏

    你是否拥有很强的逻辑思维? 如果没有,你是否为提高你的思维能力而苦恼,看着别人爱因斯坦般的思维,你是否还在羡慕,嫉...

  • 游戏,趣味,失控

    游戏,趣味,失控。

网友评论

      本文标题:趣味C语言之杀人游戏

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