终于。。。
双人跑酷小游戏3.0。。。
诞生了!!!
本次解决了闪屏问题
感谢【MCYH0206】
并可以无限玩游戏
上代码!!!
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
const long long dts=3+1;
long long wj1x,wj1y,wj2x,wj2y,cs=0,dtbh,wx1,wy1,wx2,wy2;
bool f=1,t1=1,t2=1,sy;
long long csx[dts+1]={
0,
14,
1,
1,
1
};
long long csy[dts+1]={
0,
1,
37,
1,
1
};
string dt[dts+1][21]={
{},
{
"",
" ",
" ",
" == === == ",
" === === < ",
" == < ",
" < ",
" == ==^^^^^^^^^^^== < ",
" ====== < ",
" == === ======= < ",
" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^< ",
" == < ",
" < ",
" == < ",
" ^ $",
" ========> <=== === === == = === = == === ==== ^ ==== === == = == = =====",
" ",
" ",
" ",
" ",
" ",
},
{
"",
" > < = = ",
" > < = = ",
" = > < = = = ",
" ^^^^^ = > === < = == = ",
" <= > = =^ = === = ",
" < = ^^^^^^^^^^^^^^^ < =$ = ",
" < = < = === ",
" ^^^< = = ^^^ =^^^^^^^^== = ",
" < = = ^^^ ============= = ",
" < = === == < = ",
" < ======^^^^^^^^^^^^^ ^^^^ ^^ ================ ",
" < ",
" ^^^^ < == == ",
" < = ",
" < = == ",
" ==== ^^^ = ",
" = == ",
" ========== ======= ",
" ",
" "
},
{
"",
" =",
" =",
" =",
" ====^=====^=====^=====^=====^=====^=====^=====^=====^=====^=====^=====^== =",
" =",
" ===== <> =",
" = <> <> =",
" ============================== =============================^=",
" < ^^^^^^^^^^^^ =",
" < == == =",
" < = = =",
" ^^^ < = = =",
" < = = =",
" < = = =",
" ^^^^< = = =",
" < = = =",
" < = = =",
" = = =",
" ============== ===== $=",
" ="
},
{
"",
" < =",
" < =",
" < =",
" < =",
" < ============================= =",
" < = = = = ===================== =",
" < == == = $= == = = == =",
" < = = = = = = = =",
" < = == ^^^^== = == = ===",
" < = = = ^^^^^= = = === === =",
" < == = =============== = = =",
" < = =^^ = = == =",
" < = =========================== = === =",
" < = = = =",
" < ^ =============================== = =",
" < => === =",
" ==> ===",
" ==================================================================== =",
" =",
" ="
}
};
void csh()
{
f=1,t1=1,t2=1;
cs=0;
return ;
}
void color(int c)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);
return ;
}
void gb()
{
CONSOLE_CURSOR_INFO cursor;
cursor.bVisible=FALSE;
cursor.dwSize=sizeof(cursor);
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorInfo(handle, &cursor);
return ;
}
void ydgb(int x, int y)
{
COORD pos = {x,y};
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
return ;
}
void out();
void in();
void lx();
void js();
void gx();
int main()
{
system("mode con cols=75 lines=20");
srand(time(0));
while(1)
{
csh();
dtbh=rand()%dts+1;
wj1x=wj2x=csx[dtbh];
wj1y=wj2y=csy[dtbh];
color(240);
gb();
system("cls");
out();
while(f)
{
in();
js();
if(cs==1)
lx();
gx();
Sleep(75);
if(cs==1)cs=-1;
cs++;
}
system("cls");
if(!sy)
{
color(9);
system("cls");
cout<<"*赢了!";
cout<<"\n按Enter结束";
char t=getch();
while(t!=13)t=getch();
color(153);
}
else
{
color(12);
system("cls");
cout<<"+赢了!";
cout<<"\n按Enter结束";
char t=getch();
while(t!=13)t=getch();
color(204);
}
system("cls");
}
return 0;
}
void out()
{
for(long long i=1;i<=20;i++)
{
for(long long j=1;j<=75;j++)
{
if(i==wj1x&&j==wj1y)
{
color(9);
cout<<"*";
}
else
if(i==wj2x&&j==wj2y)
{
color(12);
cout<<"+";
}
else
{
if(dt[dtbh][i][j]=='$')
color(10);
else
color(240);
cout<<dt[dtbh][i][j];
}
}
cout<<endl;
}
color(240);
return ;
}
void in()
{
wx1=wj1x,wy1=wj1y;
wx2=wj2x,wy2=wj2y;
if(GetKeyState('A')<0&&(dt[dtbh][wj1x][wj1y-1]==' '||dt[dtbh][wj1x][wj1y-1]=='$')&&wj1y-1>0)
{
wj1y--;
}
if(GetKeyState('D')<0&&(dt[dtbh][wj1x][wj1y+1]==' '||dt[dtbh][wj1x][wj1y+1]=='$')&&wj1y-1<=100)
{
wj1y++;
}
if(GetKeyState('W')<0&&(dt[dtbh][wj1x-1][wj1y]==' '||dt[dtbh][wj1x-1][wj1y]=='$')&&t1)
{
wj1x--;
for(long long i=1;i<=2;i++)
if(dt[dtbh][wj1x-1][wj1y]==' ')wj1x--;
t1=0;
}
if(GetKeyState(37)<0&&(dt[dtbh][wj2x][wj2y-1]==' '||dt[dtbh][wj2x][wj2y-1]=='$')&&wj2y-1>0)
{
wj2y--;
}
if(GetKeyState(39)<0&&(dt[dtbh][wj2x][wj2y+1]==' '||dt[dtbh][wj2x][wj2y+1]=='$')&&wj1y-1<=100)
{
wj2y++;
}
if(GetKeyState(38)<0&&(dt[dtbh][wj2x-1][wj2y]==' '||dt[dtbh][wj2x-1][wj2y]=='$')&&t2)
{
wj2x--;
for(long long i=1;i<=2;i++)
if(dt[dtbh][wj2x-1][wj2y]==' ')wj2x--;
t2=0;
}
return ;
}
void lx()
{
if(dt[dtbh][wj1x+1][wj1y]==' '||dt[dtbh][wj1x+1][wj1y]=='$')wj1x++;
else t1=1;
if(dt[dtbh][wj2x+1][wj2y]==' '||dt[dtbh][wj2x+1][wj2y]=='$')wj2x++;
else t2=1;
return ;
}
void js()
{
if(dt[dtbh][wj1x][wj1y]=='$')
{
f=0;
sy=0;
}
if(dt[dtbh][wj2x][wj2y]=='$')
{
f=0;
sy=1;
}
if(wj1x==20)
{
wj1x=csx[dtbh];wj1y=csy[dtbh];
}
if(wj2x==20)
{
wj2x=csx[dtbh];wj2y=csy[dtbh];
}
if(dt[dtbh][wj1x+1][wj1y]=='^')
{
wj1x=csx[dtbh];wj1y=csy[dtbh];
}
if(dt[dtbh][wj2x+1][wj2y]=='^')
{
wj2x=csx[dtbh];wj2y=csy[dtbh];
}
if(dt[dtbh][wj1x][wj1y+1]=='<')
{
wj1x=csx[dtbh];wj1y=csy[dtbh];
}
if(dt[dtbh][wj2x][wj2y+1]=='<')
{
wj2x=csx[dtbh];wj2y=csy[dtbh];
}
if(dt[dtbh][wj1x][wj1y-1]=='>')
{
wj1x=csx[dtbh];wj1y=csy[dtbh];
}
if(dt[dtbh][wj2x][wj2y-1]=='>')
{
wj2x=csx[dtbh];wj2y=csy[dtbh];
}
return ;
}
void gx()
{
color(240);
ydgb(wy1,wx1-2);
cout<<"\b";
cout<<" ";
ydgb(wy2,wx2-2);
cout<<"\b";
cout<<" ";
color(11);
ydgb(wj1y,wj1x-2);
cout<<"\b";
cout<<"*";
color(12);
ydgb(wj2y,wj2x-2);
cout<<"\b";
cout<<"+";
return ;
}