我正在c++
创建一个程序,更具体地说是一个游戏,我有一个生物类和一个 food 类。
使用随机类和控制台类将它们随机放置在30x30 2d网格中。这些生物从5条生命开始。
这就是我被卡住的地方......如果食物不在生物的3个空间内,生物的生命就会减少,换句话说就是它远离它吃,如果它不是我的话就会增加有生物和食物在屏幕上随机生成,但不知道代码说“如果食物在3个空间内增加,否则减少”
有人可以帮忙吗?
这是代码
#include "creature.h"
#include "console.h"
#include "Food.h"
#include "Random.h"
#include <iostream>
#include <string>
#include <windows.h>
using namespace std;
int main()
{
const int BOARD = 30;
int Creat [];
int FOOD=10;
int CreatureLife=5;
RandomNumber rand;
rand.initialiseSeed();
Console board;
board.gotoXY(00,40);
cout << "How many Creatures do you want to play with?" << endl;
cin >> Creat;
for (int i = 0; i < Creat; i++)
{
Creature();
board.setColour(board.WHITE, board.BLUE);
Creature creatp;
creatp.setpos(BOARD);
board.gotoXY(creatp.getX(), creatp.getY());
cout << i;
int creatX = creatp.getX();
int creatY = creatp.getY();
board.gotoXY(40, 10);
Creature creatE;
creatE.energyDisplay();
cout << "Creature " << Creat << " has " << CreatureLife << " Energy " << endl;
}
for (int i = 0; i < FOOD; i++)
{
board.setColour(board.BLACK, board.YELLOW);
Food foodp;
foodp.setpos(BOARD);
board.gotoXY(foodp.getX(), foodp.getY());
cout << 'F';
int foodX = foodp.getX();
int foodY = foodp.getY();
}
board.gotoXY(00, 32);
system("pause");
return 0;
}
答案 0 :(得分:0)
最小的一个是:从你当前的生物位置计算偏移3(左上角=&gt; currentx-3,currenty-3,右下角是currentx + 3,currenty + 3.需要一些索引检查;然后扫描存在的食物的位置列表。