用户:Aucun查看:17 回复:22 评论:17 创建时间:2022-05-09T10:03:00
我们的头文件一定要有iostream和cstdio两个头文件,不然会报错哦!
今天我们来设置一个星号可以在一个井号方框里上下左右移动的简单游戏
1:绘制游戏地图(*为游戏角色),首先我们要定义一个char型的二维数组,如下:
char a[100][100]={
"######",
"#* #",
"# #",
"######",
};
接着,我们要把它打出来,那么有些人肯定说用两个for循环,再cout<<a[i][j]对不对?,but,我们有一个函数:puts,它的头文件是cstdio,它的意思就是:打完一行换一行
for(int i=0;i<=10;i++)
puts(a[i]);
上打出地图的代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
char a[100][100]={
"######",
"#* #",
"# #",
"######",
};
for(int i=0;i<=10;i++)
puts(a[i]);
移动角色,这下有人说一定要用什么高级的函数了吧?不!我们一点也不需要这些!
我们移动角色的原理:每输出一个移动键就重绘一下画面,是不是听起来简单多了?那么,就开始欢乐的敲代码时间吧!
首先,我们定义一个记录角色坐标的横坐标x,纵坐标y
int x=1,y=1;
我们要定义一个char变量,然后电脑会判断你按的是什么键,然后绘出什么样的图,在这里,我们w上,s下,a左,d右,但是,如何让框上不显示并且不按回车你打入的按键呢?这个时候我们就有需要一个简单函数——getch了
变量名=_getch();
有一个问题来了:怎么实现移动?
很简单,我上一段左移代码,你就基本懂了!
if(ch=='a'){
if(a[x][y-1]!='#'){
a[x][y]=' ';
y--;
a[x][y]='*';
}
}
我们只要调用system,再打个括号,输入特定的代码,即可达到清除之前画面的效果,还要记住,他有一个头文件:windows.h,看代码:
system("cls");
再用之前的方法绘出画面
for(int i=0;i<=10;i++)
puts(a[i]);
先把目前的代码放出来
#include <iostream>
#include <cstdio>
#include <conio.h>
#include <windows.h>
using namespace std;
int main(){
char a[100][100]={
"######",
"#* #",
"# #",
"######",
};
for(int i=0;i<=10;i++)
puts(a[i]);
char ch;
int x=1,y=1;
ch=_getch();
if(ch=='a'){
if(a[x][y-1]!='#'){
a[x][y]=' ';
y--;
a[x][y]='*';
}
}
if(ch=='s'){
if(a[x+1][y]!='#'){
a[x][y]=' ';
x++;
a[x][y]='*';
}
}
if(ch=='d'){
if(a[x][y+1]!='#'){
a[x][y]=' ';
y++;
a[x][y]='*';
}
}
if(ch=='w'){
if(a[x-1][y]!='#'){
a[x][y]=' ';
x--;
a[x][y]='*';
}
}
system("cls");
for(int i=0;i<=10;i++)
puts(a[i]);
}
运行后,我们发现之能移动一次就停了,所以要加上喵循环:while(1)
然后,你可以在代码前面再打一个system(“title 移动小游戏”);
会有惊喜哦!
最后,打上retrun 0;小游戏就完成了!(p≧w≦q)
最后,放上全代码:
#include <iostream>
#include <cstdio>
#include <conio.h>
#include <windows.h>
using namespace std;
int main(){
system("title 移动小游戏");
char a[100][100]={
"######",
"#* #",
"# #",
"######",
};
for(int i=0;i<=10;i++)
puts(a[i]);
char ch;
int x=1,y=1;
while(1){
ch=_getch();
if(ch=='a'){
if(a[x][y-1]!='#'){
a[x][y]=' ';
y--;
a[x][y]='*';
}
}
if(ch=='s'){
if(a[x+1][y]!='#'){
a[x][y]=' ';
x++;
a[x][y]='*';
}
}
if(ch=='d'){
if(a[x][y+1]!='#'){
a[x][y]=' ';
y++;
a[x][y]='*';
}
}
if(ch=='w'){
if(a[x-1][y]!='#'){
a[x][y]=' ';
x--;
a[x][y]='*';
}
}
system("cls");
for(int i=0;i<=10;i++)
puts(a[i]);
}
return 0;
}
是不是觉得编游戏没那么难了?希望对你有用哦
不错imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E5%8A%A0%E6%B2%B9.gif"alt="emotion_编程猫_加油"
点赞0
评论
应该可以上首页imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E7%82%B9%E8%B5%9E.gif"alt="emotion_编程猫_点赞"
点赞0
评论
顶
要顶
必须顶
不得不顶
用尽全力顶
再加上千斤顶
总之把它顶到顶
接着使出葵花宝顶
就算顶到史前也要顶
老子看了会用道德经顶
孔子亲自拜你为师天天顶
秦始皇站在阿房宫上使劲顶
汉高祖挥师杀向东罗马为你顶
吕布抛弃了貂禅而选择了帮你顶
张三丰见了后用太极拳九式全力顶
左冷禅召开武林盟主大会商讨如何顶
西门吹雪从此学会了最强一招剑神一顶
龙剑飞的儒来神掌最后一式改为万佛朝顶
陆小凤从此再也不管闲事了而专门来为你顶
四大名捕四面出击看天下还有没有人敢不在顶
顶到阎罗王说我制造噪音我刁根烟看看他继续顶
顶到火山喷发太平洋海啸我还要继续往喵里顶
顶到益阳地震山崩地裂地下水泛滥我还要顶
顶到地下水喷发造成洪灾损失惨重我也顶
要是你觉得敢兴趣你也可以过来一起顶
要是你看我不爽我没办法还要继续顶
要是 C T敢过来阻止我就更加要顶
要是别人见了骂我傻我还是要顶
要是踩到我脚喵我也继续顶
要是地面凹了我不管继续顶
要是天真塌下来了继续顶
就算天塌下来我都要顶
就算鸡店倒闭也要顶
就算鞋子烂也要顶
我用尽全力去顶
我非常用力顶
我很用力顶
我用力顶
我再顶
顶顶
顶
点赞0
评论