最近花了1.5个小时做了这个游戏
A、D移动
话不多说,上代码:
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
string q="o",db="-----",kk[31]={
"",
" ____________________________________________________________________________________________________",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" | |",
" _____________________________________________________________________________________________________"
};
long long x,y,dx,dy,hb=2,fs=0;
bool f=1,ax=0;
void csh();//初始化
void in();//输入
void out();//输出
void qgs();//球坐标的更新
void pd();//判断结束
int main()
{
csh();
while(f)
{
system("cls");
in();
out();
qgs();
pd();
if(!f)break;
for(long long i=1;i<=3;i++)
{
in();
if(ax)
out();
Sleep(1);
}
}
system("cls");
printf("你得了%d分\n按空格退出",fs);
char t=getch();
while(t!=' ')t=getch();
return 0;
}
void csh()
{
system("mode con cols=101 lines=31");
srand(time(0));
x=3;
y=rand()%100+1;
dx=1;
dy=1;
}
void in()
{
if(GetKeyState('A')<0)
{
if(hb>2)
{
hb-=2;
ax=1;
}
}
else
if(GetKeyState('D')<0)
{
if(hb<99-4)
{
hb+=2;
ax=1;
}
}
else
ax=0;
}
void out()
{
system("cls");
for(long long i=1;i<=30;i++)
{
for(long long j=1;j<=101;j++)
{
if(i==x&&j==y)
{
cout<<q;
}
else
if(i==29&&j==hb)
{
j+=4;
cout<<db;
}
else
{
cout<<kk[i][j];
}
}
cout<<"\n";
}
}
void qgs()
{
if(x==2||(x==28&&(hb==y||y==hb+1||y==hb+2||y==hb+3||y==hb+4)))dx*=-1;
if(y==2||y==100)dy*=-1;
x+=dx;
y+=dy;
if(x==28&&(hb==y||y==hb+1||y==hb+2||y==hb+3||y==hb+4))fs++;
}
void pd()
{
if(x==30)
f=0;
}
游戏截图:



这个游戏运行时会闪烁,请大佬见谅
如果大佬觉得还不错,请点赞关注我,你们的鼓励是我进步和更新的动力
声明:

分享一款自编的控制球在二维空间中移动并避开障碍的游戏代码,通过A/D键操作,实现分数计分。游戏设计简单但包含基本的键盘输入处理和坐标更新逻辑。
4492

被折叠的 条评论
为什么被折叠?



