如果我在Food类中声明函数void Food::generateRandomPosition(vector<vector<int>>& board),该怎么继续解决问题
时间: 2024-03-19 18:43:21 浏览: 22
如果您在 `Food` 类中声明了 `generateRandomPosition` 函数,那么在 `Snake` 类的构造函数中,您需要传递一个棋盘(即 `board`),使得 `generateRandomPosition` 函数能够在合适的位置生成食物。然后,在 `Snake` 类的 `move` 方法中,您需要将 `board` 传递给 `generateRandomPosition` 函数,以确保在生成食物时不会与蛇身碰撞。
下面是修改后的代码:
```
// Food.h
class Food
{
private:
int food_x, food_y;
public:
void generateRandomPosition(vector<vector<int>>& board); // 修改函数声明
int getfood_x();
int getfood_y();
};
// Food.cpp
void Food::generateRandomPosition(vector<vector<int>>& board) // 修改函数定义
{
// 在 board 上随机生成食物位置
...
}
// Snake.cpp
Snake::Snake(int x, int y)
{
...
snakefood.generateRandomPosition(body); // 将 body 传递给 generateRandomPosition 函数
...
}
void Snake::move()
{
...
if (movedirection == 1)
{
Head_x -= 1;
if (body[Head_x][Head_y] == -2)
{
snakefood.generateRandomPosition(body); // 将 body 传递给 generateRandomPosition 函数
body[snakefood.getfood_x()][snakefood.getfood_y()] = -2;
}
else
{
...
}
}
...
}
```
这样,您就可以通过将棋盘传递给 `generateRandomPosition` 函数,来确保在生成食物时不会与蛇身碰撞。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
添加
修改
删除
手动运行数据更新器 选中 时间 总居民消费CPI 食品类CPI 衣着类CPI 居住类CPI 服务类CPI 交通通信类CPI 教育类CPI 医药类CPI 其他类CPI <c:forEach items="${cpi}" var="i"> <input name="radiobox" type="radio" value=${i.TIMES}/> <c:if test="${i.TIMES==999999}"> 预测本月 </c:if> <c:if test="${i.TIMES!=999999}"> ${i.TIMES} </c:if> ${i.CPI} ${i.FOOD} ${i.CLOTH} ${i.RESIDE} ${i.SERVICE} ${i.TRANS} ${i.EDU} ${i.MEDIC} ${i.OTHER} </c:forEach> 我希望页面在点击修改和删除的时候把单选框的value提交给服务器,我应该怎么改
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)