喪屍求生文字小遊戲
阿新 • • 發佈:2018-11-01
遊戲簡介
場景沉浸式遊戲,遇到不同的場景,你有不同的選擇,歷時三天,你就能取得勝利。
程式碼
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語言吧,對作者佩服得五體投地啊!