沿二维网格移动值
Moving a value along a 2d grid
我正在尝试编写一个应用程序,用户在其中输入一个整数
- 1 = 上涨,
- 2 = 向下
- 3 = 左
- 4 = 正确并且
- x :沿 3x3 网格移动。
我不确定我做错了什么,所以任何帮助将不胜感激。
#include "stdafx.h"
#include <iostream>
using namespace std;
char player = 'x';
char grid[3][3] = {{ player, '.' ,'.'},{'.', '.', '.' },{'.', '.', '.' } };
void Draw() {
for (int row = 0; row <= 2; row++) {
for (int col = 0; col <= 2; col++) {
cout << grid[row][col];
}
cout << endl;
}
}
int main() {
int posX = 0;
int posY = 0;
int in;
Draw();
while (1) {
cin >> in;
if (in == 1) {
grid[posY][posX] = '.';
posY = posY - 1;
grid[posY][posX] = player;
}
else if (in == 2) {
grid[posY][posX] = '.';
posY = posY + 1;
grid[posY][posX] = player;
}
else if (in == 3) {
grid[posY][posX] = '.';
posX = posX - 1;
grid[posY][posX] = player;
}
else if (in == 4) {
grid[posY][posX] = '.';
posX = posX + 1;
grid[posY][posX] = player;
}
else {
grid[posY][posX] = player;
}
system("cls");
Draw();
}
cin.get();
return 0;
}
我已经编译过了,一切正常....但是你必须检查玩家是否在网格的最大一侧,然后如果玩家想移动你必须阻止他,当然是因为墙; >
示例:
while (1)
{
cin >> in;
if (in == 1)
{
if(posY>0) // HERE
{
grid[posY][posX] = '.';
posY = posY - 1;
grid[posY][posX] = player;
}
}
...
}
我正在尝试编写一个应用程序,用户在其中输入一个整数
- 1 = 上涨,
- 2 = 向下
- 3 = 左
- 4 = 正确并且
- x :沿 3x3 网格移动。
我不确定我做错了什么,所以任何帮助将不胜感激。
#include "stdafx.h"
#include <iostream>
using namespace std;
char player = 'x';
char grid[3][3] = {{ player, '.' ,'.'},{'.', '.', '.' },{'.', '.', '.' } };
void Draw() {
for (int row = 0; row <= 2; row++) {
for (int col = 0; col <= 2; col++) {
cout << grid[row][col];
}
cout << endl;
}
}
int main() {
int posX = 0;
int posY = 0;
int in;
Draw();
while (1) {
cin >> in;
if (in == 1) {
grid[posY][posX] = '.';
posY = posY - 1;
grid[posY][posX] = player;
}
else if (in == 2) {
grid[posY][posX] = '.';
posY = posY + 1;
grid[posY][posX] = player;
}
else if (in == 3) {
grid[posY][posX] = '.';
posX = posX - 1;
grid[posY][posX] = player;
}
else if (in == 4) {
grid[posY][posX] = '.';
posX = posX + 1;
grid[posY][posX] = player;
}
else {
grid[posY][posX] = player;
}
system("cls");
Draw();
}
cin.get();
return 0;
}
我已经编译过了,一切正常....但是你必须检查玩家是否在网格的最大一侧,然后如果玩家想移动你必须阻止他,当然是因为墙; >
示例:
while (1)
{
cin >> in;
if (in == 1)
{
if(posY>0) // HERE
{
grid[posY][posX] = '.';
posY = posY - 1;
grid[posY][posX] = player;
}
}
...
}