丧尸求生文字小游戏

游戏简介

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

代码

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

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

猜你喜欢

转载自www.cnblogs.com/lfri/p/9889079.html