专栏文章
游戏
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mio2zdt1
- 此快照首次捕获于
- 2025/12/02 12:31 3 个月前
- 此快照最后确认于
- 2025/12/02 12:31 3 个月前
本人的迷宫游戏,会更新,绝对自己写,如发现雷同,那我绝对是真的!
CPP#include<windows.h>
#include<bits/stdc++.h>
#include<conio.h>
#define int long long
using namespace std;
string s[105];
char c;
int q,f,t;
void color(int a){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void out(string s){
for(int i=0;i<s.size();i++){
cout<<s[i];
cout.flush();
Sleep(30);
}
cout<<endl;
}
int mg(int n){
// 清空之前的迷宫数据
for(int i=1;i<=100;i++)s[i]="";
if(n==1){
s[1]="#######";
s[2]="# #+#";
s[3]="# # # #";
s[4]="# # # #";
s[5]="# ### #";
s[6]="# #";
s[7]="#######";
return 7;
}
if(n==2){
s[1]="########";
s[2]="# # #";
s[3]="# # # #";
s[4]="# # #";
s[5]="### # ##";
s[6]="# # # #";
s[7]="# #+#"; // 修复重复定义s[6]的问题
s[8]="########";
return 8;
}
if(n==3){
s[1]= "##########";
s[2]= "# # #";
s[3]= "# ## # #";
s[4]= "# # # # #";
s[5]= "# ## ## #";
s[6]= "# -### ##";
s[7]= "### # #";
s[8]= "#+ # # # #";
s[9]= "#- # #"; // 修复重复定义s[6]的问题
s[10]="##########";
return 10;
}
if(n==4){
s[1]= "############";
s[2]= "# # #";
s[3]= "# #-#-#### #";
s[4]= "# # # # #";
s[5]= "## # # ##";
s[6]= "#+### # #";
s[7]= "# # # ##";
s[8]= "# # # ### #";
s[9]= "# #- # # #";
s[10]="# # # # ##";
s[11]="#- * #";
s[12]="############";
return 12;
}
if(n==5){
s[1]= "###############";
s[2]= "# # #";
s[3]= "# ## -##v#v-# #";
s[4]= "# # # # ## #";
s[5]= "# # # # # ##";
s[6]= "## # # # # #";
s[7]= "# # # # #";
s[8]= "# #-#*# ### #";
s[9]= "# #- # ## # #";
s[10]="## *## ## #";
s[11]="#+## # # ##";
s[12]="# ### -# #-#";
s[13]="# # # ## # #";
s[14]="#- # #";
s[15]="###############";
return 15;
}
if(n=-1){
s[1]= "########################";
s[2]= "# # v#t -# *h*- * *#";
s[3]= "# *##-# # ---#* -v#-*#";
s[4]= "# - #* #*# -v***#####**#";
s[5]= "## * # # -#vh --#-*#";
s[6]= "#v*#vt## # --*#v * #**#";
s[7]= "### #v# #- #--##v -#-*#";
s[8]= "# #v*# *# *v## -#hh#-*#";
s[9]= "#h#- ## ### v# ##*#";
s[10]="# ## # h#v # # *--#-*#";
s[11]="# v * ##-## #* #**#";
s[12]="#*-# # - ####v*# #-*#";
s[13]="# # v * ####- ## #-*#";
s[14]="# *#* #*** # # #-**#";
s[15]="#-v#-v#* # # # ##-*-#";
s[16]="### ##v#v# #-# # #v**#";
s[17]="#-# -###--# #* #**-#-*#";
s[18]="#** #v*v#h*# # -#v *#-*#";
s[19]="#**#v*v*v#-* v* *# -**#";
s[20]="#**-#-#- # - - # *--**#";
s[21]="#**#*# #h- -v- #- #-*#";
s[22]="#**#h#h#t- *- - # #vh*#";
s[23]="#**-v -####v#-#v# -#+#*#";
s[24]="#t#*# *h* * ## * #-*#";
s[25]="########################";
return 25;
}
return 7;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
srand(time(0));
out(" -寿司猫工作室-");
Sleep(1500);
out(" 迷宫游戏");
out(" ########");
out(" #o# #");
out(" # # ##");
out(" ##### +#");
out(" ########");
Sleep(1175);
out("教程:#是墙");
out("教程:+是终点");
out("教程:-是复位");
out("教程:*是眩晕");
out("教程:v是传送带");
out("教程:t是钥匙");
out("教程:h是门");
out("提示:请转到英文输入法游玩");
out("输入r重开");
out(" w ");
out(" a s d ");
out(" 操控移动 ");
out("输入任意键进入游戏");
c=getch();
for(int k=1;k<=5;k++){
int x=2,y=1; // 调整起始位置,确保在通路
int m=mg(k);
f=0;
t=0;
while(true){
system("cls");
// 输出迷宫
for(int i=1;i<=m;i++){
for(int j=0;j<s[i].size();j++){
if(i==x && j==y){
color(11);
cout<<'o';
}
else if(s[i][j]=='*'){
color(13);
cout<<'*';
}
else if(s[i][j]=='-'){
color(4);
cout<<'-';
}
else if(s[i][j]=='+'){
color(14);
cout<<'+';
}
else if(s[i][j]=='v'){
color(12);
cout<<'v';
}
else{
color(15);
cout<<s[i][j];
}
cout.flush();
}
cout<<endl; // 每行结束换行
}
// 检查是否到达目标
if(s[x][y]=='+'){
Sleep(30);
break;
}
// 读取按键
c=getch();
// 根据按键移动,检查边界和墙壁
if(c=='r'){
x=2;
y=1;
f=0;
t=0;
}
if(c=='w') q=1;
if(c=='a') q=2;
if(c=='s') q=3;
if(c=='d') q=4;
if(f==1) q=q%4+1;
if(q==1 && s[x-1][y]!='#'&&(s[x-1][y]=='h'&&t==1||s[x-1][y]!='h')) x--;
if(q==2 && s[x][y-1]!='#'&&(s[x][y-1]=='h'&&t==1||s[x][y-1]!='h')) y--;
if(q==3 && s[x+1][y]!='#'&&(s[x+1][y]=='h'&&t==1||s[x+1][y]!='h')) x++;
if(q==4 && s[x][y+1]!='#'&&(s[x][y+1]=='h'&&t==1||s[x][y+1]!='h')) y++;
if(s[x][y]=='-'){
x=2;
y=1;
f=0;
}
if(s[x][y]=='t'){
t=1;
}
if(s[x][y]=='v'){
x++;
}
if(s[x][y]=='*'){
f=1;
}
}
}
system("cls");
out("恭喜通关所有关卡!");
c=getch();
out("吗?");
Sleep(1000);
if(c!='='){
int x=2,y=1;
int m=mg(-1);
f=0;
t=0;
while(true){
system("cls");
// 输出迷宫
for(int i=1;i<=m;i++){
for(int j=0;j<s[i].size();j++){
if(i==x && j==y){
color(11);
cout<<'o';
}
else if(s[i][j]=='*'){
color(13);
cout<<'*';
}
else if(s[i][j]=='-'){
color(4);
cout<<'-';
}
else if(s[i][j]=='+'){
color(14);
cout<<'+';
}
else if(s[i][j]=='v'){
color(12);
cout<<'v';
}
else{
color(15);
cout<<s[i][j];
}
cout.flush();
if(rand()%5==0) Sleep(1);
}
Sleep(5);
cout<<endl; // 每行结束换行
}
// 检查是否到达目标
if(s[x][y]=='+'){
Sleep(30);
break;
}
// 读取按键
c=getch();
// 根据按键移动,检查边界和墙壁
if(c=='r'){
x=2;
y=1;
f=0;
t=0;
}
if(c=='w') q=1;
if(c=='a') q=2;
if(c=='s') q=3;
if(c=='d') q=4;
if(f==1) q=q%4+1;
if(q==1 && s[x-1][y]!='#'&&(s[x-1][y]=='h'&&t==1||s[x-1][y]!='h')) x--;
if(q==2 && s[x][y-1]!='#'&&(s[x][y-1]=='h'&&t==1||s[x][y-1]!='h')) y--;
if(q==3 && s[x+1][y]!='#'&&(s[x+1][y]=='h'&&t==1||s[x+1][y]!='h')) x++;
if(q==4 && s[x][y+1]!='#'&&(s[x][y+1]=='h'&&t==1||s[x][y+1]!='h')) y++;
if(s[x][y]=='-'){
x=2;
y=1;
f=0;
}
if(s[x][y]=='t'){
t=1;
}
if(s[x][y]=='v'){
x++;
}
if(s[x][y]=='*'){
f=1;
}
}
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...