bool CMfcSnakeDlg::setBean() { srand((unsigned)time(NULL)); bool setB = false; bool safe = true; while (safe) { pos.x = rand() % 24; pos.y = rand() % 50; for (int i = 0; i < my_snake.len; i++) { if (pos.x == my_snake.body[i].x && pos.y == my_snake.body[i].y) { safe = false; break; } } if (safe) { setB = true; safe = false; } else safe = true; } CDC* pdc = GetDlgItem(IDC_game)->GetWindowDC(); CBrush* pOldBrs = pdc->SelectObject(&m_brush[2]); pdc->Rectangle(m_map[pos.x][pos.y]); pdc->SelectObject(&pen1); pdc->Rectangle(m_map[pos.x][pos.y]); pdc->SelectObject(&pOldBrs); pdc->DeleteDC(); return setB; }
时间: 2024-04-02 13:33:52 浏览: 79
这段代码是贪吃蛇游戏中设置豆子的函数,会在游戏运行时不断调用。它首先通过 srand() 函数设置随机数种子,然后在 while 循环中随机生成豆子的坐标,判断是否与贪吃蛇身体重合,如果没有重合则设置豆子并返回 true,否则继续循环直到生成合法的豆子坐标。
在生成合法的豆子坐标后,函数会将豆子绘制在游戏地图上,并返回 true 表示豆子设置成功。
阅读全文