#include<bits/stdc++.h>
#include<conio.h>
#include<stdio.h>
#include<windows.h>
#include<time.h>
using namespace std;
long long tu[50][105],x,y,jishu,jumph,ge,siwang,ew,life;
int xx,yy,juli;
string po,wq,we,yige,ditudaima;
bool jump,o,chu,z1,zhengfan;
void gotoxy(int x, int y)
{
HANDLE hout;
COORD coord;
coord.X = x;
coord.Y = y;
hout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hout, coord);
}
void hseanshu(){
HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO CursorInfo;
GetConsoleCursorInfo(handle, &CursorInfo);//获取控制台光标信息
CursorInfo.bVisible = false; //隐藏控制台光标
SetConsoleCursorInfo(handle, &CursorInfo);//设置控制台光标状态
//隐藏光标
}
void coutmp(){
tu[xx][yy]=2;
gotoxy(0,0);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
if(xx<=7){
if(yy<=11){
for(int g=15;g>=1;g--){
for(int h=1;h<=23;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
else if(yy>90){
for(int g=15;g>=1;g--){
for(int h=79;h<=101;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),32);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
else {
for(int g=15;g>=1;g--){
for(int h=yy-11;h<=yy+11;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),32);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
}
else if(xx>=34){
if(yy<=11){
for(int g=41;g>=27;g--){
for(int h=1;h<=23;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),32);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
else if(yy>90){
for(int g=41;g>=27;g--){
for(int h=79;h<=101;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),32);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
else {
for(int g=41;g>=27;g--){
for(int h=yy-11;h<=yy+11;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),32);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
}
else if(yy<=11){
for(int g=xx+7;g>=xx-7;g--){
for(int h=1;h<=23;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),32);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
else if(yy>90){
for(int g=xx+7;g>=xx-7;g--){
for(int h=79;h<=101;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),32);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
else {
for(int g=xx+7;g>=xx-7;g--){
for(int h=yy-11;h<=yy+11;h++){
if(tu[g][h]==1){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==2){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),26);
cout << "●";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==3){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==4){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "←";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==5){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),27);
cout << "→";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==6){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),20);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else if(tu[g][h]==11){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),22);
cout << "■";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),17);
}
else{
cout<<" ";
}
}
cout<<"\n";
}
}
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),3);
}
int main()
{
hseanshu();
o=0;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),3);
while(1){
memset(tu,0,sizeof(tu));
gotoxy(0,0);
if(!o)cout<<"欢迎来到跑酷大陆,请输入(1:随机关卡,2:每日一练,3:创造模式,4:打开地图)(末尾加换行):\n";
else {
gotoxy(0,0);
cout<<" \n ";
gotoxy(0,0);
cout<<"菜单界面: 请输入(1:随机关卡,2:每日一练,3:创造模式,4:打开地图)(末尾加换行):\n";
}
while(1){
cin>>wq;
if(wq=="1"||wq=="2"||wq=="3"||wq=="4")break;
gotoxy(0,0);
cout<<" ";
gotoxy(0,0);
cout<<"输入错误:\n";
}
gotoxy(0,0);
cout<<" \n";
cout<<" \n";
cout<<" ";
gotoxy(0,0);
if(wq!="3"){
cout<<"请输入速度(数字越小速度越快)(输入1或2)(末尾加换行):\n";
while(1){
cin>>we;
if(we=="1"||we=="2")break;
gotoxy(0,0);
cout<<" ";
gotoxy(0,0);
cout<<"输入错误:\n";
}
if(we=="1")ew=3;
else if(we=="2")ew=9;
gotoxy(0,0);
cout<<" ";
}
if(wq=="3"){
cout<<"请输入地图方式(1:空白地图,2:载入地图):\n";
while(1){
cin>>we;
if(we=="1"||we=="2")break;
gotoxy(0,0);
cout<<" ";
gotoxy(0,0);
cout<<"输入错误:\n";
}
gotoxy(0,0);
cout<<" ";
if(we=="2"){
gotoxy(0,0);
cout<<" \n";
cout<<" ";
gotoxy(0,0);
cout<<"请输入地图代码:\n";
while(1){
cin>>ditudaima;
bool hedui=1;
int jianqu=ditudaima[0]-48;
if(ditudaima.size()>=3500){
for(int g=1;g<ditudaima.size();g++){
ditudaima[g]-=jianqu;
if(ditudaima[g]<'0'||ditudaima[g]>'9'){
hedui=0;
break;
}
}
}
else hedui=0;
if(hedui){
hseanshu();
gotoxy(0,0);
for(int g=1;g<=2000;g++){
cout<<" ";
}
x=1;
y=0;
for(int g=1;g<ditudaima.size();g++){
y++;
if(y==102){
y=1;
x++;
}
if(ditudaima[g]-48!=2){
tu[x][y]=ditudaima[g]-48;
}
if(ditudaima[g]-48==3){
z1=1;
}
}
break;
}
else {
gotoxy(0,0);
for(int g=1;g<=2000;g++){
cout<<" ";
}
gotoxy(0,0);
cout<<"输入错误:\n" ;
Sleep(1000);
}
}
z1=1;
}
}
if(wq=="4"){
gotoxy(0,0);
cout<<" \n ";
while(1){
gotoxy(0,0);
cout<<"请输入地图代码:\n";
cin>>yige;
bool hedui=1;
int jianqu=yige[0]-48;
if(yige.size()>=3500){
for(int g=1;g<yige.size();g++){
yige[g]-=jianqu;
if(yige[g]<'0'||yige[g]>'9'){
hedui=0;
break;
}
}
}
else hedui=0;
if(hedui){
hseanshu();
gotoxy(0,0);
for(int g=1;g<=2000;g++){
cout<<" ";
}
break;
}
else {
gotoxy(0,0);
for(int g=1;g<=2000;g++){
cout<<" ";
}
gotoxy(0,0);
cout<<"输入错误:\n" ;
Sleep(1000);
}
}
}
if(wq=="1"){
srand(time(0));
ge=1;
while(1){
xx=2;
yy=1;
memset(tu,0,sizeof(tu));
x=1,y=1;
tu[1][1]=1;
while(x<41&&y<101){
int t=rand()%5;
if(x+3-t>=1&&x+3-t<=30){
tu[x+3-t][y+t]=1;
x+=3-t;
y+=t;
}
}
tu[x][101]=3;
siwang=0;
juli=1;
while(1){
hseanshu();
juli=max(juli,yy);
if(xx<=0){
tu[xx][yy]=0;
xx=2,yy=1;
siwang++;
}
else if(tu[xx-1][yy]==3){
ge++;
break;
}
jishu++;
if(jishu==ew){
if(jump){
if(jumph<=2){
if(tu[xx+1][yy]==0){
tu[xx][yy]=0;
xx++;
}
jumph++;
}
else jump=0;
}
else if(tu[xx-1][yy]==0){
tu[xx][yy]=0;
xx--;
}
jishu=0;
}
if(kbhit()){
po=getch();
if(po=="w"){
if(tu[xx-1][yy]==1){
tu[xx][yy]=0;
jump=1;
jumph=0;
}
}
else if(po=="a"){
tu[xx][yy]=0;
if(yy-1>=1&&tu[xx][yy-1]==0)yy--;
}
else if(po=="d"){
tu[xx][yy]=0;
if(yy+1<=101&&tu[xx][yy+1]==0)yy++;
}
else if(po=="s"){
tu[xx][yy]=0;
if(xx-1>=1&&tu[xx-1][yy]==0)xx--;
}
else if(po=="b"){
chu=1;
break;
}
po="";
}
coutmp();
cout<<"关卡:"<<ge<<" "<<"位置:"<<xx<<" "<<yy<<" 死亡数:"<<siwang<<" 按“b”跳出 \n";
}
gotoxy(0,0);
if(chu){
cout<<"正在跳出...... ";
for(int g=1;g<=15;g++){
for(int h=1;h<=46;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
}
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
chu=0;
o=1;
break;
}
cout<<"恭喜通关! ";
for(int g=1;g<=15;g++){
for(int h=1;h<=46;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
}
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
gotoxy(0,0);
cout<<"新地图准备就绪: \n";
for(int g=1;g<=100;g++){
if(kbhit()){
po=getch();
}
}
Sleep(900);
gotoxy(0,0);
cout<<"正在打开: \n";
for(int g=1;g<=1000;g++){
if(kbhit()){
po=getch();
}
}
Sleep(500);
}
}
else if(wq=="2"){
srand(time(0)/86400+28800);
ge=1;
while(1){
xx=2;
yy=1;
memset(tu,0,sizeof(tu));
x=1,y=1;
tu[1][1]=1;
while(x<41&&y<101){
int t=rand()%5;
if(x+3-t>=1&&x+3-t<=30){
tu[x+3-t][y+t]=1;
x+=3-t;
y+=t;
}
}
tu[x][101]=3;
siwang=0;
juli=1;
while(1){
hseanshu();
juli=max(juli,yy);
if(xx<=0){
tu[xx][yy]=0;
xx=2,yy=1;
siwang++;
}
else if(tu[xx-1][yy]==3){
ge++;
break;
}
jishu++;
if(jishu==ew){
if(jump){
if(jumph<=2){
if(tu[xx+1][yy]==0){
tu[xx][yy]=0;
xx++;
}
jumph++;
}
else jump=0;
}
else if(tu[xx-1][yy]==0){
tu[xx][yy]=0;
xx--;
}
jishu=0;
}
if(kbhit()){
po=getch();
if(po=="w"){
if(tu[xx-1][yy]==1){
tu[xx][yy]=0;
jump=1;
jumph=0;
}
}
else if(po=="a"){
tu[xx][yy]=0;
if(yy-1>=1&&tu[xx][yy-1]==0)yy--;
}
else if(po=="d"){
tu[xx][yy]=0;
if(yy+1<=101&&tu[xx][yy+1]==0)yy++;
}
else if(po=="s"){
tu[xx][yy]=0;
if(xx-1>=1&&tu[xx-1][yy]==0)xx--;
}
else if(po=="b"){
chu=1;
break;
}
po="";
}
coutmp();
cout<<"关卡:"<<ge<<" "<<"位置:"<<xx<<" "<<yy<<" 死亡数:"<<siwang<<" 按“b”跳出 \n";
}
gotoxy(0,0);
if(chu){
cout<<"正在跳出...... ";
for(int g=1;g<=15;g++){
for(int h=1;h<=46;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
}
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
chu=0;
o=1;
break;
}
cout<<"恭喜通关! ";
for(int g=1;g<=15;g++){
for(int h=1;h<=46;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
}
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
gotoxy(0,0);
if(ge>=11){
cout<<"今日挑战(十关)已全部通关,请明天再试(等待5秒后返回菜单)!";
o=1;
for(int g=1;g<=100;g++){
if(kbhit()){
po=getch();
}
}
Sleep(5000);
break;
}
else{
cout<<"新地图准备就绪: \n";
for(int g=1;g<=100;g++){
if(kbhit()){
po=getch();
}
}
Sleep(900);
gotoxy(0,0);
cout<<"正在打开: \n";
for(int g=1;g<=1000;g++){
if(kbhit()){
po=getch();
}
}
Sleep(500);
}
}
}
else if(wq=="3"){
if(we=="1")memset(tu,0,sizeof(tu));
gotoxy(0,0);
cout<<" ";
gotoxy(0,0);
cout<<"正在加载地图...\n";
Sleep(1000);
gotoxy(0,0);
cout<<"正在打开... \n";
Sleep(500);
gotoxy(0,0);
cout<<"“1”放普通方块,“2”放终点,“3”左箭头,“4”右箭头,“5”放岩浆,“c”清除\n";
Sleep(2000);
xx=2;
yy=1;
x=1,y=1;
tu[1][1]=1;
gotoxy(0,0);
cout<<" \n";
gotoxy(0,0);
while(1){
hseanshu();
if(kbhit()){
po=getch();
if(po=="w"){
if((tu[xx+1][yy]==0||tu[xx+1][yy]==11)&&xx+1<=41){
tu[xx][yy]=0;
xx++;
tu[xx][yy]=1;
}
else if(tu[xx+1][yy]!=0){
int daili=xx;
daili++;
while(tu[daili][yy]!=0&&tu[daili][yy]!=11){
if(daili+1>43){
daili=xx;
break;
}
else daili++;
}
tu[xx][yy]=0;
xx=daili;
}
}
else if(po=="a"){
tu[xx][yy]=0;
if(yy-1>=1&&(tu[xx][yy-1]==0||tu[xx][yy-1]==11))yy--;
else if(tu[xx][yy-1]!=0){
int daili=yy;
daili--;
while(tu[xx][daili]!=0&&tu[yy][daili]!=11){
if(daili-1<1){
daili=yy;
break;
}
else daili--;
}
tu[xx][yy]=0;
yy=daili;
}
}
else if(po=="d"){
tu[xx][yy]=0;
if(yy+1<=101&&(tu[xx][yy+1]==0||tu[xx][yy+1]==11)){
yy++;
}
else if(tu[xx][yy+1]!=0){
int daili=yy;
daili++;
while(tu[xx][daili]!=0&&tu[yy][daili]!=11){
if(daili+1>101){
daili=yy;
break;
}
else daili++;
}
tu[xx][yy]=0;
yy=daili;
}
}
else if(po=="s"){
tu[xx][yy]=0;
if(xx-1>=1&&tu[xx-1][yy]==0)xx--;
else if(tu[xx-1][yy]!=0){
int daili=xx;
daili--;
while(tu[daili][yy]!=0&&tu[daili][yy]!=11){
if(daili-1<=0){
daili=xx;
break;
}
else daili--;
}
tu[xx][yy]=0;
xx=daili;
}
}
else if(po=="p"){//保存
gotoxy(0,0);
for(int g=1;g<=20;g++){
cout<<" ";
}
gotoxy(0,0);
if(z1){
srand(time(0));
int qu=rand()%4;
cout<<qu;
for(int g=1;g<=41;g++){
for(int h=1;h<=101;h++){
cout<<tu[g][h]+qu;
}
}
while(1);
}
else {
gotoxy(0,0);
for(int g=1;g<=15;g++){
for(int h=1;h<=46;h++){
cout<<" ";
}
cout<<"\n";
}
for(int h=1;h<=60;h++){
cout<<" ";
}
gotoxy(0,0);
cout<<"未设置终点哦\n";
Sleep(1000);
}
}
else if(po=="1"){
if(xx-1>=1){
if(xx-1!=1||yy!=1){
if(tu[xx-1][yy]==3){
z1=0;
}
tu[xx-1][yy]=1;
}
}
}
else if(po=="c"){
if(xx-1>=1){
if(xx-1!=1||yy!=1){
if(tu[xx-1][yy]==3){
z1=0;
}
tu[xx-1][yy]=0;
}
}
}
else if(po=="2"){
if(xx-1>=1){
if(xx-1!=1||yy!=1){
z1=1;
tu[xx-1][yy]=3;
}
}
}
else if(po=="3"){
if(xx-1>=1){
if(xx-1!=1||yy!=1){
if(tu[xx-1][yy]==3){
z1=0;
}
tu[xx-1][yy]=4;
}
}
}
else if(po=="4"){
if(xx-1>=1){
if(xx-1!=1||yy!=1){
if(tu[xx-1][yy]==3){
z1=0;
}
tu[xx-1][yy]=5;
}
}
}
else if(po=="5"){
if(xx-1>=1){
if(xx-1!=1||yy!=1){
if(tu[xx-1][yy]==3){
z1=0;
}
tu[xx-1][yy]=6;
}
}
}
po="";
}
coutmp();
cout<<"位置:"<<xx<<" "<<yy<<" 按“p”保存 按“h”帮助 \n";
}
}
else if(wq=="4"){
life=10;
x=1;
y=0;
for(int g=1;g<yige.size();g++){
y++;
if(y==102){
y=1;
x++;
}
if(yige[g]-48!=2){
tu[x][y]=yige[g]-48;
}
}
xx=2;
yy=1;
while(1){
hseanshu();
juli=max(juli,yy);
if(xx<=0){
tu[xx][yy]=0;
xx=2,yy=1;
siwang++;
}
else if(tu[xx-1][yy]==3){
ge++;
break;
}
jishu++;
if(jishu==ew){
if(jump){
if(jumph<=2){
if(tu[xx+1][yy]==0){
tu[xx][yy]=0;
xx++;
}
else if(tu[xx+1][yy]==4||tu[xx+1][yy]==5){
tu[xx][yy]=0;
xx+=2;
}
jumph++;
}
else jump=0;
}
else if(tu[xx-1][yy]==0){
tu[xx][yy]=0;
xx--;
}
else if(tu[xx-1][yy]==4){
if(tu[xx][yy-1]==0){
tu[xx][yy]=0;
yy--;
tu[xx][yy]=2;
}
}
else if(tu[xx-1][yy]==5){
if(tu[xx][yy+1]==0){
tu[xx][yy]=0;
yy++;
tu[xx][yy]=2;
}
}
else if(tu[xx-1][yy]==6){
life--;
if(life==0){
life=5;
tu[xx][yy]=0;
xx=2;
yy=1;
}
}
jishu=0;
}
if(kbhit()){
po=getch();
if(po=="w"){
if(tu[xx-1][yy]==1||tu[xx-1][yy]==4||tu[xx-1][yy]==5||tu[xx-1][yy]==6){
tu[xx][yy]=0;
jump=1;
jumph=0;
}
}
else if(po=="a"){
tu[xx][yy]=0;
if(yy-1>=1&&tu[xx][yy-1]==0)yy--;
}
else if(po=="d"){
tu[xx][yy]=0;
if(yy+1<=101&&tu[xx][yy+1]==0)yy++;
}
else if(po=="s"){
tu[xx][yy]=0;
if(xx-1>=1&&tu[xx-1][yy]==0)xx--;
}
else if(po=="b"){
chu=1;
break;
}
po="";
}
coutmp();
cout<<"关卡:"<<ge<<" "<<"位置:"<<xx<<" "<<yy<<" 死亡数:"<<siwang<<" 按“b”跳出 \n";
cout<<"生命:";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),102);
for(int g=1;g<=10;g++)cout<<" ";
gotoxy(6,16);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),68);
for(int g=1;g<=life;g++)cout<<" ";
}
gotoxy(0,0);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),3);
if(chu){
cout<<"正在跳出...... ";
for(int g=1;g<=15;g++){
for(int h=1;h<=46;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
}
for(int h=1;h<=50;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
for(int h=1;h<=50;h++){
cout<<" ";
Sleep(7);
}
chu=0;
o=1;
}
else{
cout<<"恭喜通关,快去告诉关卡的作者吧(3秒钟后关闭)! \n";
for(int g=1;g<=15;g++){
for(int h=1;h<=46;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
}
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
cout<<"\n";
for(int h=1;h<=60;h++){
cout<<" ";
Sleep(7);
}
}
}
}
}
关于一个母亲节的代码。
最新推荐文章于 2024-05-12 14:03:35 发布