Сделать хвост для змейки

242
28 июля 2018, 09:20

Всем привет! Я самостоятельно учу с++ и решил написать змейку. Для роста её хвоста при съедении еды я хотел использовать массив, хранящий положение головы в предыдущие ходы и выводить его циклом. Но у меня возникли проблемы. При первом съедении все работает нормально, а потом хвост не растет. Я попробовал сделать это без цикла.

Вся игра работает одним while. После всех рисовок происходит такой код:

prepos_x2 = prepos_x;
prepos_y2 = prepos_y;
prepos_x = zmeyka.x;
prepos_y = zmeyka.y;
и тут игра захватывает клавишу

Но он не сработал. Я проверил через cout и значение переменных prepos_x2 и prepos_y2 всегда равно prepos_x и prepos_y. Почему так происходит?

Upd: По идее должно работать так: Поле выполнено массивом pole[20][20] Голова спавнится в месте[10][10] и затем перемешается с помощью нажатия нa стрелки Хвост работает так

 If (golova.x = eda.x && golova.y = eda.y){
 dlina_hovsta = dlina_hvosta + 1;
 }
Затем 
for(i = 0; i < dlina_hvosta; i++) {
pole[hvost[i].x][hvost[i].y] = "1";
}
//Тут отрисовывается поле со всеми состовляющими
for(i =200; i>0; i--){
hvost[i].x = hvost[i - 1].x;
hvost[i].y = hvost[i- 1].y;
}
hvost[0].x = golova.x;
hvost[0].y = golova.y;
Answer 1

В условии у Вас вместо оператора сравнения "==" стоит оператор присваивания "=". Должно быть так

if (golova.x == eda.x && golova.y == eda.y){
    dlina_hovsta = dlina_hvosta + 1;
}
READ ALSO
Нарисовать иконку поверх другой в QToolButton Qt5

Нарисовать иконку поверх другой в QToolButton Qt5

Есть QToolButton ей в таблице стилейqss задется border-image:

250
Сторонние библиотеки

Сторонние библиотеки

Понадобилось подключить сторонние библиотеки в С++

255
Ошибка при чтении объекта класса из файла - C++

Ошибка при чтении объекта класса из файла - C++

Долго я пытался решить проблему самостоятельно, а так же и искал ответы на форумахНо в итоге не смог решить свою проблему

270
Нужно возвращать std::unique_ptr&lt;QJsonObject&gt; а я возвращаю QJsonObject, что делать?

Нужно возвращать std::unique_ptr<QJsonObject> а я возвращаю QJsonObject, что делать?

Как исправить ошибку? У меня есть функция

222