Змейка на КуМире | проект за 3 часа #1
1 0 1
Ещё не одного интересного поста в журналыче! 500 рублей могут сгореть! Так-то спишите написать интересный пост, который мне понравиться. Подробности тут.
А я открываю новую рубрику или вспоминаю старую «проект за 3 часа». Такие проекты будут очень маленькие и интересные. Я буду ставить таймер и работать над проектом ровно 3 часа (стараясь ни на что не отвлекаться). Если я не успеваю, то я пишу в посте о том, что я не смог и вы можете мне придумать и написать наказание. Одно из них я исполню. А если успеваю, то я молодец и жду от вас идей.
Три часа ровно на проект с полностью его реализацией. Проекты будут на таких языках программирования: КуМир. Python, Golang.
В комментариях вы можете мне давать идеи для проектов, и я буду стараться их реализовать!
Я буду комментировать и объяснять свои действия. Полностью рассказывать о этапах.
Так же для чистоты эксперимента в своём тгк я буду писать: «Начало» и «Конец». «Начало» - я сел за проект, время пошло. «Конец» - время вышло.
Постараюсь каждую неделю писать посты и делать такие проекты.
Этот пост разогревающий и я решил взять, что-то лёгкое на пробу формата! Пишите ваши комментарии, идеи для следующих проектов и ставьте стрелочки вверх!
Проект за 3 часа! Поехали!
Сегодня я постараюсь создать игру «змейка» на КуМире» за 3 часа.
Этап 0: “START”
Самое сложное оказалось сесть и сделать. Всё время что-то отвлекало...
Я решил вспомнить механизм и сыграть в змейку. После того, как я вспомнил механизм, я стал писать код. Музыка врублена, КуМир открыт, в блоге «Начало», таймер пошёл. Время 19:54
Этап 1: “НАЧАЛО”
Мои мысли: «Змейку на КуМире я сделаю!»
Я спокойно сделал алгоритм «начало». Теперь нажимая на пробел, вы начинаете игру. Такое я уже делал и это было самое лёгкое.
алг начало
нач
новый лист(600, 400, голубой)
перо(1, чёрный)
шрифт("Arial", 48, да, нет)
надпись(145, 200, "Игра змейка")
перо(1, серый)
шрифт("Arial", 24, нет, нет)
надпись(138, 250, "нажмите пробел для начала")
цел клавиша
нц
если сигнал клав то
клавиша := код клав
выбор
при клавиша = КЛ_ПРОБЕЛ: выход
всё
всё
кц
игра
кон
Этап 2: “ИГРА”
С начало шло всё как по маслу. Я сделал зелёное поле и серый заборчик. Создал змейку. Я думал сделать её круглой, но столкнулся с проблемой увлечения и решил остановиться на прямоугольнике. После пробы пройтись по полю прямоугольником, я заметил, что оказывается у фигур есть обводка и она серая. Змейка после своего каждого хода оставляла след. Был вариант каждый раз обновлять поле, но мне было лень. По этому поле стало серым, а бордюры зелёным. В принципе цвет ни на что в этой игре не меняет.
алг игра
нач
новый лист(600, 400, серый)
кисть(зелёный)
прямоугольник(0, 0, 600, 20)
прямоугольник(0, 0, 20, 400)
прямоугольник(600, 600, 580, 0)
прямоугольник(0, 400, 600, 380)<br>
Я научил ходить нашу змейку и теперь при нажатии клавиш вверх, вниз, вправо, влево прямоугольник начинал перемещаться. Автоматически он ещё не ходил (и не будет).
нц
если сигнал клав то
клавиша := код клав
кисть(серый)
прямоугольник(х, у, х1, у1)
выбор
при клавиша = КЛ_ВВЕРХ: у := у-10
у1 := у + 30
при клавиша = КЛ_ВНИЗ: у := у+10
у1 := у + 30
при клавиша = КЛ_ВПРАВО: х := х+10
х1 := х+10
при клавиша = КЛ_ВЛЕВО: х := х - 10
х1 := х+10
всё
кисть(красный)
прямоугольник(х, у, х1, у1)
После этого я сделал яблочки. Яблоко чёрного цвета. Яблоко появляется в рандомном месте.
После того, как его съедят, оно заново появляется. Но у меня немного неправильно работает поиск яблок. То есть иногда вы можете не доехать, до еды и она уже появляется в другом месте. На карте у вас два пятна, а по факту только одно. Другое считается съеденным.
После этого я написал, что если врезаться в поле, то игра окончена. И сделать алгоритм, который пишет, что всё. «Игра окончена».
если у <= 20
то выход
всё
если х <= 20
то выход
всё
если у1 >= 380
то выход
всё
если х1 >= 580
то выход
всё
если х >= 570
то выход
всё
алг конец
нач
новый лист(600, 400, чёрный)
перо(1, красный)
шрифт("Arial", 48, да, нет)
надпись(125, 200, "Игра Окончена")
кон
Этап 3: “РОСТ ЗМЕЙКИ”
Над этой задачей я бился больше всего. Я не смог решить проблему «Как сделать так, чтобы моя змея росла». Я взбесился и написал в блоге «КОНЕЦ». А это значит, что я закончил.
У меня ещё был целый час и пять минут. Я ими не воспользовался.
Время, когда я закончил работу 21:53
Итог: я не смог сделать игру из-за ограничения в языке.
Наверное, я не справился со своей задачей и мне надо выполнить от вас наказание, но давайте так. Если вы сможете сделать за 3 часа змейку на КуМире лучше меня, то я выполняю ваше наказание, если нет, то я счастливый делаю проект за 3 часа из комментариев.
Но ваша версия змейки должна быть опубликована в Журналыче, если она будет опубликована в другой группе, то я не принимаю ваше решение и не исполняю от вас наказание.
З.Ы. Я не могу загрузить фото, сайт не даёт. Если копировать фото, то всё норм, а если загружать с компа, то сайт не грузит её. Простите этот пост без фото =(
ЗЗ.ЫЫ. Файл с моей игрой не прикрепляется. Но я его выложу в своём тгк, переходите туда!
P.S. Пишите свои комментарии, ставьте стрелочки, предлагайте идеи. Всё по классике!
ПОдписывайтесь на меня в Telegram: Kotik Blog
Молодец, но недоделка
Пофикшено.