|
2 / 2 / 0
Регистрация: 08.06.2018
Сообщений: 66
|
|
Прошу критики игры "Змейка"20.06.2018, 15:06. Показов 6199. Ответов 85
Метки нет (Все метки)
Привет.
Недавно написал змейку. Прошу оценить и покритиковать немного,мб какие-то предложения,поправки.
0
|
|
| 20.06.2018, 15:06 | |
|
Ответы с готовыми решениями:
85
Змейка, завершение игры Прошу критики Прошу вашей критики |
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||||||||||||
| 21.06.2018, 10:42 | |||||||||||||
Сообщение было отмечено anton3d как решение
Решение
Ну и точно ли нужно sdir делать глобальной?
. В целом код неплохой. Нормальное форматирование. Комментариев, правда, нет, но код достаточно прозрачный, так что не особо и нужны. Недостатки, которые бросились в глаза, я указал.
0
|
|||||||||||||
|
2 / 2 / 0
Регистрация: 08.06.2018
Сообщений: 66
|
||||||
| 21.06.2018, 12:12 [ТС] | ||||||
|
Но если есть какие-то ресурсы где это объясняется доступным языком я бы прочитал,посоветуете что-нибудь? Ну и по поводу того,что переменные которые не меняются запихивать в константы и через них выражать другие,чтобы потом пол кода не лопатить-понял принял-исправлюсь. Именно то,что хотел услышать,большое спасибо)
0
|
||||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
||||||||
| 21.06.2018, 15:51 | ||||||||
|
Поэтому на своем опыте не смогу назвать хорошую литературу. Но посмотрите в шапке подфорумов по Си и С++. Самое простое - объединить в структуру
0
|
||||||||
|
2 / 2 / 0
Регистрация: 08.06.2018
Сообщений: 66
|
|||
| 21.06.2018, 18:05 [ТС] | |||
|
0
|
|||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|
| 22.06.2018, 10:58 | |
|
Можно, но зачем? Когда захотите посмотреть какие у нее поля (вдруг название забыли) или что-то добавить - удалить, придется лезть в другой файл, искать его, открывать. Это неудобно. Пока структура маленькая и идет прямой доступ к ее полям выносить не слишком полезно.
Тут вопрос что менее неприятно, каждый раз открывать соседний файл чтобы поправить какую-то мелочь или заниматься поиском в одном большом. Обычно в отдельный файл (точнее, пару файлов, *.c/*.cpp + *.h/*.hpp) выносят конкретную библиотеку, имеющую минимум связей с остальной программой. Скажем, стандартная stdio / iostream занимается среднеуровневым вводом-выводом через файлы (более низкий уровень - системные вызовы вроде open/read/write или FileOpen/FileRead/..., более высокий - скажем, базы данных). И все! Неявных связей у нее мало, все операции достаточно независимые. И ее можно писать, отлаживать и применять независимо от первоначальной программы. Точно так же имеет смысл вынести библиотеку работы с графикой (или псевдографикой), ввод-вывод (придется объединить с графикой - если хотите, потом подробнее расскажу). Работу с двух- и трехмерными векторами, матрицами (это уже если захотите заняться 3D а стандартные библиотеки не заинтересуют). В общем, пока что разделение кода на несколько файлов принесет больше вреда чем пользы. Я бы посоветовал для начала улучшить сам код, сделать его еще более простым и наглядным. Еще раз отмечу: в плане форматирования (отступы, стили именования и т.п.) и наглядности ваш код довольно хорош, но все же указанные мной ранее недочеты стоит исправить. Это сделает его более простым для дальнейшего совершенствования. Собственно, если хотите, могу и более подробно помочь с программированием. Выкладывайте исправленный код (лучше не архивом, а копированием на форум и обрамлением тегами) и посмотрим что еще можно сделать. в порядке полета фантазии
Давно хотел разобраться с сетевым взаимодействием. Можно было бы на примере вашего кода поэкспериментировать. Кстати, вынесение работы с сетью в отдельный файл тоже имеет смысл.
0
|
|
|
2 / 2 / 0
Регистрация: 08.06.2018
Сообщений: 66
|
|||||
| 22.06.2018, 23:31 [ТС] | |||||
|
Но лето есть лето,и я посвящу этому столько времени,сколько смогу.
0
|
|||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
||||
| 23.06.2018, 10:30 | ||||
![]()
0
|
||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|
| 26.06.2018, 15:06 | |
|
Вот простенький пример с использованием ncurses. Файл
res/prog32.exe - скомпилированный бинарник, в mingw_include - заголовочные файлы для mingw32. Не знаю какой у вас компилятор и, если это не gcc, то не знаю как к нему подключать curses. Впрочем, Гугл знает наверняка.makefile страшный, пока что смотреть его не рекомендую. Там накручена куча костылей для кросс-компиляции произвольной программы из нескольких исходников.src/portability.h - файл совместимости между некоторыми линуксовыми и виндовыми функциями. Пока что он не нужен, но может пригодиться потомsrc/main.cpp - собственно, файл исходника. Комментарии не расставлял специально. Загляните в документацию на curses, разберитесь как эти функции работают и прокомментируйте код.
0
|
|
| 27.06.2018, 11:15 | |
|
anton3d, у меня есть предложение, чтобы вы перевели свой код, например, на OpenGL. Окно можно создать с помощью SDL2. Сначала сделать в 2D, а дальше будет несложно перейти в 3D. Здесь пример и видео туториал на русском.
По поводу сети, в SDL2 есть сеть. Книга на русском по сети на SDL2: Многопользовательские игры. Разработка сетевых приложений
0
|
|
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
||
| 27.06.2018, 22:07 | ||
|
8Observer8, не спешите. Псевдографика все же программируется несколько проще, а потом и SDL + OpenGL можно добавить, и даже переключение графики на лету.
Лично для меня написать змейку что на ncurses, что на SDL + OpenGL, что даже на WinAPI + DirectX (хотя последний раз пользовался им лет 10 назад) не представляет особых проблем. Но в этой теме я хочу попытаться помочь ТСу улучшить качество его кода и немного потренироваться в коллективном программировании. Короче, процесс важнее результата.
0
|
||
| 28.06.2018, 14:02 | ||
|
Может даже имеет смысл потом не трогать OpenGL, а сразу делать на Vulkan, потому что недавно (в начале июня этого года) OpenGL был объявлен deprecated на Mac и iOS в пользу Metal и Vulkan. Я думаю, это большой шаг к тому, что может пройти немного времени (может несколько лет или меньше) и тогда на остальных OC он тоже рано или поздно станет deprecated.
0
|
||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||
| 28.06.2018, 15:17 | |||
|
Вот для еды и ландшафта использовать готовые модельки вполне можно. Но, опять-таки, не спешите. Давайте идти последовательно. Мне понравился исходный код ТСа и я хочу помочь ему подняться хотя бы до своего уровня (на самом деле это немного). Но он говорил что сейчас занят, так что наберемся терпения и надеемся, что ему не надоест. Хотя...
8Observer8, может, сами хотите поучаствовать в написании суперкрутой трехмерной змейки? Тогда можно набросать ТЗ с основными фичами... или сразу начать кодить.
0
|
|||
| 28.06.2018, 15:58 | ||
|
0
|
||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
||
| 28.06.2018, 16:17 | ||
|
0
|
||
| 28.06.2018, 19:28 | ||||||||
|
youtube
ObjLoader.py
0
|
||||||||
|
2 / 2 / 0
Регистрация: 08.06.2018
Сообщений: 66
|
||||
| 29.06.2018, 19:49 [ТС] | ||||
|
COKPOWEHEU,
Вчера все сдал и сейчас у меня несколько выходных,чуть позже дела еще кое-какие будут,но теперь я могу стабильно пару часов в день уделять этой теме,и приступаю уже сейчас) Добавлено через 13 минут 8Observer8, 1.Сначала я занимаюсь оптимизацией старого кода 2.Потом попробуем с товарищем COKPOWEHEU прикрутить сеть(если ему еще это интересно,а судя по всему интересно)) 3.После этого плавно переходим к вопросу переноса на 2d графику opengl/dx/vulkan я еще не до конца все тут понял,посмотрим что будет лучше 4.И тут перед вступлением в 3д я бы хотел склепать еще что нибудь по этой схеме для разогрева,какой-то тетрис или любую простенькую аркаду(чтобы чувствовать себя чуть увереннее перед 3д) 5.И тут я бы приступил к 3д. Короче-делать есть что,но я постараюсь быстренько до 3 пункта дойти и там уже начнется самое интересное)
0
|
||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|
| 29.06.2018, 23:38 | |
|
Интересное можно найти везде, в псевдографической версии тоже. Например, написание для той же змейки бота. Или просто составление кампании из ряда заготовленных карт с препятствиями, бонусами и пр. Или прикрутить консоль (да, к консольной программе!) чтобы вводить читы.
На счет 2Д и 3Д разница на самом деле невелика. В том смысле что OpenGL, DirectX и, возможно, Vulkan, не умеют работать в двумерном режиме. До DX7 (вроде) была отдельная библиотека DirectDraw, но сейчас ее, насколько я знаю, выпилили. Тем более что все что умела она, можно сделать и через трехмерку, причем иногда проще. В принципе, сейчас у нас нет четкого ТЗ и плана работы, можем заниматься тем, что интересно в данный момент, благо на ту же змейку неплохо ложится большое количество технологий и идей, а значит из нее можно вырастить неплохую игрушку. И даже если не взлетит то хоть опыта наберемся.
0
|
|
|
2 / 2 / 0
Регистрация: 08.06.2018
Сообщений: 66
|
|||||||
| 30.06.2018, 22:38 [ТС] | |||||||
|
COKPOWEHEU,
Добавлено через 8 часов 24 минуты Прокомментировал весь код,чуть занялся константами
0
|
|||||||
|
4082 / 2680 / 432
Регистрация: 09.09.2017
Сообщений: 11,900
|
|||||||||||
| 01.07.2018, 08:49 | |||||||||||
Важный момент который вы упустили: комментировать надо не то КАК работает код, а ЧТО он делает. prog.exe > file.txt). Но некоторые консольные программы пытаются узнать подробности. Ваша программа запрашивает идентификатор окна эмулятора терминала, чтобы обмениваться с ним оконными сообщениями. И все это всего лишь для изменения цвета и позиции курсора.В линуксовом эмуляторе терминала это сделано более тонко и без нарушения консольной идеологии. Для управления параметрами терминала используются ESC-последовательности - непечатаемые наборы байт, передаваемые точно так же, как обычный текст. Например, printf("\033[5;32;44m AAA \033[0m\n"); выводит AAA мигающим (5) зеленым цветом (32) синем фоне (44). Обратите внимание что работа идет обычными терминальными командами. Причем команды у разных типов терминалов могут отличаться.Так вот, ncurses предназначена для кроссплатформенной работы с консолью, независимо от того какой именно используется. Если надо то используются и костыли вроде GetStdHandle, если нет - консольные команды.
0
|
|||||||||||
| 01.07.2018, 08:49 | |
|
Помогаю со студенческими работами здесь
20
Прошу вашей критики Прошу критики и рекомендаций Прошу критики от профессионалов... Прошу критики моего списка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|