C语言实战开发——写一个狼人杀版的小游戏

约瑟夫生者死者小游戏(适合多人娱乐的小游戏)

规则

输入玩家数量,自动编号。输入死亡编号,根据死亡编号杀人。每死亡一人,接着后面的人重新编号,继续按编号杀人。例如:
请输入参与人数: 7
1 2 3 4 5 6 7
请输入杀人的编号:3
请输入最后一个人的编号
1 2 3 4 5 6 7
3
1 2

这里用到了define,那么就来讲一讲define吧:
1.#define可以为类型定义别名。

#define INT int 

2.#define不仅可以为类型定义别名,也可以为数值定义别名。为数值定义一个别名时,达到了定义一个常量的效果。

#define KILLED -1 

3.使用#define的好处在于一方面加强了代码的可读性,另一方面是增强可操作性便于代码修改。(多处使用#define定义的别名时,别名对应的值需要修改时,可以直接在#define处快速修改。

#include <stdio.h>

#define KILLED -1 //宏定义(取别名)

int main(){
    int num[50] = {}; //保存每个人的编号
    int count = 0 ; //保存输入的人数 
    int killNum = 0; //被杀的人的编号
     
    printf("请输入参与人数:");
    scanf("%d", &count);
    
    //开始编号
    for(int i = 0; i < count; i++){
        num[i] = i+1;//对每个人进行编号。 
    } 
    printf("请输入杀人的编号:");
    scanf("%d", &killNum); 
    
    //开始游戏
    int current = 0; //记录当前报数的位置 
    int totalKilled = 0; //记录当前死亡人数 
    for(int i = 0; i < count; i++){
        //i指向的这个人开始报数 
        if(num[i] != KILLED){
            current++;
        }
        
        //判断当前编号是不是死亡编号
        if(current == killNum){
            printf("死亡编号%d \n", num[i]); 
            
            //杀掉
            num[i] = KILLED;
            
            //还原 
            current = 0;
            
            totalKilled++;
            
            //当还剩一个的时候就退出循环 
            if(totalKilled == count-1){
                break;
            } 
        } 
        
        //判断是否到末尾了
        if (i == count-1){
            i = -1;
        } 
    }
     
     for(int i = 0; i < count; i++){
        printf("%d ", num[i]);
     } 
    return 0;
}

运行效果就是这样的:


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目的:掌握用C语言编程的基本技能内容:1. #define的使用   2. 冒泡排序   3. 选择排序   4....
    CyraChen阅读 365评论 0 1
  • 实战游戏介绍输入玩家数量并编号,接着输入死亡编号,根据死亡编号杀人,每死亡一人,剩下的重新编号,继续按编号杀人,直...
    黎明初起阅读 876评论 0 0
  • 目的 通过实现约瑟夫生者死者小游戏,达到简单的掌握#define宏,动态分配内存的作用 技术 #define宏的使...
    小石头呢阅读 634评论 0 1
  • 规则 输入玩家数量,自动编号。输入死亡编号,根据死亡编号杀人。每杀死一人,接着后面的人重新编号,继续按编号杀人。 ...
    白茶LXL阅读 983评论 0 0
  • 注:这是第三遍读《C语言深度解剖》,想想好像自从大学开始就没读完过几本书,其中谭浩强的那本《C语言程序设计(第四版...
    HavenXie阅读 1,823评论 1 6