生活随笔
收集整理的這篇文章主要介紹了
简易走迷宫游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡易走迷宮游戲
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#pragma comment(lib,"Winmm.lib")
#include<time.h>
using namespace std
;int cot
, flag1
, flag2
, flag3
;
int x
, y
, i
, p
, q
, z
, book
, a3
, a4
, a5
, a6
;
int a1
, a2
;
char ch
;
char c
[100][100] = { "■■■■■■■■■■","■◎ ■■","■ ■ ■ ■ ★■","■ ■ ■ ■ 勇者啊,記得拿到鑰匙之后才能打開牢房逃離","■ ■■■ ■ ■■ ■表示墻 ◎表示你 ★表示鑰匙 卍表示出口","■ ■■ ■ 卍","■ ■ ■ ■","■ ■ ■■■■ ■","■ ■","■■■■■■■■■■",
};
char b
[200][200] = { "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■","■ ■ ■ ■■■■■■■ ■ ■","■ ■■ ■■■■ ■■ ■ ■■ ■■ ■■","■ ■ ■ ■ ■ ■ ■■ ■ ■","■ ■■■■ ◎ ■ ■■■ ■ ■■ ■■","■ ■ ■ ■ ■ ■■ ■ 卍","■■ ■■ ■ ■■■■■■ ■■■ ■","■ ■■■■ ■ ■ ■ ■ ■■ ■■ ■","■ ■★ ■ ■■■■ ■ ■ ■■ ■ ■","■ ■ ■■ ■ ■■ ■■ ■■","■■■■ ■ ■ ■■■■ ■ ■ ■ ■■■","■ ■■ ■ ■■ ■ ■ ■■■■","■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■",
};
char a
[200][300] =
{"■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■","■ ■ ■ ■■■ ■■■■ ■","■ ■ ■■■■■ ■ ■■ ■■■ ■ ■ ■■ ■■■■■ ■■■■■■■ ■","■ ■ ■ ■ ■ ■ ■ ■ ■ ■■■■■ ■■ ■ ■","■ ■■■■ ■ ■ ■ ■■■■ ■ ■■ ■ ■■■■ ■■■■■ ■■■","■ ■ ■■■■ ■ ■ ■ ■ ■ ■ ■ ■■■■■ ■■ ■■■","■ ■ ■ ■■ ■■■■■■ ■ ■ ■■■■■■ ■■■■■■ ■ ■■■","■ ■■■ ■ ◎ ■ ■ ■ ■ ■ ■■ ■■ ■■■■","■ ■ ■■■■■ ■■■ ■■■■■■■■■■ ■■■■■■ ■ ■ ■■■■ 卍","■ ■■■■■ ■■■■ ■ ■■ ■■■■■ ■ ■ ■■■■■ ■","■ ■ ★■ ■ ■■■■■■■ ■■ ■ ■ ■■■■■■■■ ■■■■■■ ■","■■■ ■ ■ ■■■■ ■ ■ ■■■■■ ■ ■■■■ ■ ■ ■","■ ■■ ■ ■■ ■■■■ ■■ ■ ■■ ■ ■ ■■■■■■ ■ ■","■ ■ ■ ■ ■ ■ ■■■ ■ ■ ■ ■ ■■■ ■ ■ ■ ■ ■","■ ■ ■■■■■■ ■■ ■ ■ ■■■■ ■ ■■■ ■ ■ ■ ■","■ ■ ■ ■■■ ■■■ ■■■■■■■ ■ ■ ■ ■■■■■ ■ ■","■ ■■■ ■ ■ ■■ ■ ■ ■■■■■ ■ ■ ■ ■ ■","■ ■ ■ ■■■■ ■ ■ ■ ■■■ ■ ■ ■■■■■","■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■",
};
void status()
{void gotoxy(int x
, int y
);if (c
[x
][y
+ 1] == -17 && c
[x
][y
] == -95 && z
== 1){flag1
= 1;gotoxy(11, 5);printf("勇者,恭喜你!得到了遺失在迷宮中的鑰匙!");}else if (b
[x
][y
+ 1] == -17 && b
[x
][y
] == -95 && z
== 2){flag2
= 1;gotoxy(14, 5);printf("勇者,恭喜你!得到了遺失在迷宮中的鑰匙!");}else if (a
[x
][y
+ 1] == -17 && a
[x
][y
] == -95 && z
== 3){flag3
= 1;gotoxy(20, 5);printf("勇者,恭喜你!得到了遺失在迷宮中的鑰匙!");}
}
void gotoxy(int x
, int y
)
{COORD coord
;coord
.X
= y
;coord
.Y
= x
;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE
), coord
);
}
void HideCursor()
{CONSOLE_CURSOR_INFO cursor
;cursor
.bVisible
= FALSE
;cursor
.dwSize
= sizeof(cursor
);HANDLE handle
= GetStdHandle(STD_OUTPUT_HANDLE
);SetConsoleCursorInfo(handle
, &cursor
);
}
void getpd(char js
)
{if (z
== 1){if (js
== 'w' && ((c
[x
- 1][y
] != -95 && c
[x
- 1][y
] != -10) || (c
[x
- 1][y
+ 1] == -17) || (c
[x
- 1][y
+ 1] == -14))){if (c
[x
- 1][y
] == -123 && !flag1
)goto out1
;gotoxy(x
, y
);printf(" ");x
--;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(10, 10);printf("%d", cot
);status();}if (js
== 's' && ((c
[x
+ 1][y
] != -95 && c
[x
+ 1][y
] != -10) || (c
[x
+ 1][y
+ 1] == -17) || (c
[x
+ 1][y
+ 1] == -14))){if (c
[x
+ 1][y
] == -123 && !flag1
)goto out1
;gotoxy(x
, y
);printf(" ");x
++;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(10, 10);printf("%d", cot
);status();}if (js
== 'd' && ((c
[x
][y
+ 2] != -95 && c
[x
][y
+ 2] != -10) || (c
[x
][y
+ 3] == -17) || (c
[x
][y
+ 3] == -14))){if (c
[x
][y
+ 2] == -123 && !flag1
)goto out1
;gotoxy(x
, y
);printf(" ");y
+= 2;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(10, 10);printf("%d", cot
);status();}if (js
== 'a' && ((c
[x
][y
- 2] != -95 && c
[x
][y
- 2] != -10) || (c
[x
][y
- 1] == -17) || (c
[x
][y
- 1] == -14))){if (c
[x
][y
- 1] == -123 && !flag1
)goto out1
;gotoxy(x
, y
);printf(" ");y
-= 2;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(10, 10);printf("%d", cot
);status();}out1
:{}}if (z
== 2){if (js
== 'w' && ((b
[x
- 1][y
] != -95 && b
[x
- 1][y
] != -10) || (b
[x
- 1][y
+ 1] == -17) || (b
[x
- 1][y
+ 1] == -14))){if (b
[x
- 1][y
] == -123 && !flag2
)goto out2
;gotoxy(x
, y
);printf(" ");x
--;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(13, 10);printf("%d", cot
);status();}if (js
== 's' && ((b
[x
+ 1][y
] != -95 && b
[x
+ 1][y
] != -10) || (b
[x
+ 1][y
+ 1] == -17) || (b
[x
+ 1][y
+ 1] == -14))){if (b
[x
+ 1][y
] == -123 && !flag2
)goto out2
;gotoxy(x
, y
);printf(" ");x
++;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(13, 10);printf("%d", cot
);status();}if (js
== 'd' && ((b
[x
][y
+ 2] != -95 && b
[x
][y
+ 2] != -10) || (b
[x
][y
+ 3] == -17) || (b
[x
][y
+ 3] == -14))){if (b
[x
][y
+ 2] == -123 && !flag2
)goto out2
;gotoxy(x
, y
);printf(" ");y
+= 2;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(13, 10);printf("%d", cot
);status();}if (js
== 'a' && ((b
[x
][y
- 2] != -95 && b
[x
][y
- 2] != -10) || (b
[x
][y
- 1] == -17) || (b
[x
][y
- 1] == -14))){if (b
[x
][y
- 1] == -123 && !flag2
)goto out2
;gotoxy(x
, y
);printf(" ");y
-= 2;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(13, 10);printf("%d", cot
);status();}out2
:{}}if (z
== 3){if (js
== 'w' && ((a
[x
- 1][y
] != -95 && a
[x
- 1][y
] != -10) || (a
[x
- 1][y
+ 1] == -17) || (a
[x
- 1][y
+ 1] == -14))){if (a
[x
- 1][y
] == -123 && !flag3
)goto out3
;gotoxy(x
, y
);printf(" ");x
--;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(19, 10);printf("%d", cot
);status();}if (js
== 's' && ((a
[x
+ 1][y
] != -95 && a
[x
+ 1][y
] != -10) || (a
[x
+ 1][y
+ 1] == -17) || (a
[x
+ 1][y
+ 1] == -14))){if (a
[x
+ 1][y
] == -123 && !flag3
)goto out3
;gotoxy(x
, y
);printf(" ");x
++;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(19, 10);printf("%d", cot
);status();}if (js
== 'd' && ((a
[x
][y
+ 2] != -95 && a
[x
][y
+ 2] != -10) || (a
[x
][y
+ 3] == -17) || (a
[x
][y
+ 3] == -14))){if (a
[x
][y
+ 2] == -123 && !flag3
)goto out3
;gotoxy(x
, y
);printf(" ");y
+= 2;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(19, 10);printf("%d", cot
);status();}if (js
== 'a' && ((a
[x
][y
- 2] != -95 && a
[x
][y
- 2] != -10) || (a
[x
][y
- 1] == -17) || (a
[x
][y
- 1] == -14))){if (a
[x
][y
- 1] == -123 && !flag3
)goto out3
;gotoxy(x
, y
);printf(" ");y
-= 2;gotoxy(x
, y
);printf("◎");cot
++;gotoxy(19, 10);printf("%d", cot
);status();}out3
:{}}
}
void time(int t
, int r
)
{clock_t s
, f
;int a1
;s
= clock();f
= clock();srand(time(NULL));if (z
== 2){while (1){HideCursor();if (b
[x
][y
] == -123 && flag2
)break;if (!_kbhit()){f
= clock();if (f
- s
>= 200){a1
= rand() % 100 + 1;if (a1
>= 1 && a1
<= 25 && b
[t
][r
+ 2] != -95 && b
[t
][r
+ 2] != -123){gotoxy(t
, r
);printf(" ");r
+= 2;gotoxy(t
, r
);printf("◆");}if (a1
>= 26 && a1
<= 50 && b
[t
][r
- 2] != -95 && b
[t
][r
- 2] != -123){gotoxy(t
, r
);printf(" ");r
-= 2;gotoxy(t
, r
);printf("◆");}if (a1
>= 51 && a1
<= 75 && b
[t
+ 1][r
] != -95 && b
[t
+ 1][r
] != -123){gotoxy(t
, r
);printf(" ");t
++;gotoxy(t
, r
);printf("◆");}if (a1
>= 76 && a1
<= 100 && b
[t
- 1][r
] != -95 && b
[t
- 1][r
] != -123){gotoxy(t
, r
);printf(" ");t
--;gotoxy(t
, r
);printf("◆");}if (t
== x
&& y
== r
){gotoxy(t
, r
);printf(" ");gotoxy(4, 14);printf("◎");gotoxy(8, 8);printf("★");flag2
= 0;book
= 1;break;}s
+= 200;}}else{HideCursor();ch
= getchar();getpd(ch
);status();}}}else if (z
== 3){while (1){HideCursor();if (a
[x
][y
] == -123 && flag3
)break;if (!_kbhit()){f
= clock();if (f
- s
>= 200){a1
= rand() % 100 + 1;int js1
= rand() % 100 + 1, js2
= rand() % 100 + 1;if (a1
>= 1 && a1
<= 25 && a
[t
][r
+ 2] != -95 && a
[t
][r
+ 2] != -123){gotoxy(t
, r
);printf(" ");r
+= 2;gotoxy(t
, r
);printf("◆");}if (a1
>= 26 && a1
<= 50 && a
[t
][r
- 2] != -95 && a
[t
][r
- 2] != -123){gotoxy(t
, r
);printf(" ");r
-= 2;gotoxy(t
, r
);printf("◆");}if (a1
>= 51 && a1
<= 75 && a
[t
+ 1][r
] != -95 && a
[t
+ 1][r
] != -123){gotoxy(t
, r
);printf(" ");t
++;gotoxy(t
, r
);printf("◆");}if (a1
>= 76 && a1
<= 105 && a
[t
- 1][r
] != -95 && a
[t
- 1][r
] != -123){gotoxy(t
, r
);printf(" ");t
--;gotoxy(t
, r
);printf("◆");}if (js1
>= 1 && js1
<= 25 && a
[a3
][a4
+ 2] != -95 && a
[a3
][a4
+ 2] != -123){gotoxy(a3
, a4
);printf(" ");a4
+= 2;gotoxy(a3
, a4
);printf("◆");}if (js1
>= 26 && js1
<= 50 && a
[a3
][a4
- 2] != -95 && a
[a3
][a4
- 2] != -123){gotoxy(a3
, a4
);printf(" ");a4
-= 2;gotoxy(a3
, a4
);printf("◆");}if (js1
>= 51 && js1
<= 75 && a
[a3
+ 1][a4
] != -95 && a
[a3
+ 1][a4
] != -123){gotoxy(a3
, a4
);printf(" ");a3
++;gotoxy(a3
, a4
);printf("◆");}if (js1
>= 76 && js1
<= 105 && a
[a3
- 1][a4
] != -95 && a
[a3
- 1][a4
] != -123){gotoxy(a3
, a4
);printf(" ");a3
--;gotoxy(a3
, a4
);printf("◆");}if (js2
>= 1 && js2
<= 25 && a
[a5
][a6
+ 2] != -95 && a
[a5
][a6
+ 2] != -123){gotoxy(a5
, a6
);printf(" ");a6
+= 2;gotoxy(a5
, a6
);printf("◆");}if (js2
>= 26 && js2
<= 50 && a
[a5
][a6
- 2] != -95 && a
[a5
][a6
- 2] != -123){gotoxy(a5
, a6
);printf(" ");a6
-= 2;gotoxy(a5
, a6
);printf("◆");}if (js2
>= 51 && js2
<= 75 && a
[a5
+ 1][a6
] != -95 && a
[a5
+ 1][a6
] != -123){gotoxy(a5
, a6
);printf(" ");a5
++;gotoxy(a5
, a6
);printf("◆");}if (js2
>= 76 && js2
<= 105 && a
[a5
- 1][a6
] != -95 && a
[a5
- 1][a6
] != -123){gotoxy(a5
, a6
);printf(" ");a5
--;gotoxy(a5
, a6
);printf("◆");}if ((t
== x
&& y
== r
) || (x
== a3
&& y
== a4
) || (x
== a5
&& y
== a6
)){gotoxy(t
, r
);printf(" ");gotoxy(a3
, a4
);printf(" ");gotoxy(a5
, a6
);printf(" ");gotoxy(7, 32);printf("◎");gotoxy(10, 10);printf("★");book
= 1;flag3
= 0;break;}s
+= 200;}}else{HideCursor();ch
= getchar();getpd(ch
);status();}}}
}
int main()
{HideCursor();printf(" 親愛的勇者,你總算醒了。 (按下enter鍵繼續)");system("color B");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}printf(" 什么,你問現在什么個情況?");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}printf(" 你忘了么,你被怪物偷襲了,這之后他們把昏迷的你帶到了這座迷宮并關了起來");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}printf(" 好在有我跟了進來并找到了牢房鑰匙的位置,所以趁現在快離開這里吧");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}printf(" 但可惜的是你的武器被他們帶走了,因此你只能想辦法避開怪物,不被它們發現");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}printf(" 你問我是誰?這并不重要,你就把我當作一個樂于助人但未交課程設計作業的大學生吧");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}printf(" 好了,話不多說,快開始吧");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}system("CLS");for (z
= 1; z
<= 3; z
++){if (z
== 1){x
= 1, y
= 1, p
= 5, q
= 9;for (i
= 0; i
< 10; i
++){printf("%s", c
[i
]);printf("\n");}printf("當前步數: %d\n狀態: \n", cot
);system("color B");x
= 1, y
= 2;while (c
[x
][y
] != -123 || !flag1
){HideCursor();ch
= getchar();getpd(ch
);}system("CLS");printf(" 恭喜你!勇者,你成功逃出了第一層迷宮\n");printf(" 請按下enter鍵以前往下一層\n");printf("(注意!下一層開始會出現你無法擊敗的強大怪物,請注意躲避)");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}system("CLS");}if (z
== 2){cot
= 0;srand(time(0));x
= 4, y
= 14, p
= 5, q
= 57, book
= 0;for (i
= 0; i
<= 12; i
++){printf("%s", b
[i
]);printf("\n");}printf("當前步數: %d\n狀態: \n", cot
);system("color B");while (1){a1
= rand() % 10 + 3;a2
= rand() % 47 + 3;if (!(a2
% 2)){if (b
[a1
][a2
] != -95){gotoxy(a1
, a2
);printf("◆");time(a1
, a2
);break;}}}if (book
== 1){system("CLS");z
= 1;printf(" 很遺憾,勇者,你被怪物抓住了\n");printf(" (請按下enter鍵重新挑戰)\n");}else{system("CLS");printf("真不愧是天選之子,恭喜你!勇者,你可以前往最終試煉了\n");printf(" (請按下enter鍵以前往下一層)\n");}while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}system("CLS");}if (z
== 3){cot
= 0;x
= 7, y
= 32, p
= 8, q
= 118, book
= 0;for (i
= 0; i
<= 18; i
++){printf("%s", a
[i
]);if (i
!= 18)printf("\n");}printf("當前步數: %d\n狀態: \n", cot
);while (1){a1
= rand() % 17 + 1;a2
= rand() % 117 + 1;a3
= rand() % 17 + 1;a4
= rand() % 117 + 1;a5
= rand() % 17 + 1;a6
= rand() % 117 + 1;if (!(a2
% 2) && !(a4
% 2) && !(a6
% 2)){if (a
[a1
][a2
] != -95 && a
[a3
][a4
] != -95 && a
[a5
][a6
] != -95){gotoxy(a1
, a2
);printf("◆");gotoxy(a3
, a4
);printf("◆");gotoxy(a5
, a6
);printf("◆");time(a1
, a2
);break;}}}if (book
== 1){system("CLS");z
= 2;printf(" 很遺憾,勇者,你被怪物抓住了\n");printf(" (請按下enter鍵重新挑戰)\n");while (1){char ss
;ss
= getchar();if (ss
== '\n')break;}system("CLS");}else{system("CLS");printf("太強了,恭喜你!勇者,你成功逃出了迷宮\n");printf("當然我也沒有閑著,我替你找回了你的武器:\n");system("color 2");printf(" * \n");printf(" *** \n");printf(" *** \n");printf(" *** \n");printf(" *** 圣遺物:湖女劍\n");printf(" *** \n");printf(" *******\n");printf(" *** \n");printf(" *** \n");system("color 6");printf("那么,請你在以后繼續用它懲奸除惡,做最強的勇者吧");Sleep(10000);}}}return 0;
}
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生
總結
以上是生活随笔為你收集整理的简易走迷宫游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。