【接箱子】新手一枚,做了一个小小游戏,dalao勿喷
========================================================
注:【接箱子2.0】已更新
━━━━━━━━━━
这是个接箱子的小游戏
二维数组用不好,弄了个一维数组的野路子【滑稽】
真的只是萌新作品,不喜勿pen
思路啥的在代码注释里,有更好的想法找我呦
千万不要超出移动范围(一维数组的弊端)
#include<iostream>
#include<ctime>
#include<conio.h>//for getch();键盘直接输入
#include<windows.h>//for Sleep(a);等待a 个千分之一秒
// for system("cls");清屏
using namespace std;
int main()
{
srand(time(0));//种子随时间生成
int zbrx=4; //定义人的坐标(只有横坐标)
int fen=0;//定义分数
int fx=4,fy=0;//定义方块XY坐标
int map[100]={1,0,0,0,0,0,0,0,1,2,//一维数组地图创建,
1,0,0,0,0,0,0,0,1,2,//0 为 空;1 为 墙;2 为 \n(换行);
1,0,0,0,0,0,0,0,1,2,
1,0,0,0,0,0,0,0,1,2,
1,0,0,0,0,0,0,0,1,2,
1,0,0,0,0,0,0,0,1,2,
1,0,0,0,0,0,0,0,1,2,
1,0,0,0,0,0,0,0,1,2,
1,0,0,0,0,0,0,0,1,2,
5,5,5,5,5,5,5,5,5,2};
//初始化完毕
cout<<"接箱子小游戏\n按空格键开始\n\n请先切换至\n英文输入法";
for(long long c=0;c<=9999999999;c++)
{
int fkk=(fy*10)+fx; //二维坐标转一维坐标
if(getch()=='a')//左移判定
zbrx--;
int ree=90+zbrx;
map[ree]=3;
map[ree+1]=5;
if(getch()=='d')//右移判定
zbrx++;
ree=90+zbrx;
map[ree]=3;
map[ree-1]=5;
int sj=rand()%7+1;//生成1~7随机数用于箱子坐标
if(fy==9)//失分判定
{
fen--;
fy=0;//重置箱子坐标
fx=sj;//
}
if(fkk==ree)//得分判定
fen+=2;
fy++;
map[fkk]=4;//箱子下坠显示
map[fkk-10]=0;//同上***↑***
system("cls");//日常清屏
cout<<"接箱子\n";
for(int cc=0;cc<=100;cc++)//利用for循环打印图案
{
char out;
int pan=map[cc];
switch(pan)//pan定打印图案类型
{
case 0: out=' ';break;//0显示为 空
case 1: out='|';break;// 1 显示为 |
case 2: out='\n';break;//。。。
case 3: out='@';break;//
case 4: out='#';break;//
case 5: out='-';break;//别找啦,没有出界判定
}
cout<<out;//输出打印图案 ‘out’
}
cout<<"你的分数:"<<fen<<"\n操作方法:\n“A”为左移\n“D”为右移\n按空格可使箱子掉落"<<endl;
}
return 0;
}
具体运行是啥样,代码拿走看看吧!