Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 28.06.2019
Сообщений: 12

Проблема тетриса

04.07.2019, 16:07. Показов 2776. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, форум. Появлялась идея изучить хотя-бы азы PyGame, принял решение написать Тетрис. Мой код конечно так себе ибо я не знаю как в некоторых случаях лучше делать.
Есть такой проект https://github.com/StarPandaBeg/pythomino, в котором я не могу понять, почему фигуры иногда, чаще всего при их ускорении кнопкой ВНИЗ, проскакивают друг через друга. Я пробовал разные варианты, менял скорость ускорения, менял саму проверку на наличие фигуры, ноо... Надеюсь на подсказку, хотя не особо знаю формат сиего форума, тогда направьте где спросить)

Не по теме:

Пы.Сы. Да, я знаю что в нем еще много багов, но этот раздражает больше всего

0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.07.2019, 16:07
Ответы с готовыми решениями:

Проблема в написании тетриса
Есть поле из 0, в которое вставляется фигура. При попытке передвигать фигуру вручную, в поле появляется "мусор". Подскажите...

Создание тетриса
Здравствуйте. Создаю тетрис нa Sfml и с++ , но уже час ломаю голову над одной фигней. Когда дошел до создания и отображения фигуры в окне...

Программирование тетриса
Ребята , есть попытка создания игры "ТЕТРИС" на VS 2010 . Железо PC не позволяет поздние версии.Но суть вопроса не в этом. Дело в том,...

4
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.07.2019, 16:34
Лучший ответ Сообщение было отмечено StarPanda как решение

Решение

Вчитываться в код нет никакого желания, ибо кровь из глаз от такого бардака.
По проблеме нужно проверить две вещи:
1. Координаты фигуры удобнее хранить не в пикселях, а в номерах ячеек.
2. При ускорении нужно сдвигать фигуру не безусловно на n ячеек, а на минимум из n и расстояния до ближайшей занятой ячейки.
1
0 / 0 / 0
Регистрация: 28.06.2019
Сообщений: 12
04.07.2019, 16:43  [ТС]
Ну код да, а что можно почитать\где узнать как писать лучше?)
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
04.07.2019, 16:56
Цитата Сообщение от StarPanda Посмотреть сообщение
Ну код да, а что можно почитать\где узнать как писать лучше?)
Все, что найдете по качеству кода. Без гугла вспоминаются:
1. Стив Макконнелл, «Совершенный код»
2. Роберт Мартин, «Чистый код»

Информации много, не все может быть понятно.
Конкретно в этом случае — обязательно PEP-8. Имена идентификаторов неконсистентны, огромное количество пустых строк.

1. Имена переменных неудачные.
2. Глобальные переменные — убрать.
3. Длинные методы — декомпозировать.
1
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
11.07.2019, 16:37
Можешь купить(скачать) sublimate text 3, настроить плагины для работы с питон(там есть весьма полезные штучки) и включить проверку PEP-8. И ты поймешь как видят это немного(или нет) подкованные люди.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.07.2019, 16:37
Помогаю со студенческими работами здесь

Программирование тетриса
Ребята , есть попытка создания игры "ТЕТРИС" на VS 2010 . Железо PC не позволяет поздние версии.Но суть вопроса не в этом. Дело в том,...

Управление для тетриса
Кто подскажет, как можно сделать для тетриса передвежение влево, вправо, верх переворот фигури и вниз ускореник.

Создание тетриса на vb6
Здравствуйте. Помогите найти уроки по созданию тетрис на vb6.

Код 3D Тетриса на OpenGl
Программу написал в 2009 году осенью,недели за 3 Это реформированный тетрис 2д,просто добавил и скопировал первый ряд несколько раз,и...

Главный цикл тетриса
Не могу разобраться как снизить скорость итерации, не убивая при этом фпс. void TestApp::UpdateF(float deltaTime) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru