C ++编程生物游戏

时间:2015-03-05 09:30:40

标签: c++

我正在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;

}

1 个答案:

答案 0 :(得分:0)

最小的一个是:从你当前的生物位置计算偏移3(左上角=&gt; currentx-3,currenty-3,右下角是currentx + 3,currenty + 3.需要一些索引检查;然后扫描存在的食物的位置列表。