Food on snake bug fixed
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
nmpython
|
||||
nmpython.exe
|
||||
.vscode
|
||||
2
Makefile
2
Makefile
@@ -1,2 +1,2 @@
|
||||
all:
|
||||
g++ -Wall -o "nmpython" "main.cpp" -lncurses -ltinfo
|
||||
g++ -Wall -o "nmpython" "main.cpp" -lncurses -I v:/MinGW/MinGW32/opt/include/ncursesw -I v:/MinGW/mingw32/opt/include -L v:/MinGW/mingw32/opt/lib
|
||||
|
||||
21
main.cpp
21
main.cpp
@@ -291,11 +291,30 @@ void GameLoop()
|
||||
// Выбрасываем новую еду
|
||||
void DropFruit()
|
||||
{
|
||||
// Делаем флаг про то, что координаты не пересекаются с питоном
|
||||
bool goodCoords = true;
|
||||
|
||||
// Крутимся до тех пор, пока флаг не будет true
|
||||
// (Он сразу true, но если координаты попадут на змею, он станет false
|
||||
// и все уйдет на второй круг. А если не попадут - не уйдет.)
|
||||
do
|
||||
{
|
||||
// Новые координаты в переменные
|
||||
fruitX = (rand() % (termWidth - 2)) + 1;
|
||||
fruitY = (rand() % (termHeight - 2)) + 1;
|
||||
|
||||
|
||||
// Тут мы проходим по куску массива с телом между началом и концом
|
||||
// чтобы выяснить, не попадает ли новая еда поперек змеи.
|
||||
for (int i = 0; i < pythonEnd; i++)
|
||||
{
|
||||
if (fruitX == python[i].x && fruitY == python[i].y)
|
||||
{
|
||||
// Если попали - сбрасываем флаг и выходим из цикла.
|
||||
goodCoords = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} while (!goodCoords);
|
||||
|
||||
// и нарисовать
|
||||
mvprintw(fruitY, fruitX, "#");
|
||||
|
||||
Reference in New Issue
Block a user