之前学习C语言时为了提高学习兴趣,根据网上的迷宫游戏改编而成的,具体改编的内容有每关卡间都加入的关卡提示页面(包括关卡的提示,通关的搞笑提示),同时我对没关的地图都进行了大改。地图更加多元。
大家可以根据我注释所对应的功能进行修改,感受修改项目的快乐。
//2023-1-08 上午2小时,晚上9点多到凌晨2点!
//2023-1-09 上午11点课后到下午两点半,没吃午饭------谨记艰辛,加油少年 !
//■■■■■■■■■
#include <cstdio>
#include <conio.h>
#include <Windows.h>
#include <stdio.h>
char a[50][50]={"■0 ■■■■■■■■■■■■■■■■■",
"## #■$$ ■■■■ ■■",
"■ ■■■ & ■ @@ ■&& ■",
" # ■■■ # ■ # * ■■ *■ ■",
"■ ■■ ■■ # ^ ■ ■",
"## #■ #■■■■# ■■ ■",
"#^ ■ ■ ■ # ■■■ # ^ 终点",
"■ ^ #■ ■■ %% ^^ ",
"■■ ■##■■■■■■■## ■ #",};
char b[50][50]={" ",
"0 #######^^####### #^#",
" 嘿嘿 ^ 666 #",
"# ## ## # #### ### #",
"# #^ # ## ##^ #",
" # #^# # # ## # #",
" # ### ## # #^* 0 % #",
" ### # # #",
"## ^# ## % ^#^ ######",
"######## # # 终点",
"##########################",};
char c[100][100]={"#######################",
"#0 ### ### #####",
"# # # # # #####",
"# # # # ######### #####",
"# ##### ### ####",
"# # 卡 ##### #####",
"# # # ### ####### ####",
"# ## # ## #######",
"# # ## ## ###########",
"# # ### # #### # # 终点",
"### ##### # #####",
"#######################",};
char d[100][100]={"#####################################################",
"## ############################################ #",
"## # ## # # # # # # # # # ### # #",
"## # # # # # # # # # # # # ## # #",
"# # # ####################################### # # #",
"# ## # 终点 # # # # # # # ## # # #",
"# # # ( )## # # # # # # # # # # #",
"## # # ##################################### # ## # #",
"# # # # # # # # # # # # # # # #",
"# ## # # # # # # # # # # # # # # #",
"# # ######################################### # # #",
"## # # # # # # # # # # # # ## # #",
"# # # # # # # # # # # # ## # #",
"# ############################################### # #",
"# # # # # # # # # # # # # # #",
"### # # # # # # # # # # # #0#",
"#####################################################",};
/*函数实现
void gotoxy(int x,int y){
COORD c;
c.X=x;
c.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
int color(int c){
//SetConsoleTextAttribute是API设置控制台窗口字体颜色和背景色的函数
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), c); //更改文字颜色
return 0;
} */
//没有此段代码会有光标闪动,可以把以下代码注销看一下光标闪动的效果
//定义隐藏光标函数
void Hide()
{
CONSOLE_CURSOR_INFO cursor;
cursor.bVisible = FALSE;
cursor.dwSize = sizeof(cursor);
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle, &cursor);
}
//设置光标到初始位置
void Set()
{
HANDLE hOut;
COORD pos={0,0};
hOut=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut,pos);
}
//欢迎界面
void Welcome()
{
printf("\n\n 走迷宫");
printf("\n\n 第一关");
printf("\n\n 提示;坐标(18,-7)");
printf("\n\n 请按任意键开始");
getch();
system("cls");
}
void gametwo() //欢迎界面
{
system("cls");
printf("\n\n 第二关");
printf("\n\n 准备好了吗,眼见不一定为实!");
printf("\n\n 请按任意键开始");
getch();
system("cls");
}
void gamethree()
{
system("cls");
printf("\n\n 看不见你们玩,我都想笑");
Sleep(1500);
printf("\n\n 第三关");
printf("\n\n 请按任意键开始");
getch();
system("cls");
}
void gamefour()
{
system("cls");
printf("\n\n 第四关");
printf("\n\n 这关真的很简单");
printf("\n\n 请按任意键开始");
getch();
system("cls");
}
void egg()
{
system("cls");
printf("\n\n you egg");
printf("\n\n 请按任意键开始");
getch();
system("cls");
}
int main()
{
Hide();
Welcome();
int x=0,y=2;
char ch;
for(int i=0;i<=9;i++)
puts(a[i]);
while(1)
{
ch=getch();
if(ch=='s') //下
{
if(a[x+1][y]==' ')
{
a[x][y]=' ';
x++;
a[x][y]='0';
}
}
else if(ch=='w') //上
{
if(a[x-1][y]==' ')
{
a[x][y]=' ';
x--;
a[x][y]='0';
}
}
else if(ch=='a') //左
{
if(a[x][y-1]==' ')
{
a[x][y]=' ';
y--;
a[x][y]='0';
}
}
else if(ch=='d') //右
{
if(a[x][y+1]==' ')
{
a[x][y]=' ';
y++;
a[x][y]='0';
}
}
Set();
for(int i=0;i<=9;i++)
puts(a[i]);
if(x==7 && y==18)
break;
}
printf("\n\n you can carry me !");
Sleep(500);
printf("\n\n 今天的阳光甚是喧嚣!");
Sleep(1500);
gametwo();
for(int i=0;i<=10;i++)
puts(b[i]);
x=4;y=7;
while(500)
{
ch=getch();
if(ch=='s') //下
{
if(b[x+1][y]==' ')
{
b[x][y]=' ';
x++;
b[x][y]='^';
}
}
else if(ch=='w') //上
{
if(b[x-1][y]==' ')
{
b[x][y]=' ';
x--;
b[x][y]='^';
}
}
else if(ch=='a') //左
{
if(b[x][y-1]==' ')
{
b[x][y]=' ';
y--;
b[x][y]='^';
}
}
else if(ch=='d') //右
{
if(b[x][y+1]==' ')
{
b[x][y]=' ';
y++;
b[x][y]='6';
}
}
Set();
for(int i=0;i<=10;i++)
puts(b[i]);
if(x==9 && y==21)
break;
}
printf("\n\n 不愧是你!");
Sleep(500);
printf("\n\n 给爷整笑了!");
Sleep(1500);
printf("\n\n 这个符号是^");
Sleep(2000);
gamethree();
for(int i=0;i<=11;i++)
puts(c[i]);
x=1;y=1;
while(1)
{
ch=getch();
if(ch=='s') //下
{
if(c[x+1][y]==' ')
{
c[x][y]=' ';
x++;
c[x][y]='*';
}
}
else if(ch=='w') //上
{
if(c[x-1][y]==' ')
{
c[x][y]=' ';
x--;
c[x][y]=':';
}
}
else if(ch=='a') //左
{
if(c[x][y-1]==' ')
{
c[x][y]=' ';
y--;
c[x][y]='_';
}
}
else if(ch=='d') //右
{
if(c[x][y+1]==' ')
{
c[x][y]=' ';
y++;
c[x][y]='.';
}
}
Set();
for(int i=0;i<=11;i++)
puts(c[i]);
if(x==9 && y==22)
break;
}
printf("我宇智波斑愿称,“你是真的闲!”");
Sleep(1500);
gamefour();
for(int i=0;i<=17;i++)
puts(d[i]);
x=15;y=51;
while(1)
{
ch=getch();
if(ch=='s') //下
{
if(d[x+1][y]==' ')
{
d[x][y]=' ';
x++;
d[x][y]='0';
}
}
else if(ch=='w') //上
{
if(d[x-1][y]==' ')
{
d[x][y]=' ';
x--;
d[x][y]='0';
}
}
else if(ch=='a') //左
{
if(d[x][y-1]==' ')
{
d[x][y]=' ';
y--;
d[x][y]='0';
}
}
else if(ch=='d') //右
{
if(d[x][y+1]==' ')
{
d[x][y]=' ';
y++;
d[x][y]='0';
}
}
Set();
for(int i=0;i<=17;i++)
puts(d[i]);
if(x==6 && y==8)
break;
}
printf("\n\n 学编程是真的 掉头发 !");
Sleep(1000);
printf("\n\n 你这么努力,怎么会没有彩蛋!");
Sleep(2500);
egg();
double x1,y1,a1;
for(y1=1.5;y1>-1.5;y1-=0.1)
{
for(x1=-1.5;x1<1.5;x1+=0.05)
{
a1=x1*x1+y1*y1-1;
putchar(a1*a1*a1-x1*x1*y1*y1*y1<=0.0?'*':' ');
}
system("color 0c");
putchar('\n');
}
printf("爽够了没有,一起起来学!");
Sleep(3000);
return 0;
}