• 丧尸求生文字小游戏


    游戏简介

    场景沉浸式游戏,遇到不同的场景,你有不同的选择,历时三天,你就能取得胜利。

    代码

      1 #include<stdio.h>
      2 #include <stdlib.h>
      3 #include <windows.h>
      4 
      5 void deathm();
      6 void author();
      7 void runto();
      8 
      9 int main(void) {
     10 
     11     //作者声明函数
     12     author();
     13 
     14     //变量定义
     15     int choice;         //玩家选择
     16     int choice2;        //第二天的玩家选择
     17     int hp = 100;       //血量
     18     int thirst = 0;     //口渴度
     19     int timeAlive = 0;  //存活时间
     20     int coins = 0;      //硬币功能
     21     int case1choice;    //case1的选择
     22     int case2choice;    //case2的选择
     23     int case3choice;    //case3的选择
     24     int deal1;          //第一个交易的选项
     25     int deal1_1;        //第一个交易的交易选项
     26     int bottle = 0;     //水瓶
     27     int j;              //循环变量
     28     int k;              //循环变量
     29     int twocase1choice;   //第二天的case1选择
     30     int twocase2choice;   //第二天的case2选择
     31     int twocase3choice;   //第二天的case3选择
     32     int twocase4choice;   //第二天的case4选择
     33     char name[20];           //求生者的名字
     34 
     35                              //游戏规则
     36     printf("你的血量是:%d
    ", hp);
     37     printf("你的口渴度是:%d
    ", thirst);
     38     printf("存活时间:%d
    ", timeAlive);
     39     Sleep(1000);
     40     //system("cls");
     41     printf("*血量到0极为死亡*
    ");
     42     printf("*口渴度到10极为死亡*
    ");
     43     printf("*存活时间到3极为成功存活*
    ");
     44     Sleep(3000);
     45     system("cls");
     46 
     47     printf("请输入你的名字:");
     48     scanf("%s", name);
     49     printf("求生者[%s]开始你的冒险吧!
    ", name);
     50 
     51     //游戏剧情
     52     printf("在一个月黑风高的夜晚...
    ");
     53     printf("突然传来了爆炸声...你醒了...
    ");
     54     printf("你发现周围什么都没了...
    ");
     55     printf("一群僵尸围着你...你有以下选择
    ");
     56     Sleep(1000);
     57 
     58     //任务分支
     59     printf("请使用数字1-4选择
    ");
     60     printf("1.逃跑到停车场
    ");
     61     printf("2.去超市搜刮一波
    ");
     62     printf("3.寻找存活的人
    ");
     63     printf("4.留在原地不动
    ");
     64     printf("请输入:");
     65     //Sleep(5000);
     66     scanf_s("%d", &choice);
     67     //Sleep(1000);
     68     system("cls");
     69 
     70     switch (choice) {
     71     case 1:
     72         printf("停车场里有车,但是附近有僵尸
    ");
     73         printf("进入输入1,待在停车场请输入2
    ");
     74         scanf_s("%d", &case1choice);
     75         if (case1choice == 1) {
     76             printf("车里躲了一只僵尸
    ");
     77             printf("你的血量减少了20");
     78             printf("但是你捡到了1个金币");
     79             coins++;
     80             hp -= 20;
     81             timeAlive++;
     82             thirst++;
     83         }
     84         else {
     85             printf("僵尸太多了,你在逃跑时被抓伤了
    ");
     86             printf("你的血量减少了5
    ");
     87             hp = hp - 5;
     88             timeAlive++;
     89             thirst++;
     90         }
     91         if (hp <= 0) {
     92             deathm();
     93             goto jieshu;
     94         }
     95         printf("
    ************************************
    ");
     96         printf("你的血量是:%d
    ", hp);
     97         printf("你的口渴度是:%d
    ", thirst);
     98         printf("存活时间:%d
    ", timeAlive);
     99         printf("你携带的水瓶:%d
    ", bottle);
    100         printf("你的金币:%d", coins);
    101         printf("
    ************************************
    ");
    102         Sleep(5000);
    103         system("cls");
    104         break;
    105     case 2:
    106         printf("僵尸把你包围了,你是要突围还是躲到储藏室
    ");
    107         printf("突围输入1,躲藏到储藏室输入2
    ");
    108         scanf_s("%d", &case2choice);
    109         if (case2choice == 1) {
    110             printf("突围失败!但是僵尸去吃别的人的尸体了
    ");
    111             printf("你的血量减少了20");
    112             hp -= 20;
    113             timeAlive++;
    114             thirst++;
    115         }
    116         else {
    117             printf("没有人发现你,但是你踩到了香蕉摔了个跟头
    ");
    118             printf("你的血量减少了10
    ");
    119             printf("但是你在柜子里发现了1个金币");
    120             coins++;
    121             hp -= 10;
    122             timeAlive++;
    123             thirst++;
    124         }
    125         if (hp <= 0) {
    126             deathm();
    127             goto jieshu;
    128         }
    129         printf("
    ************************************
    ");
    130         printf("你的血量是:%d
    ", hp);
    131         printf("你的口渴度是:%d
    ", thirst);
    132         printf("存活时间:%d
    ", timeAlive);
    133         printf("你携带的水瓶:%d
    ", bottle);
    134         printf("你的金币:%d", coins);
    135         printf("
    ************************************
    ");
    136         Sleep(5000);
    137         system("cls");
    138         break;
    139     case 3:
    140         printf("你的伙伴被感染了,你要救他吗?
    ");
    141         printf("救他输入1,当做没看见输入2
    ");
    142         scanf_s("%d", &case3choice);
    143         if (case3choice == 1) {
    144             printf("你成功救了他,没有受到任何伤害
    ");
    145             printf("你的血量减少了0");
    146             hp -= 0;
    147             timeAlive++;
    148             thirst++;
    149         }
    150         else {
    151             printf("他说你是一个冷血!并且咬了你一口
    ");
    152             printf("你的血量减少了10
    ");
    153             printf("他走的时候掉了1个金币");
    154             hp -= 10;
    155             timeAlive++;
    156             thirst++;
    157         }
    158         if (hp <= 0) {
    159             deathm();
    160             goto jieshu;
    161         }
    162         printf("
    ************************************
    ");
    163         printf("你的血量是:%d
    ", hp);
    164         printf("你的口渴度是:%d
    ", thirst);
    165         printf("存活时间:%d
    ", timeAlive);
    166         printf("你携带的水瓶:%d
    ", bottle);
    167         printf("你的金币:%d", coins);
    168         printf("
    ************************************
    ");
    169         Sleep(5000);
    170         system("cls");
    171         break;
    172     case 4:
    173         printf("你留在了原地不动,你没有任何武器
    ");
    174         printf("僵尸已经逼近,你只能坐以待毙...
    ");
    175         hp -= 100;
    176         if (hp <= 0) {
    177             deathm();
    178             goto jieshu;
    179         }
    180         else {
    181             goto success;
    182         }
    183         printf("
    ************************************
    ");
    184         printf("你的血量是:%d
    ", hp);
    185         printf("你的口渴度是:%d
    ", thirst);
    186         printf("存活时间:%d
    ", timeAlive);
    187         printf("你携带的水瓶:%d
    ", bottle);
    188         printf("你的金币:%d", coins);
    189         printf("
    ************************************
    ");
    190         Sleep(5000);
    191         system("cls");
    192         break;
    193     default:
    194         printf("什么?没僵尸?你的打开方式错了
    ");
    195         break;
    196     }
    197 
    198 
    199     //第一天结束的交易
    200     printf("这里有个商人,要交易,你要吗?
    ");
    201     printf("想交易的话输入1,不想的话输入2
    ");
    202     Sleep(1000);
    203     if (hp > 0) {
    204         scanf("%d", &deal1);
    205         if (deal1 == 1) {
    206             if (coins >= 1) {
    207                 printf("************************************
    ");
    208                 printf("	我有一个水瓶,我要一个金币");
    209                 printf("
    ************************************
    ");
    210                 printf("要的话请输入1,终止交易输入2
    ");
    211                 scanf("%d", &deal1_1);
    212                 if (deal1_1 == 1) {
    213                     printf("水瓶给你了,以后合作!
    ");
    214                     coins--;
    215                     bottle++;
    216                 }
    217             }
    218             else {
    219                 printf("看来你没钱给跟我交易,穷小子
    ");
    220             }
    221 
    222         }
    223     }
    224     Sleep(1000);
    225 
    226     //水瓶使用
    227     if (bottle >= 1) {
    228         printf("你喝了水,口渴度变为0
    ");
    229         thirst = 0;
    230     }
    231 
    232     system("cls");
    233 
    234     runto();
    235 
    236     //第二天任务分支
    237     printf("请使用数字1-4选择
    ");
    238     printf("1.进入军事基地
    ");
    239     printf("2.去打猎找点吃的
    ");
    240     printf("3.躲进洞穴里
    ");
    241     printf("4.爬上千年古树
    ");
    242 
    243     printf("请输入:");
    244     scanf_s("%d", &choice2);
    245 
    246     Sleep(1000);
    247     system("cls");
    248 
    249     switch (choice) {
    250     case 1:
    251         printf("军事基地不让你进入,眼看僵尸已经围上来了
    ");
    252         printf("输入1翻墙进入,输入2快速逃跑
    ");
    253         scanf_s("%d", &twocase1choice);
    254         if (twocase1choice == 1) {
    255             printf("你翻墙失败,正在不停的流血
    ");
    256             for (j = 0; j < 10; j++) {
    257                 printf("-1");
    258                 hp--;
    259             }
    260             thirst++;
    261             timeAlive++;
    262             printf("幸好你在墙角发现了1个金币
    ");
    263         }
    264         else {
    265             printf("你被僵尸抓住了,头被啃了下来
    ");
    266             hp -= 100;
    267         }
    268         if (hp <= 0) {
    269             deathm();
    270             goto jieshu;
    271         }
    272         else {
    273             goto success;
    274         }
    275         printf("
    ************************************
    ");
    276         printf("你的血量是:%d
    ", hp);
    277         printf("你的口渴度是:%d
    ", thirst);
    278         printf("存活时间:%d
    ", timeAlive);
    279         printf("你携带的水瓶:%d
    ", bottle);
    280         printf("你的金币:%d", coins);
    281         printf("
    ************************************
    ");
    282         Sleep(5000);
    283         system("cls");
    284         break;
    285     case 2:
    286         printf("你看到一只小狼崽,你是杀了它吃还是放过它
    ");
    287         printf("上去杀了小狼输入1,放过它输入2
    ");
    288         scanf_s("%d", &twocase2choice);
    289         if (twocase2choice == 1) {
    290             printf("小狼反过来咬了你一口,你正在不停的失血
    ");
    291             for (k = 0; k < 10; k++) {
    292                 printf("-2");
    293                 hp -= 2;
    294             }
    295             thirst++;
    296             timeAlive++;
    297         }
    298         else {
    299             printf("你转头离开了,并且发现了1个金币
    ");
    300             printf("你没有受到任何伤害
    ");
    301             thirst++;
    302             timeAlive++;
    303         }
    304         if (hp <= 0) {
    305             deathm();
    306             goto jieshu;
    307         }
    308         else {
    309             goto success;
    310         }
    311         printf("
    ************************************
    ");
    312         printf("你的血量是:%d
    ", hp);
    313         printf("你的口渴度是:%d
    ", thirst);
    314         printf("存活时间:%d
    ", timeAlive);
    315         printf("你携带的水瓶:%d
    ", bottle);
    316         printf("你的金币:%d", coins);
    317         printf("
    ************************************
    ");
    318         Sleep(5000);
    319         system("cls");
    320         break;
    321     case 3:
    322         printf("洞穴里一片漆黑,你还要躲进去吗?
    ");
    323         printf("躲进去输入1,离开输入2
    ");
    324         scanf_s("%d", &twocase3choice);
    325         if (twocase3choice == 1) {
    326             printf("你进入了洞穴,但是被僵尸抓伤了
    ");
    327             printf("血量减少了40
    ");
    328             hp -= 40;
    329             thirst++;
    330             timeAlive++;
    331         }
    332         else {
    333             printf("你离开了洞穴,周围一片漆黑...
    ");
    334             printf("突然飞出来了一个骷髅头,你被砸中了
    ");
    335             printf("血量减少了20
    ");
    336             hp -= 20;
    337             thirst++;
    338             timeAlive++;
    339         }
    340         if (hp <= 0) {
    341             deathm();
    342             goto jieshu;
    343         }
    344         else {
    345             goto success;
    346         }
    347         printf("
    ************************************
    ");
    348         printf("你的血量是:%d
    ", hp);
    349         printf("你的口渴度是:%d
    ", thirst);
    350         printf("存活时间:%d
    ", timeAlive);
    351         printf("你携带的水瓶:%d
    ", bottle);
    352         printf("你的金币:%d", coins);
    353         printf("
    ************************************
    ");
    354         Sleep(5000);
    355         system("cls");
    356         break;
    357     case 4:
    358         printf("千年古树很陡峭,你不会爬树,还要上去吗
    ");
    359         printf("上去输入1,在树旁边睡下输入2
    ");
    360         scanf_s("%d", &twocase4choice);
    361         if (twocase4choice == 1) {
    362             printf("你从树上摔了下来,你一直在流血,还好止住了
    ");
    363             printf("血量减少了50
    ");
    364             hp -= 50;
    365             thirst++;
    366             timeAlive++;
    367         }
    368         else {
    369             printf("树边有遮挡物,很安全你没被发现
    ");
    370             printf("血量减少了0
    ");
    371             thirst++;
    372             timeAlive++;
    373         }
    374         if (hp <= 0) {
    375             deathm();
    376             goto jieshu;
    377         }
    378         else {
    379             goto success;
    380         }
    381         printf("
    ************************************
    ");
    382         printf("你的血量是:%d
    ", hp);
    383         printf("你的口渴度是:%d
    ", thirst);
    384         printf("存活时间:%d
    ", timeAlive);
    385         printf("你携带的水瓶:%d
    ", bottle);
    386         printf("你的金币:%d", coins);
    387         printf("
    ************************************
    ");
    388         Sleep(5000);
    389         system("cls");
    390         break;
    391     default:
    392         printf("什么?没僵尸?你的打开方式错了
    ");
    393         break;
    394     }
    395 
    396     //goto语句,结束提醒
    397 jieshu:
    398     Sleep(1000);
    399     printf("
    ************************************
    ");
    400     printf("游戏已经结束,感谢游玩!
    ");
    401     printf("
    ************************************
    ");
    402     printf("感谢求生者[%s]体验本游戏", name);
    403     printf("
    ************************************
    ");
    404     Sleep(5000);
    405     if (timeAlive >= 3) {
    406     success:
    407         printf("
    ************************************
    ");
    408         printf("你成功的存活到了第3天,感谢游玩!");
    409         printf("
    ************************************
    ");
    410         printf("感谢求生者[%s]体验本游戏", name);
    411         printf("
    ************************************
    ");
    412         Sleep(5000);
    413     }
    414 
    415 }
    416 
    417 void deathm() {
    418 
    419     //死亡提示
    420     printf("
    ************************************
    ");
    421     printf("	你已经死亡!");
    422     printf("
    ************************************
    ");
    423     Sleep(1000);
    424 }
    425 
    426 void author() {
    427 
    428     //作者申明
    429     printf("
    ************************************
    ");
    430     printf("	丧失求生-永恒制作");
    431     printf("
    ************************************
    ");
    432     Sleep(1000);
    433 }
    434 
    435 void runto() {
    436 
    437     //跑路
    438     printf("跑路中...跑路中...
    ");
    439     printf("好累...好累...
    ");
    440     printf("白天到了,下一步干什么
    ");
    441 }

    备注:游戏非常有趣,但代码却很简单,C语言入门的同学就可以拿来练手。很久之前在贴吧(C语言吧)见得,对作者佩服得五体投地啊!

  • 相关阅读:
    Python Django 之 Template 模板语言简介
    Prometheus
    MySQL 存储过程中执行DDL
    Mysql 存储过程-转载
    Mysql 时间类型整理
    MySQL 5.7 分区表性能下降的案例分析
    Mysql 分区表-分区操作
    Mysql 中Left/Right join on后面and和where条件查询的差异-Mysql SQL运算符是有优先级
    MySQL出现Waiting for table metadata lock的原因以及解决方法
    Python 字符串转换为字典(String to Dict)
  • 原文地址:https://www.cnblogs.com/lfri/p/9889079.html
Copyright © 2020-2023  润新知