Здравствуйте, ну я понимаю, что не открою вам Америку и наверно вы об этом думали, но у меня два предложения: первое - попробуйте начать с более простых игр и без больших библиотек (как pygame), например, как крестики-нолики или камень-ножницы-бумага (тк там относительно очень простые правила). И второе - возьмите готовый или почти готовый проект (разберитесь в нем) и потом с ребенком изменяйте параметры, и чтобы было видно изменение, например, поменял строку с цветом - и задний фон изменил цвет, и так пройтись по большей части кода
Согласен, идея использовать логику сапёра для генерации пещер - это круто, один клик и работает сложные алгоритмы, а BVH и карта высот отлично ложатся на эту концепцию
Ваш стек C++/glew/BVH думаю мощное решение, особенно для масштабирования. На Python с numpy+numba, конечно, проще начать, но для большой игры, как будто не подходит. Когда у вас получиться его реализовать до конца, хотел бы увидеть
Идея с пещерой от первого лица так-то отличная (тоже видел в рекомендациях), но боюсь - это пока не мой уровень. Плюс думаю все же это проще сделать через какой-то движок (пример Unity), чем чисто на языке python, а тут был план на простом примере реализовать игру
Добрый вечер, не буду врать или отнекиваться, что тут не использовался GPT (будет глупо, тк сейчас почти каждый его использует) - эта статья не исключение. Но могу заверить, что большая часть статьи написано, от руки и текст не исключения (пример можно посмотреть подписание методов, тк одни описанные структурно и красиво, другие на скорую руку - одно предложение)
Также цель статьи другая не в том, чтобы я рассказал о своем коде и какой я молодец, а в том, чтобы кто-то прочитал статью (или хотя бы - заголовок), потом решил, поиграться с проектом и сделал свою игру сапёр с уникальными идеями. Или например: предложил интересную задумку для оптимизации или улучшения кода
Согласен, нейросети действительно могут сгенерировать подобную игру, что печально, но одновременно с этим удивительно.
Моя цель была создать простой и понятный код, который сможет повторить даже новичок, а при возникновении вопросов - обсудить их в комментариях. Да, ИИ может сделать это лучше, но я хотел начать с доступной темы, которую могу объяснить наверняка.
В следующей (и, вероятно, последней) части планирую добавить что-то необычное с использованием нестандартных библиотек - то, что ИИ пока не делает сходу (ну или хотя бы не с двух промтов). Я считаю, что важно не просто получить готовый результат, а разобрать процесс и предложить что-то новое и доступное.
Согласен, как уже писал выше с этим методом проверки я погорячился, возможно, я его не правильно повторил или не так понял, но на данный момент уже изменил код на более лёгкий и понятный, спасибо за комментарий
Честно говоря не видел эту статью, но я не считаю, что это плохо, а наоборот хорошо, так как в самих правилах хабр написано, что если вы видели похожую статью или информацию, не надо сразу говорить, что скопировал или что-то ещё сделал плохое, а нужно просто посмотреть в ней что-то интересное и уникально, чего не было у другого автора, и написать, что не понравилось и что хорошо получилось, чтобы была инициатива продолжать свой труд.
Я думаю, что это касается и моей статьи, потому что я не говорю, что написал что-то гениально или чего не видел мир, а наоборот, что это один из простых способов написать игру, чтобы каждый мог повторить сам или просто запустить мой код для себя.
А так я рад, что в хабр есть люди, которые стремятся улучшить свой код до идеала и минимализма, как человек, который написал игру в 66 строк.
Согласен с замечанием. Действительно, использование 'магических чисел' снижает читаемость кода и усложняет его поддержку, но как писал в сообщении выше увидел этот способ и решил повторить. Всегда можно использовать простой метод и что будет правильным с точки 'чистоты кода', например вот такой:
Min = 1
MAX = 9
if not (Min <= x <= Max) or not (Min <= y <= Max):
print(f"Координаты должны быть от {Min} до {Max}!")
Если говорить честно, то в тиктоке увидел такой метод проверки решил повторить. А если про чатик говорить, то он наоборот всегда пиши самый простой способ.
Полностью согласен, что консольную игру может написать любой, поэтому в заголовке написано игра с нуля версия консоли, насчет GUI, обещаю в ближайшие дни выпустить вторую часть уже как раз с GUI, и буду благодарен, если там тоже оставите комментарий, спасибо!
1 - Насчет ввода извиняюсь, так как при копирование из строчки в строчку не заметил ошибку в тексте, уже исправил, спасибо (вводить нужно одно число)
2 - Этот код пытается отсечь крайние значения count_of_bomb.
Если count_of_bomb меньше 1 (40.5 - 39.5 = 1) или больше 80 (40.5 + 39.5 = 80), то условие срабатывает, и такое значение игнорируется, то есть допустимый диапазон для count_of_bomb — от 1 до 80. Согласен, что проще вот так if count_of_bomb < 1 or count_of_bomb > 80, поэтому в финальном варианте оставлю так.
Спасибо за комментарий и если есть еще вопросы или жалобы пишите
1 - Насчет ООП согласен, поставил тэг, потому что хотел написать сразу две сатьи про игру “Сапёр” (консоль и Gui) и в Gui есть немного от ООП, поэтому и добавил, но согласен, что в этой статье его нет, поэтому уже убрал.
2 – Звучит логично и мне нравиться эта идея, поэтому постараюсь в скором времени поменять, но до вашего комментария я даже не думал об этом
3 – Честно, когда писал пришло в голову множество set(), чтобы не было повторов, но сейчас согласен можно и даже лучше использовать словарь. Исправлю!
Здравствуйте, ну я понимаю, что не открою вам Америку и наверно вы об этом думали, но у меня два предложения: первое - попробуйте начать с более простых игр и без больших библиотек (как pygame), например, как крестики-нолики или камень-ножницы-бумага (тк там относительно очень простые правила). И второе - возьмите готовый или почти готовый проект (разберитесь в нем) и потом с ребенком изменяйте параметры, и чтобы было видно изменение, например, поменял строку с цветом - и задний фон изменил цвет, и так пройтись по большей части кода
Спасибо за вашу внимательность, скорее всего не заметил при переносе кода (уже исправил), но больше удивляет, что за месяц никто не заметил )
Согласен, идея использовать логику сапёра для генерации пещер - это круто, один клик и работает сложные алгоритмы, а BVH и карта высот отлично ложатся на эту концепцию
Ваш стек C++/glew/BVH думаю мощное решение, особенно для масштабирования. На Python с numpy+numba, конечно, проще начать, но для большой игры, как будто не подходит. Когда у вас получиться его реализовать до конца, хотел бы увидеть
Идея с пещерой от первого лица так-то отличная (тоже видел в рекомендациях), но боюсь - это пока не мой уровень. Плюс думаю все же это проще сделать через какой-то движок (пример Unity), чем чисто на языке python, а тут был план на простом примере реализовать игру
Согласен, в основном тут просто листинг кода и чуть-чуть описания, также ссылки на сам проект и прошлые статьи
Добрый вечер, не буду врать или отнекиваться, что тут не использовался GPT (будет глупо, тк сейчас почти каждый его использует) - эта статья не исключение. Но могу заверить, что большая часть статьи написано, от руки и текст не исключения (пример можно посмотреть подписание методов, тк одни описанные структурно и красиво, другие на скорую руку - одно предложение)
Также цель статьи другая не в том, чтобы я рассказал о своем коде и какой я молодец, а в том, чтобы кто-то прочитал статью (или хотя бы - заголовок), потом решил, поиграться с проектом и сделал свою игру сапёр с уникальными идеями. Или например: предложил интересную задумку для оптимизации или улучшения кода
Согласен, нейросети действительно могут сгенерировать подобную игру, что печально, но одновременно с этим удивительно.
Моя цель была создать простой и понятный код, который сможет повторить даже новичок, а при возникновении вопросов - обсудить их в комментариях. Да, ИИ может сделать это лучше, но я хотел начать с доступной темы, которую могу объяснить наверняка.
В следующей (и, вероятно, последней) части планирую добавить что-то необычное с использованием нестандартных библиотек - то, что ИИ пока не делает сходу (ну или хотя бы не с двух промтов). Я считаю, что важно не просто получить готовый результат, а разобрать процесс и предложить что-то новое и доступное.
ахахахах хорошая идея, еще нужно, чтобы донат решал все и можно выпускать игру в стим
Согласен, как уже писал выше с этим методом проверки я погорячился, возможно, я его не правильно повторил или не так понял, но на данный момент уже изменил код на более лёгкий и понятный, спасибо за комментарий
Честно говоря не видел эту статью, но я не считаю, что это плохо, а наоборот хорошо, так как в самих правилах хабр написано, что если вы видели похожую статью или информацию, не надо сразу говорить, что скопировал или что-то ещё сделал плохое, а нужно просто посмотреть в ней что-то интересное и уникально, чего не было у другого автора, и написать, что не понравилось и что хорошо получилось, чтобы была инициатива продолжать свой труд.
Я думаю, что это касается и моей статьи, потому что я не говорю, что написал что-то гениально или чего не видел мир, а наоборот, что это один из простых способов написать игру, чтобы каждый мог повторить сам или просто запустить мой код для себя.
А так я рад, что в хабр есть люди, которые стремятся улучшить свой код до идеала и минимализма, как человек, который написал игру в 66 строк.
Согласен с замечанием. Действительно, использование 'магических чисел' снижает читаемость кода и усложняет его поддержку, но как писал в сообщении выше увидел этот способ и решил повторить. Всегда можно использовать простой метод и что будет правильным с точки 'чистоты кода', например вот такой:
Min = 1
MAX = 9
if not (Min <= x <= Max) or not (Min <= y <= Max):
print(f"Координаты должны быть от {Min} до {Max}!")
Ну или что-то похожие
Если говорить честно, то в тиктоке увидел такой метод проверки решил повторить. А если про чатик говорить, то он наоборот всегда пиши самый простой способ.
Полностью согласен, что консольную игру может написать любой, поэтому в заголовке написано игра с нуля версия консоли, насчет GUI, обещаю в ближайшие дни выпустить вторую часть уже как раз с GUI, и буду благодарен, если там тоже оставите комментарий, спасибо!
1 - Насчет ввода извиняюсь, так как при копирование из строчки в строчку не заметил ошибку в тексте, уже исправил, спасибо (вводить нужно одно число)
2 - Этот код пытается отсечь крайние значения count_of_bomb.
Если count_of_bomb меньше 1 (40.5 - 39.5 = 1) или больше 80 (40.5 + 39.5 = 80), то условие срабатывает, и такое значение игнорируется, то есть допустимый диапазон для count_of_bomb — от 1 до 80. Согласен, что проще вот так
if count_of_bomb < 1 or count_of_bomb > 80
, поэтому в финальном варианте оставлю так.Спасибо за комментарий и если есть еще вопросы или жалобы пишите
Сначала спасибо за комментарий!
1 - Насчет ООП согласен, поставил тэг, потому что хотел написать сразу две сатьи про игру “Сапёр” (консоль и Gui) и в Gui есть немного от ООП, поэтому и добавил, но согласен, что в этой статье его нет, поэтому уже убрал.
2 – Звучит логично и мне нравиться эта идея, поэтому постараюсь в скором времени поменять, но до вашего комментария я даже не думал об этом
3 – Честно, когда писал пришло в голову множество set(), чтобы не было повторов, но сейчас согласен можно и даже лучше использовать словарь. Исправлю!