ЗМЕЙКА НА C++ - ПРАКТИКА #1

  Рет қаралды 47,092

Канал какого-то студента

Канал какого-то студента

Күн бұрын

Пікірлер: 152
@severusov
@severusov Жыл бұрын
Если меня не возьмут на работу после змейки, то видос не эффективен
@kliment5116
@kliment5116 Жыл бұрын
все работает. Устроился на пост мидла у нас в Москве. Теперь планирую взять яхту.
@Дмитрий-з1з3у
@Дмитрий-з1з3у Жыл бұрын
Жестко возьмёшь яхту или нежно?@@kliment5116
@PROgibator1
@PROgibator1 Жыл бұрын
Тоже устроился сеньёром в корпорацию зла. Получаю золотом. Планирую купить землю@@kliment5116
@СтарыйВаленок-к4л
@СтарыйВаленок-к4л 8 ай бұрын
А какую практически полезную программу ты можешь написать сам?
@Alekc2020
@Alekc2020 2 ай бұрын
​@@СтарыйВаленок-к4лЗмейка
@НиколайПодколзин-с8р
@НиколайПодколзин-с8р Жыл бұрын
Обычно вообще не пишу комменты, но тут случайно наткнулся на ролик, и на самом деле не поверил, что у канала всего 110 подписчиков, прекрасный голос и хорошее качество звука, как раз то чего не хватает начинающим каналам. Классная подача материала, старайся дальше будем ждать 110, но еще с тремя нулями)))
@someStudentChannel
@someStudentChannel Жыл бұрын
Спасибо :) Да, пока 110 с нулём нулей
@PROgibator1
@PROgibator1 Жыл бұрын
Уже 1 510. Посоветовал знакомым, а те своим,.Будет больше@@someStudentChannel
@yokzzzz
@yokzzzz Жыл бұрын
супер приятно слушать, объяснения быстрые и понятные, спасибо за урок!
@someStudentChannel
@someStudentChannel Жыл бұрын
Спасибо за обратную связь 😊
@bacruru
@bacruru Жыл бұрын
Ваше существование вселяет в меня надежду
@КимЧенОрк
@КимЧенОрк Жыл бұрын
Стиль превьюшек забавный. После них очень удивил женский голос. Рад найти ещё одного C++ Enjoyer-а
@progerlife6690
@progerlife6690 9 ай бұрын
Офигеть лайк и подписка! Жду уроки по С++)
@garffild
@garffild Жыл бұрын
Рекомендую, для удобства чтения и уменьшения отступов, пользоваться early return. То есть "сначала проверять невыполненные условия и прерывать или пропускать", вместо "исполненять, только есть условия выполняются". Отличная подача! Успехов вам! :)
@someStudentChannel
@someStudentChannel Жыл бұрын
Да-да, тоже сначала хотелось так делать, но мы ещё не проходили эти словечки циклов, поэтому потом как улучшение кода будет. А может кто-то прочитает ваш комментарий и сам добавит. Спасибо большое! ❤️
@astutusmvp5769
@astutusmvp5769 Жыл бұрын
Респект даме. Написала свой код(с хорошими пояснениями) , хоть и с косячками, но свой(открыто показала как взяла пару чужих функций - респект). Про недочёты чел уже в коментах по фактам написал, так что я не буду. Желаю удачи и развития, ты классная(по крайней мере такого мое первое впечатление)
@MartinIden-hn7ld
@MartinIden-hn7ld 7 ай бұрын
4:47 Лучше через else if или switch Если через if- это разные условия и проверка будет заходить в каждое, а не в одно
@nk-93
@nk-93 Жыл бұрын
Не знаю зачем мне это, но я посмотрел и мне понравилось! ) Комменты тоже все в тему Похоже адекватный народ подписывается
@angsttt904
@angsttt904 3 ай бұрын
наверное уже писали, но имхо - записать направления было бы элегантней в enum. Они все равно хранятся как числа далее
@rustpolecat2770
@rustpolecat2770 Жыл бұрын
первый урок и сразу практика, круто
@vadim4ikiii486
@vadim4ikiii486 Жыл бұрын
1:24 почему именно такая формула нельзя просто найти площадь и отнять 1 чтобы когда змейка достигла свего размера игра закончилась -1 потому что не будет места чтобы заспавнилось яблоко
@pelmeshik2909
@pelmeshik2909 5 ай бұрын
Здравствуй! чтобы исправить проблему с пленкой можно использовать system("cls"); после вывода краты.
@eueiiew
@eueiiew 5 ай бұрын
Бонус может появиться и в змейке. Насчет использования двух массивов для змейки, не знаю, такое. Каждая итерация это перебор ее кординат для смещения, да и "железный" алгоритм для генерации бонуса с учетом занятых координат будет весьма трудоемким. Типичная инженерная задача, либо память, либо же скорость) Сам использовал связанный список, для того, чтобы каждую итерацию хвост перемещать в голове. Пробывал и с матрицей, но там свои приколы. Вообщем, спасибо за видео, учу ++
@lpwlx
@lpwlx Жыл бұрын
ролик неплохой, подача хорошая. но не хватает подробных объяснений. я думаю, что здесь всё поймут только те, кто сам уже в состоянии написать "змейку". по поводу кода уже подробно всё расписали, для начинающих, как я считаю, лучше писать, так сказать, примитивно, но правильно. а так, в целом, качество видео для маленького канала хорошее.
@viruskiller18106
@viruskiller18106 Жыл бұрын
переписал код, но змейка сразу проигрывается
@someStudentChannel
@someStudentChannel Жыл бұрын
Мне нужен кодд
@mr.ressety5118
@mr.ressety5118 Жыл бұрын
классный ролик только не предусмотрено пару мелочей ,но я так понимаю ты их поправишь в следующих роликах .А так добра и позитива
@blindboy007
@blindboy007 11 ай бұрын
Идея топ, а аот реализация так себе. Почему бы не написать змейку с использованием графических библиотек? Консоль это конечно хорошо, но когда будете выбиратся с песочницы? А ещё у Вас яблоко спавнится в змейке. Удачи в продолжении канала, продолжайте делать то что делаете и всёу вас получится😊
@scottywood3171
@scottywood3171 8 ай бұрын
Ух красиво😊
@Игорь-г7т8щ
@Игорь-г7т8щ Жыл бұрын
GPT почти один в один такую же змейку пишет на запрос: напиши простую реализацию игры змейка на c++
@someStudentChannel
@someStudentChannel Жыл бұрын
Можешь сюда скинуть его код?
@ErkeTan879
@ErkeTan879 5 ай бұрын
Что делать если змейка спокойно движется по координате х (тоесть прямо вправо или прямо влево),но придвижении координате у он косится? (Допустим змейка идет вверх но она идет в левый верхний угол)
@hsywer
@hsywer 5 ай бұрын
Таже проблема
@Azemrov
@Azemrov 4 ай бұрын
короче добавь +1 к твоему полю в ширину ,ты недосчитал
@MrAsun-zd4yo
@MrAsun-zd4yo Жыл бұрын
Очень хорошая подача, да и слушать тоже очень интересно, ждем что-нибудь еще интересненькое (желательно, чуть более ооп`шное, хах), удачи вам, очень интересно!
@garunchek
@garunchek Жыл бұрын
Здравствуйте, у меня такая проблема, змейка двигается только вверх и вниз, не знаете как это исправить?
@someStudentChannel
@someStudentChannel Жыл бұрын
Код суды
@Равич-б2у
@Равич-б2у Жыл бұрын
Всем привет. Подскажите как можно изменить символ головы змеи, чтобы он выделялся
@kosiak10851
@kosiak10851 Жыл бұрын
массив for(...) map[...] = snake; Начинать не с 0, а с i=1; а после цикла написать map[snake_y[0]...] = snake_head; где snake_head новая char переменная
@positivenozy6065
@positivenozy6065 Жыл бұрын
Молодчинка! Есть в планах создавать материал по алгоритмам и структурам данных?)
@someStudentChannel
@someStudentChannel Жыл бұрын
Конечно
@lastgames6797
@lastgames6797 10 ай бұрын
Привет, нужна помощь, повторял код как в видео, но когда запускаю консоль змейка сразу появляется в верхней границе карты , соответственно игра заканчивается.Как это можно исправить?
@someStudentChannel
@someStudentChannel 10 ай бұрын
Надо кода бы
@lastgames6797
@lastgames6797 10 ай бұрын
@@someStudentChannel #include #include void gotoxy(int x, int y) { COORD pos = { x, y }; HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(output, pos); } const int WIDTH = 17; const int HEIGHT = 10; const int MAX_SNAKE_LEN = (WIDTH - 2) * (HEIGHT - 2); const int UP = 0; const int DOWN = 1; const int LEFT = 2; const int RIGHT = 3; int snake_dir = UP; bool isRunning = true; char map[] = "################# " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "################# "; char snake = 'o'; int snake_x[MAX_SNAKE_LEN] = { 0 }; int snake_y[MAX_SNAKE_LEN] = { 0 }; int snake_len = 1; int food_x = 1+(rand()%(WIDTH-3)); int food_y = 1 + (rand() % (HEIGHT - 2)); char food = '*'; int main() { snake_x[0] = WIDTH / 2; snake_y[0] = HEIGHT / 2; double time = clock(); while (isRunning) { if (GetKeyState('A') & 0x8000) { if (snake_dir != RIGHT) { snake_dir = LEFT; } } if (GetKeyState('D') & 0x8000) { if (snake_dir != LEFT) { snake_dir = RIGHT; } } if (GetKeyState('W') & 0x8000) { if (snake_dir != DOWN) { snake_dir = UP; } } if (GetKeyState('S') & 0x8000) { if (snake_dir != UP) { snake_dir = DOWN; } } if ((clock() - time / CLOCKS_PER_SEC >= 0.3)) { time = clock(); if (snake_x[0] == food_x && snake_y[0] == food_y) { ++snake_len; food_x = 1 + (rand() % (WIDTH - 3)); food_y = 1 + (rand() % (HEIGHT - 2)); } for (int i = snake_len - 2; i >= 0; ++i) { snake_x[i + 1] = snake_x[i]; snake_y[i + 1] = snake_y[i]; } if (snake_dir == UP) { --snake_y[0]; } if (snake_dir == DOWN) { ++snake_y[0]; } if (snake_dir == RIGHT) { ++snake_x[0]; } if (snake_dir == LEFT) { --snake_x[0]; } if (snake_x[0] == 0 || snake_y[0] == 0 || snake_x[0] == WIDTH - 2 || snake_y[0] == HEIGHT - 1) { isRunning = false; } for (int i = 1; i < snake_len; ++i) { if (snake_x[0] == snake_x[i] && snake_y[0] == snake_y[i]) { isRunning = false; i = snake_len; } } gotoxy(0, 0); std::cout
@lastgames6797
@lastgames6797 10 ай бұрын
@@someStudentChannel #include #include void gotoxy(int x, int y) { COORD pos = { x, y }; HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(output, pos); } const int WIDTH = 17; const int HEIGHT = 10; const int MAX_SNAKE_LEN = (WIDTH - 2) * (HEIGHT - 2); const int UP = 0; const int DOWN = 1; const int LEFT = 2; const int RIGHT = 3; int snake_dir = UP; bool isRunning = true; char map[] = "################# " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "################# "; char snake = 'o'; int snake_x[MAX_SNAKE_LEN] = { 0 }; int snake_y[MAX_SNAKE_LEN] = { 0 }; int snake_len = 1; int food_x = 1+(rand()%(WIDTH-3)); int food_y = 1 + (rand() % (HEIGHT - 2)); char food = '*'; int main() { snake_x[0] = WIDTH / 2; snake_y[0] = HEIGHT / 2; double time = clock(); while (isRunning) { if (GetKeyState('A') & 0x8000) { if (snake_dir != RIGHT) { snake_dir = LEFT; } } if (GetKeyState('D') & 0x8000) { if (snake_dir != LEFT) { snake_dir = RIGHT; } } if (GetKeyState('W') & 0x8000) { if (snake_dir != DOWN) { snake_dir = UP; } } if (GetKeyState('S') & 0x8000) { if (snake_dir != UP) { snake_dir = DOWN; } } if ((clock() - time / CLOCKS_PER_SEC >= 0.3)) { time = clock(); if (snake_x[0] == food_x && snake_y[0] == food_y) { ++snake_len; food_x = 1 + (rand() % (WIDTH - 3)); food_y = 1 + (rand() % (HEIGHT - 2)); } for (int i = snake_len - 2; i >= 0; ++i) { snake_x[i + 1] = snake_x[i]; snake_y[i + 1] = snake_y[i]; } if (snake_dir == UP) { --snake_y[0]; } if (snake_dir == DOWN) { ++snake_y[0]; } if (snake_dir == RIGHT) { ++snake_x[0]; } if (snake_dir == LEFT) { --snake_x[0]; } if (snake_x[0] == 0 || snake_y[0] == 0 || snake_x[0] == WIDTH - 2 || snake_y[0] == HEIGHT - 1) { isRunning = false; } for (int i = 1; i < snake_len; ++i) { if (snake_x[0] == snake_x[i] && snake_y[0] == snake_y[i]) { isRunning = false; i = snake_len; } } gotoxy(0, 0); std::cout
@ultrahab4293
@ultrahab4293 6 ай бұрын
Я подписался, а если игру еще и на сессии оценят то и на бусти зайду
@someStudentChannel
@someStudentChannel 6 ай бұрын
Хахахв
@KenanShuk
@KenanShuk Жыл бұрын
У меня он улетает просто змейка не успиваю ничего сделать как это исправить
@someStudentChannel
@someStudentChannel 11 ай бұрын
хым хым надо код смотреть
@Mathemat1cs-1
@Mathemat1cs-1 Жыл бұрын
вообще круто, еще б с Qt намутить и можно хвастаться преподу/ друзьям на сколько ты крута
@muchas_gracias
@muchas_gracias 7 ай бұрын
жду не дождусь когда будуть гайды по OpenGL
@donat7951
@donat7951 Жыл бұрын
О это то что я искал
@1mpalo362
@1mpalo362 8 ай бұрын
можно же было с UP LEFT RIGHT DOWN использовать enum, а не просто переменные
@someStudentChannel
@someStudentChannel 8 ай бұрын
Да, мне почему-то захотелось на более низком уровне показать какая тут логика. Енам по сути предоставляет удобную обёртку для той же цели)
@1mpalo362
@1mpalo362 8 ай бұрын
@@someStudentChannel да, он буквально то же самое, просто удобнее, на мой взгляд. Если функционал языка позволят, значит нужно его использовать
@KenanShuk
@KenanShuk Жыл бұрын
У меня проблема код тот же самый но змейка очень быстро передвигается
@someStudentChannel
@someStudentChannel 11 ай бұрын
Можно Sleep поставить между кадрами
@ИТОтдел-щ4ы
@ИТОтдел-щ4ы Жыл бұрын
Вот бы змейка была написана в ООП стили
@nullpeer
@nullpeer Жыл бұрын
Добрый вечер. 4:40 почему просто switch нельзя использовать? получается как в питоне тогда, if заместо switch
@Andrew_ku
@Andrew_ku 8 ай бұрын
Я попытлся через свитч сделать, но у меня змейка вообще двигаться перестала :/ Мб это у меня руки не из того места, но через if всё заработало
@AndreyBorisov-vk8em
@AndreyBorisov-vk8em Жыл бұрын
напиши клиент сервер чат пожалуйста.
@someStudentChannel
@someStudentChannel Жыл бұрын
Возьму на заметку, но не в ближайшее время
@smenxsmenx4180
@smenxsmenx4180 Жыл бұрын
+1
@Игорь-х6ф6и
@Игорь-х6ф6и Жыл бұрын
простите а где исходный код?
@petrpashutin9197
@petrpashutin9197 4 ай бұрын
А как базу генератора случайных чисел сделать случайной?
@someStudentChannel
@someStudentChannel Ай бұрын
Про seed рандома почитайте
@Vlad_Jonson
@Vlad_Jonson Жыл бұрын
Всем привет, возможно глупый вопрос но зачем большинство переворачивает систему координат,в не которых моментах не совсем удобно? 🤗🤔
@someStudentChannel
@someStudentChannel Жыл бұрын
Например? Если кратко, то потому что библиотеки могут быть написаны под другую систему. А вообще это идёт от всяких правил правой руки и всего такого, к чему уже все привыкли и написали книжек
@dmitry7341
@dmitry7341 Жыл бұрын
Привет! А когда будет продолжение?
@someStudentChannel
@someStudentChannel Жыл бұрын
Скоро)
@Azemrov
@Azemrov 4 ай бұрын
Здравствуй ! Почему в момент когда змейка подбирает еду то игра завершается с результатом 2
@someStudentChannel
@someStudentChannel Ай бұрын
Надо код смотреть
@define_success_true
@define_success_true 9 ай бұрын
Глобальные переменный и нет использования ООП
@byOwneD
@byOwneD Жыл бұрын
Здравствуй А можеш снять ролик на тему C# wpf Dissolve а то на ютубе вообще нету нечего связано с данним параметром.
@someStudentChannel
@someStudentChannel Жыл бұрын
Привет, знать бы ещё что это. C# может будет, когда юнити начнём затрагивать, а насчёт wpf и вообще простых оконных програм пока не знаю, так что извиняй
@lpwlx
@lpwlx Жыл бұрын
по поводу WPF вот есть плейлист:kzbin.info/aero/PL0lO_mIqDDFVI0xwaYbm7h9ewYu5hftfA&si=3wryZVgbQJKWk6QG
@byOwneD
@byOwneD Жыл бұрын
@@lpwlx Спасибо. Данний материал я весь изучил. А вот по данной функции инфи не могу найти.
@barladeanserghei6062
@barladeanserghei6062 5 ай бұрын
наверно поздновато , но можешь скинуть ссылку на гитхаб с кодом , хочу сверить( не могу найти ошибку
@someStudentChannel
@someStudentChannel Ай бұрын
На бусти выкладывался
@madideax
@madideax Жыл бұрын
Я с вами!
@defolt7
@defolt7 Жыл бұрын
Можно ссылочку на файл пж
@vas_._sfer6157
@vas_._sfer6157 Жыл бұрын
Понятно, что видео для новичков, но возможно стоило бы улучшить качество кода, без потери понятности естественно. Что я имею в виду: 1) Стараться не злоупотреблять глобальными переменными. Лучше оставить глобальные константы. Хотя иногда они вполне могут быть полезны и наглядны. Но вот snake_len, food_x, food_y. Для простоты глобальными стоит оставить только состояние поля, или некоторые данные змейки, и то если вам просто не хочется использовать ссылки или указатели на данном этапе. 2) Разделить функционал стоит хотя бы на пару функций. Это поможет понятно показать какой код ответственен за определённые действия. По сути игровой цикл состоит из этих задач: - Получение действия игрока. - Проверка отсутствия препятствий или конец игры. - Проверка на еду и поглощение еды (+ генерация нового кусочка) - Передвижение. - Отрисовка - Ожидание Если использовать разделение на функции для хотя бы некоторых этих пунктов, то можно сделать код понятнее и проще. Как минимум можно упростить код ожидания следующего кадра, если вынесете его в отдельную функцию. Ну и функция отрисовки прям напрашивается, с учётом необходимости переставлять курсор. 3) Использовать более простые решения. - Статический многомерного массив не требует формул для расчёта координат. - Нет никакого толка размещать в массив границы поля, так как их можно добавлять во время отрисовки. Можно ведь просто оставить игровое поле игровым полем. - Хорошо бы избежать кучи лишних операций с массивом, да ещё и сократить код работы с туловищем змейки. Можно использовать очень примитивную реализацию очереди, так как мы знаем максимальную длину змейки. Есть ещё небольшая ошибка в вашем коде: Еда может появиться на теле змейки. В остальном у вас хороший голос и неплохая подача. Я думаю вас ждёт успех! P.S. На гитхаб старайтесь выкладывать ваш код. А ссылку на проект в описание. Так каждый сможет полностью осмотреть код из урока.
@someStudentChannel
@someStudentChannel Жыл бұрын
Да, замечания все по факту, спасибо. В следующих практиках будем улучшать код. Баг с едой, вообще, остался, чтобы не нагружать и так уже загруженный мозг зрителя.
@Alex_Rukhubovsky
@Alex_Rukhubovsky Жыл бұрын
Сеньор учит джуна)) сразу чувствуется опыт и прохождение через такие же ошибки) Да, критика по существу тут. П.С. я не программист, только учусь для себя, если что.
@hegatib4ik843
@hegatib4ik843 Жыл бұрын
Возможно подскажете уак пофиксить баг з едой, реализовал идею на с# делаю проверку не попападает ли координата еды на змейку но иногда всеравно попадает, возможно изза того что в одном кадре там нет змейки а в другом она там появляеться и прячеться под саму змейку
@vas_._sfer6157
@vas_._sfer6157 Жыл бұрын
@@hegatib4ik843 Давайте ссылку на Gist или репозиторий с кодом. Посмотрю, что там может быть не так
@Golosarii
@Golosarii 8 ай бұрын
желательно было бы если написать еще комментарий , а то так интиутивно не поймешь
@Alviona_WoW
@Alviona_WoW 6 ай бұрын
Уважаемый автор, а почему у меня при запуске программы, она просто мгновенно завершается? То есть я не могу управлять змейкой... Она просто появляется в верхней границы карты и всё.
@someStudentChannel
@someStudentChannel 6 ай бұрын
Дайте на код взглянуть
@Alviona_WoW
@Alviona_WoW 6 ай бұрын
@@someStudentChannel делал прям как у вас в видео. То есть за вами повторял
@someStudentChannel
@someStudentChannel 6 ай бұрын
@@Alviona_WoW все так говорят) прям сюда копипастом можно
@Alviona_WoW
@Alviona_WoW 6 ай бұрын
@@someStudentChannel отправил уже копипастом) сюда, в переписку эту, с вами)
@thestinger8677
@thestinger8677 Жыл бұрын
А можно и каналам-миллионникам запариваться над видео хотя бы в половину как ты? от некоторых не то что картиночек на монтаже вставить, а даже объяснения написанного не дождёшься, красава
@someStudentChannel
@someStudentChannel Жыл бұрын
Ухх, спасибо. Кстати, знаю что зарубежные миллионники (Code Bullet например) очень запариваются над монтажом
@thestinger8677
@thestinger8677 Жыл бұрын
​ @someStudentChannel да, шикарных каналов тоже много, но видя как запариваешься ты, становится грустно что кто-то может пукать невнятными видео с почти нулевыми затратами по времени и силам, а получать в сотни раз больше внимания :( Благо таких меньшинство
@ДмитрийКунов-к9ч
@ДмитрийКунов-к9ч Ай бұрын
хочу с тобой связаться, ответь, пожалуйста
@someStudentChannel
@someStudentChannel Ай бұрын
Так так, что такое
@ДмитрийКунов-к9ч
@ДмитрийКунов-к9ч Ай бұрын
@@someStudentChannel проверь почту)
@ItachiUchiha-wd5kk
@ItachiUchiha-wd5kk 10 ай бұрын
Помоги, пожалуйста У меня функция рандом даже при использовании srand(time(0)) всё равно генерирует всё в одном месте - в рамке, в верхнем правом углу Если же то же рандомное создание для фруктов в начале, вне int main(), то тогда число генерирует лишь один не изменяющийся результат( и скорее всего не меняется) И да, я пытался использовать сторонние функции рандома( не помогло) Мой код: #include #include #include #include void gotoxy(int x, int y) { COORD pos = { x, y }; HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(output, pos); } const int Width = 18; const int Height = 10; const int Max_Len_Snake = (Width - 3) * (Height - 2); const int Up = 0; const int Down = 1; const int Left = 2; const int Right = 3; bool isRunning = true; int snake_dir = Up; char map[] = "################# " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "################# "; char snake = 'O'; int snake_x[Max_Len_Snake] = {0}; int snake_y[Max_Len_Snake] = {0}; int snake_len = 1; int food_x; int food_y; char food = '*'; void Print(const char* message) { std::cout = 0; --i) { snake_x[i + 1] = snake_x[i]; snake_y[i + 1] = snake_y[i]; } if (snake_dir == Up) --snake_y[0]; if (snake_dir == Down) ++snake_y[0]; if (snake_dir == Right) ++snake_x[0]; if (snake_dir == Left) --snake_x[0]; if ((snake_x[0] == 0) || (snake_y == 0) || (snake_x[0] == Width - 2) || (snake_y[0] == Height - 1)) isRunning = false; for (int i = 1; i < snake_len; i++) { if(snake_x[0]== snake_x[i]&& snake_y[0]==snake_y[i]) { isRunning = false; i = snake_len; } } gotoxy(0, 0); std::cout
@someStudentChannel
@someStudentChannel 10 ай бұрын
У тебя food_x и food_y не заданы начальные значения. Приравняй к 5 их там хотя-бы. У меня заработало
@ItachiUchiha-wd5kk
@ItachiUchiha-wd5kk 10 ай бұрын
@@someStudentChannel Я изначально как в видео ставил значения рандомные, потом ставил какие-то другие, экспериментировал Но там просто одно это яблоко остается и никуда не перемещается
@someStudentChannel
@someStudentChannel 10 ай бұрын
@@ItachiUchiha-wd5kk все равно не работает?
@ItachiUchiha-wd5kk
@ItachiUchiha-wd5kk 10 ай бұрын
@@someStudentChannel Неа Проверял
@someStudentChannel
@someStudentChannel 10 ай бұрын
@@ItachiUchiha-wd5kk а первый фрукт то спавнится? Или там прям все объекты в одной точке
@_veterok_856
@_veterok_856 5 ай бұрын
я сделал все также проблем нет, все классно, но почему то змейка двигается только по оси Y почему? (и еще не на те кнопки, на которые надо) ПОМОГИ пожалуйста, буду благодарен❤
@someStudentChannel
@someStudentChannel Ай бұрын
Нада кода
@DI4P443R-rw1kh
@DI4P443R-rw1kh Жыл бұрын
Можно ещё по поводу char map задать вопрос где стеночки? У меня правильно получилось или как? char map[]= "################# " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "################# "; Нет ли ошибки? Высота 10 включая верхнюю и нижние планки?
@someStudentChannel
@someStudentChannel Жыл бұрын
Да, у меня учитывались они
@СергейСунцов-я2э
@СергейСунцов-я2э Жыл бұрын
хайп круто
@Alviona_WoW
@Alviona_WoW 6 ай бұрын
Уважаемый автор, так и что по итогу не так в коде у меня? :-) Я его скинул) Не смотрели ещё?
@someStudentChannel
@someStudentChannel 6 ай бұрын
Да, я завтра посмотрю, будни загруженные сейчас :(
@Alviona_WoW
@Alviona_WoW 6 ай бұрын
@@someStudentChannel Спасибо, жду)
@Alviona_WoW
@Alviona_WoW 5 ай бұрын
@@someStudentChannel Уважаемый автор, здравствуйте. Вы так и не поглядели мой код(
@Azemrov
@Azemrov 4 ай бұрын
@@Alviona_WoW посмотрели ?
@Alviona_WoW
@Alviona_WoW 4 ай бұрын
@@Azemrov нет(
@fitileo
@fitileo Жыл бұрын
всё круто ,просто супер,но ни чё не понятно
@someStudentChannel
@someStudentChannel Жыл бұрын
Давай, что не понял??
@DI4P443R-rw1kh
@DI4P443R-rw1kh Жыл бұрын
А где исходные коды?
@norskiy9765
@norskiy9765 Жыл бұрын
Ура победа!!!
@someStudentChannel
@someStudentChannel Жыл бұрын
На С++ в С-стайле так сказать
@norskiy9765
@norskiy9765 Жыл бұрын
@@someStudentChannel зато +1 игра
@MarkFilipov-m2w
@MarkFilipov-m2w Жыл бұрын
ti paren ili dewochka???????
@alexf3289
@alexf3289 Жыл бұрын
Вот эти постоянные "как нетрудно понять" - это не объяснение. Массив чаров для игрового поля - это ещё понятно, всё что после - нет. Логику выбора и определения переменных и констант нужно подробно описывать, если вы делаете уроки для начинающих. Иначе это профанация.
@someStudentChannel
@someStudentChannel Жыл бұрын
Уроки для начинающих да, а практика рассчитана на то что с уроками человек уже хорошо освоился. Аудитория просто разная и выпускать только для новичков не совсем правильно, как мне кажется
@gasirovka
@gasirovka Жыл бұрын
Недавно тоже змейку писал на raylib
@someStudentChannel
@someStudentChannel Жыл бұрын
Библиотеки для игр это мы любим
@devlightff482
@devlightff482 Жыл бұрын
Тут только смотрять м. пола?
@kosiak10851
@kosiak10851 Жыл бұрын
Странно, что автор ведёт канал для школьников, даже не старшеклассников, но уже кидает ссылку на бусти.
@unqp52
@unqp52 Жыл бұрын
А че без всяких ООП, раскидывания по файлам ? Так же не красиво, не чётен ко и не вкусно 😢
@russleg9510
@russleg9510 Жыл бұрын
+
@aliexpress5284
@aliexpress5284 Жыл бұрын
:) точна студень: в ручную массив заполнил и посчитал колличество строк столбцов😂
@someStudentChannel
@someStudentChannel Жыл бұрын
Да ладно. Зато понятно как, что, откуда берётся
@pampers3215
@pampers3215 Жыл бұрын
shluha
@blindboy007
@blindboy007 11 ай бұрын
Daun
@НикитаАгеев-п2ж
@НикитаАгеев-п2ж Жыл бұрын
Иди на кухню
@pipkurek2005
@pipkurek2005 Ай бұрын
В отличие от тебя она даже умеет кодить на микроволновке
@AComplexWave
@AComplexWave 7 ай бұрын
const int MAX_SNAKE = (WEITH - 3) * (HEiGHT - 2); - НЕ ПОНЯЛ , ПОЧЕМУ -3 И -2, ОТКУДА ЭТИ ПАРАМЕТРЫ Максимальная длина змейки, 2 символа '#'' '#' по бокам вычесть и два (1 вверх и 1 - низ) символ считаем ? Обьясните чтоб понятно было новичку!
@someStudentChannel
@someStudentChannel 7 ай бұрын
Да, в счёт)
@AComplexWave
@AComplexWave 7 ай бұрын
@@someStudentChannel спасибо, очень приятно, когда автор видео даёт feedback std::cout
@disasterChildPo
@disasterChildPo Жыл бұрын
круто. Спасибо за видос! Помогите пожалуйста, кто-нибудь: у меня проблема. При вертикальном перемещении змейка двигается по диагонали Вот код: #include #include void gotoxy(int x, int y) { COORD pos = { x,y }; HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(output, pos); } const int WIDTH = 21; const int HEIGHT = 11; const int MAX_LEN_SNAKE = (WIDTH - 3) * (HEIGHT - 2); const int UP=0; const int DOWN=1; const int LEFT = 2; const int RIGHT = 3; int snake_dir = 0; bool isRunning = true; char map[] = "##################### " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "# # " "##################### "; char snake = '0'; int snake_x [MAX_LEN_SNAKE] = { 0 }; int snake_y [MAX_LEN_SNAKE] = { 0 }; int snake_len = 1; int main() { snake_x[0] = WIDTH / 2; snake_y[0] = HEIGHT / 2; int time = clock(); while (isRunning) { if (GetKeyState('W') & 0x8000) { if (snake_dir != DOWN) { snake_dir = UP; } } else if (GetKeyState('S') & 0x8000) { if (snake_dir != UP) { snake_dir = DOWN; } } else if (GetKeyState('D') & 0x8000) { if (snake_dir != LEFT) { snake_dir = RIGHT; } } else if (GetKeyState('A') & 0x8000) { if (snake_dir != RIGHT) { snake_dir = LEFT; } } if ((clock() - time) / CLOCKS_PER_SEC >= 0.3) { time = clock(); for (int i = snake_len - 2; i >= 0; --i) { snake_x[i + 1] = snake_x[i]; snake_y[i + 1] = snake_y[i]; } if (snake_dir == UP) { --snake_y[0]; } else if (snake_dir == DOWN) { ++snake_y[0]; } else if (snake_dir == RIGHT) { ++snake_x[0]; } else if (snake_dir == LEFT) { --snake_x[0]; } else if (snake_x[0] == 0 || snake_y[0] == 0 || snake_x[0] == WIDTH - 2 || snake_y[0] == HEIGHT - 1) { isRunning = false; } gotoxy(0, 0); for (int i = 0; i < snake_len; i++) { map[snake_y[i] * WIDTH + snake_x[i]] = snake; } std::cout
@someStudentChannel
@someStudentChannel Жыл бұрын
С шириной общитался. Напиши const int WIDTH = 22
@disasterChildPo
@disasterChildPo Жыл бұрын
@@someStudentChannel Спасибо ОГРОМНОЕ. Я 4 раза считал. Так и не смог нормально посчитать😂
@ItachiUchiha-wd5kk
@ItachiUchiha-wd5kk 10 ай бұрын
@@someStudentChannel Я столкнулся с этой же ошибкой и регулировка Width помогла, так как я не принимал во внимание Большое спасибо за видео и за вашу помощь
@Марія-МаринаГИЩУК
@Марія-МаринаГИЩУК Жыл бұрын
main.cpp:46:17: error: ‘MAX_LEN_SNAKE’ was not declared in this scope 46 | int snake_x[MAX_LEN_SNAKE] = { 0 }; | ^~~~~~~~~~~~~
@Марія-МаринаГИЩУК
@Марія-МаринаГИЩУК Жыл бұрын
як вирішити?
@АртёмШакиров-к2о
@АртёмШакиров-к2о Жыл бұрын
Ты не объявил MAX_LEN_SNAKE или ошибся в его написании при объявлении, ошибка в невозможности найти константу в области видимости
Игра на C++ в консоли
0:50
Канал какого-то студента
Рет қаралды 10 М.
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 60 МЛН
СКОЛЬКО ПАЛЬЦЕВ ТУТ?
00:16
Masomka
Рет қаралды 3,6 МЛН
How I wrote online shooter on C++ in a week
25:31
Vectozavr
Рет қаралды 1 МЛН
Что пишут на языке программирования C++?
16:27
«Осень». Самая большая загадка Windows XP
14:36
Девять десятых
Рет қаралды 1,4 МЛН
Собеседование Junior C++
45:32
Ambushed Raccoon
Рет қаралды 123 М.
How to get started making games. | Development for newbies
5:27
Кэп Скай
Рет қаралды 2,5 МЛН
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 60 МЛН