准备:c/c++基础
code::blocks
第一次尝试:
自制地图:
将地图在控制台显示出来并控制中心位置的图案移动
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
void start_map(int a[7][7]);//将数组对应的地图显示出来
int *man_move(int *p,int a[7][7]);
int main()
{
int a[7][7]= {0};
a[1][3]=a[3][1]=a[5][3]=a[3][5]=3;
a[2][3]=a[3][2]=a[3][4]=a[4][3]=2;
a[3][3]=1;
int *p;//指向操作对象
p=&a[3][3];
while(1)
{
start_map(a);
p=man_move(p,a);
system("cls");
}
system("pause");
return 0;
}
void start_map(int a[7][7]) //将数组对应的地图显示出来
{
for(int i=0; i<7; i++)
{
for(int j=0; j<7; j++)
{
switch(a[i][j])
{
case 3:
cout <<"□";
break;//箱子要到达的地方
case 2:
cout<<"▼";
break;//箱子
case 1:
cout<<"卍" ;
break;//操作对象
default:
cout<<"■";//墙壁
}
}
cout<< endl;
}
}
int *man_move(int *p,int a[7][7])
{
char input_move;
input_move=getch();//输入移动方向
switch(input_move)
{
case 'w':
{
} ;
break;
case 's':
cout << 1 ;
break;
case 'a':
cout << 1 ;
break;
case 'd':
cout << 1 ;
break;
}
return p;
}
遇到的第一个问题是移动输入:
采取“cin”需要按回车,于是采用了“getch()”函数。关于getch()的具体情况可以去看看"C++之getch(),getche(),getchar()的区别"
第二次尝试:
在不考虑bug的情况下写出可执行的代码
#include <iostream>
#include <windows.h>
#include <conio.h>
//#include <stdio.h>
using namespace std;
void start_map(int a[7][7]);//将数组对应的地图显示出来
int *man_move(int *p,int a[7][7]);
int main()
{
int a[7][7]= {0};
a[1][3]=a[3][1]=a[5][3]=a[3][5]=3;
a[2][3]=a[3][2]=a[3][4]=a[4][3]=2;
a[3][3]=1;
int *p=&a[3][3];//指向操作对象
p=&a[3][3];
whi