|
0 / 0 / 0
Регистрация: 21.08.2017
Сообщений: 6
|
||||||
Тетрисные гонки в консоли06.01.2018, 04:10. Показов 4947. Ответов 14
Метки нет (Все метки)
Доброго времени суток. Пишу курсовую по языку C#. Тему решил выбрать Консольные гонки, такие как были в тетрисе. Помогите разобраться. Программа рабочая, но во время выполнения вылетает за границы массива, и лагает в отображении. Я использовал потоки и массив чар. Вопрос в следующем, где моя ошибка. Мне нужно чтобы машинки падали вниз. Как правильно это сделать? Помогите пожалуйста. Я только учусь и не совсем могу понять где я допустил ошибку. Помогите. Не судите строго. Я начинающий программист.
Вот мой код.
Переменные с y1,x1 по y42,x42 отвечают за машинку игрока, y43,x43 по y84,x84 за машинку, которая падает вниз сверху.
0
|
||||||
| 06.01.2018, 04:10 | |
|
Ответы с готовыми решениями:
14
Автомобильные гонки в консоли - как задать разную скорость для каждого из них 2D гонки задание на курсовую игра гонки |
| 06.01.2018, 07:31 | |
|
0
|
|
|
44 / 45 / 41
Регистрация: 28.06.2017
Сообщений: 133
|
|
| 06.01.2018, 16:13 | |
|
Не по теме: My eyes are bleeding У Вас не возникало чувства, что сама архитектура "немного в принципе неправильная"?
0
|
|
|
0 / 0 / 0
Регистрация: 21.08.2017
Сообщений: 6
|
|
| 06.01.2018, 16:33 [ТС] | |
|
Возникало. Так подскажите в каком направлении мне двигаться. Какую архитектуру подобрать "правильную"? Я же написал, что только учусь. Пока я так вижу.
Если убрать метод падения, то машина игрока реагирует на управление стрелочками. А если все вместе запустить, начинается салют. Помогите пожалуйста. Добавлено через 2 минуты Я думаю, что проблема с массивами или неправильной передачи в поток.
0
|
|
|
Wanna be serious
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
|
|||||||||||||||||||||
| 06.01.2018, 17:21 | |||||||||||||||||||||
|
Ручной труд ныне не в моде.
Бесконечные:
Примените пока циклы и массивы, там где это нужно, а там видно будет.
1
|
|||||||||||||||||||||
| 06.01.2018, 17:58 | |
|
Не по теме: Меня поражает ваше трудолюбие...
0
|
|
|
0 / 0 / 0
Регистрация: 21.08.2017
Сообщений: 6
|
|
| 06.01.2018, 19:10 [ТС] | |
|
Метод carplins-устанавливает координаты машины игрока внизу поля
Метод carplus-рисует машину игрока задаными символами Метод carview-выводит на экран машину игрока Метод pereshkoda-устанавливает координаты машины препятствия Метод pereshkodaplus-рисует машину препятствие Метод perview-выводит на экран машину препятствие Метод leftarrowevent и right-перезатирает машину игрока при нажатии стрелки влево или вправо Метод falling-отвечает за движение машины препятствия Bespridelschic, спасибо за совет. Буду пробовать.
0
|
|
|
10 / 10 / 7
Регистрация: 27.12.2017
Сообщений: 72
|
|
| 07.01.2018, 02:00 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 21.08.2017
Сообщений: 6
|
|
| 07.01.2018, 04:33 [ТС] | |
|
Можно подумать, что все форумчане сразу начали писать идеальный код без ошибок и родились профессионалами. Такие сообщения и я могу написать. А вот дать дельный совет может не каждый. Легко унизить человека. А вот дать дельный совет не каждый может. Это все таки раздел для начинающих.
0
|
|
|
|
|
| 07.01.2018, 05:13 | |
|
Pavlbab,
не, ну ты сам напросился... 1. отсутствие использование массивов. Хотя для char определить додумались, значит о их существовании знаете. 2. отсутствие циклов. Местами есть, но добрая часть кода унылая копипаста. 3. полное отсутствие обьектов. То что вы все обернули в статичесткий класс за ООП не считается. 4. У вас используется дополнительный поток, но по синхронизации полный ноль. Что будет, если после отрисовки 50% "фрейма" прилетит сдвиг от юзера? 5. "я так вижу" в программировании не катит, вы не художник. 6. >>проблема с массивами или неправильной передачи в поток. Проблема в (цитата): что сама архитектура "немного в принципе неправильная". Вам нужно отдельно определить class Машинка с ее позицией и методами управления, отдельно -- class Препятствие. По таймеру/циклу -- смещать все это добро и проверять, не столкнулась ли машина с препятствием. Читаем про lock. И уже отдельный метод, которы будет тупо отрисовывать все. 7. Даный форум -- не клуб подержки начинающих неумех, особенно студентов, которые вместо консультации с преподователем, ищут легкие пути в интернете. Не нравится что плохо отзываются про ваш код? Велком ту риал ворлд. Мне и сейчас в лицо говорят, что "это хрень", не вижу смысла обижатся. 8. Вообще, сама идея гоночек на консоле -- унылая задача. Тот кто додумался до даной "задачи", откровенно говоря фигово придумывает образовательные задачи: ни тебе работы с БД, ни с файлами, ни с удалеными методами, ни с модульностью. Многопоточность тоже используется так-себе. 9. И повторю вышесказаное мной -- у вас отличное трудолюбие. Лично я, при написании первой "игры", заметив копипасту одного обработчика на 36 кнопок, полез в гугл. Про растановку их "вручную" даже и не думал, т.к. про циклы знал еще с лицея. И подозреваю что все остальные форумчанены ищут решения, а не городят код.
1
|
|
| 07.01.2018, 06:47 | |
|
Не по теме: Pavlbab, не обижайтесь на форумчан. Люди начали воспринимать в штыки подобные вопросы, потому что их большая часть от общей массы. Каждый напишет хрен пойми что, и свято уверен, что другие это тоже понимают, или будут разбираться в писанине. А в реальности, при виде такой вот портянки, не хочется даже смотреть что там ниже, и как оно все работает.
0
|
|
|
0 / 0 / 0
Регистрация: 21.08.2017
Сообщений: 6
|
||||||
| 07.01.2018, 17:26 [ТС] | ||||||
|
Все спасибо за советы. Я пытаюсь переделать свою программу. Пока написал наново. Возможно так будет лучше? Посмотрите пожалуйста.
Я не обижаюсь на форумчан. Если бы я был обидчивым, я бы не написал и не попросил бы помощи. Я готов к критике. Ведь я хочу научиться правильно программировать. Еще раз спасибо за помощь и советы.
0
|
||||||
|
Wanna be serious
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
|
|||||||||||||||||||||
| 07.01.2018, 18:03 | |||||||||||||||||||||
|
Теперь гораздо лучше. Но можно сделать ещё лучше. Например класс Cars:
0
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 21.08.2017
Сообщений: 6
|
||||||
| 21.01.2018, 14:19 [ТС] | ||||||
|
Вообщем долго разбирался. И вот что получилось.
0
|
||||||
|
Wanna be serious
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
|
|
| 21.01.2018, 15:40 | |
|
Pavlbab, большую часть. Все те же проблемы - отсутствие циклов и массивов.
0
|
|
| 21.01.2018, 15:40 | |
|
Помогаю со студенческими работами здесь
15
Гонки в 2Д Гонки Гонки Гонки Гонки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|