|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 1
|
||||||
Оцените и посоветуйте как можно улучшить код Крестики-нолики05.03.2023, 19:56. Показов 17398. Ответов 284
Метки нет (Все метки)
Я учусь в 10 классе и для индивидуального проекта мне нужно чтобы вы оценили и как-то посоветовали улучшить код программы крестики нолики на C++. Вот сам код:
0
|
||||||
| 05.03.2023, 19:56 | |
|
Ответы с готовыми решениями:
284
Крестики-нолики, улучшить программу Как оптимизировать данный код игры крестики нолики? Оцените игру крестики нолики (Player vs Bot easy) |
|
|
|
| 15.03.2023, 14:24 | |
|
0
|
|
|
737 / 704 / 110
Регистрация: 29.05.2015
Сообщений: 4,316
|
||
| 15.03.2023, 16:52 | ||
|
Qt. Widget - это имя класса формы, которое фреймворк даёт по умолчанию. При создании нового проекта его можно переименовать. А вот этот заголовок вверху (windowTitle) можно просто поменять, не трогая никаких классов.
Добавлено через 18 минут
0
|
||
|
Just Do It!
|
|||||||
| 15.03.2023, 20:54 | |||||||
|
отлаживаю тут под студию - много чудес разных, типа таких:
0
|
|||||||
|
6315 / 3039 / 1054
Регистрация: 01.06.2021
Сообщений: 11,583
|
|
| 15.03.2023, 21:57 | |
|
XLAT, так а что не получается? Не получается написать движок или арбитр, или что-то другое?
0
|
|
|
Just Do It!
|
||||||||||
| 16.03.2023, 11:04 | ||||||||||
|
всё будет хорошо. Не по теме: мы все умрём, но не сразу... Royal_X, это тема шикарная, тут есть для меня и пайпы и сокеты, в целом - "распределенная обработка данных". что касается самого гуя то я тоже хвастанусь: https://www.cyberforum.ru/post16449797.html Добавлено через 5 минут
гит я не обновляю, потому что щас провожу тесты и они про самый первый коммит. я хочу чтобы прога работала под любым C++17 компилятором и в любой ИДЕ.
0
|
||||||||||
|
Just Do It!
|
|||
| 16.03.2023, 12:08 | |||
|
саму логику игры(её низкоуровневую часть) LLVM и VC++ фейлят. Не по теме:
sourcerer, ну, я не спец по кроссплатформенной разработке, поэтому это на потом. и щас включать в проект разные симейки без конкретного тестирования не вижу профита, ибо скорее всего без должного тестирования они работать просто по дефолту ВЕЗДЕ не будут. для каждого случая там нужна будет своя ветка.
0
|
|||
|
6315 / 3039 / 1054
Регистрация: 01.06.2021
Сообщений: 11,583
|
|
| 16.03.2023, 20:31 | |
|
Вот новая версия моей проги. Усовершенствовал немного интерфейс, гуй теперь не зависает во время работы движка.
Пока движок в разработке и играет не очень глубоко на больших досках. Движку поставил ограничения на глубину: Для 3х3 стоит ограничение 9 полуходов (по сути, это полная глубина для такого размера доски, т.е. больше и не надо) 4х4 - 10 полуходов 5х5 - 8 полуходов 6х6, 7х7 и 8х8 - 6 полуходов 9х9 и 10х10 - 5 полуходов Для остальных размеров - 4 полухода. Если получится оптимизировать лучше, то увеличу глубину. Ещё в планах научить движок играть на время с итеративным увеличением глубины.
2
|
|
| 16.03.2023, 21:44 | ||
|
Не по теме:
Кроссплатформенные система сборки и система контроля версий повышает шанс привлечь людей к разработке. Я, например, мог бы помочь с бэкэндом(серверной частью), но мне неохота ставить винду(я на линуксе) и кодблокс(ненравица он мне).
1
|
||
|
Just Do It!
|
|
| 16.03.2023, 21:46 | |
|
0
|
|
|
Just Do It!
|
||
| 16.03.2023, 21:52 | ||
|
я щас сам подбираю себе образ отсюда: https://www.osboxes.org/virtualbox-images/ и отсюда: https://www.linuxvmimages.com/
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 16.03.2023, 21:56 | ||
![]() У меня запустилось. Royal_X, а чего он так долго думает ? Добавлено через 2 минуты XLAT, зачем такой запал ? Я не вижу какой - то перспективы в этом проекте. И сам не прикасался после удачной разработки своего каркаса.
0
|
||
| 16.03.2023, 22:10 | |
|
0
|
|
|
Just Do It!
|
||||||||
| 16.03.2023, 22:36 | ||||||||
|
выше я уже написал:
1
|
||||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||
| 16.03.2023, 23:01 | ||||
|
Да он и мне интересен, но только как пробник. То есть, делаем минимально рабочий проект, а не : "любой ценой". XLAT, кстати, ты уже пробовал канали/пайпы/трубы ? Должно быть куда проще во многих аспектах. И легче контролировать дочерние процессы. Добавлено через 1 минуту Все больше опыта получу чем от "крестики-нолики" )
0
|
||||
| 16.03.2023, 23:04 | ||
|
Не по теме:
Дай мне подумать, начнем с простого, я набросаю примерно своё видение, пару интерфейсов и нужные инструменты. Ты посмотришь, подумаешь, может что-то предложишь, и, если всё ок, я займусь первой демкой. Управление проектом будет полностью на тебе.
0
|
||
|
Just Do It!
|
|||||||||||||
| 17.03.2023, 00:27 | |||||||||||||
https://github.com/BDOTimer/cf... mallEvil.h ссыль на общий рут: https://github.com/BDOTimer/cf... /tree/main Добавлено через 5 минут а то все модераторы его требуют: Не по теме: я про него так думаю, если проект сможет быть интересным, то энтот симейк сам в нем появится, Добавлено через 21 минуты 1. есть гуй. 2. есть абстрактная задача прокручиваемая в цикле. 3. каким образом наладить между ними мост? я хз, но очевидно нужно разорвать цикл и вставить в точку разрыва гуй, замкнув цикл снова. сделать топорно - не проблема. а вот как это сделать красиво? при этом разраб гуя не должен страдать и зависеть от прихотей разраба задачи. а разраб не должен страдать и зависеть от прихотей разраба гуя.
0
|
|||||||||||||
|
6315 / 3039 / 1054
Регистрация: 01.06.2021
Сообщений: 11,583
|
||
| 17.03.2023, 00:28 | ||
Если будет свободное время, то займусь дальнейшей оптимизацией. Проблема в том, что дерево узлов огромное и ему очень трудно анализировать глубже. Если шахматы это всего лишь 8х8, то в моей программе самый большой размер это 15х15, который содержит 225! позиций. Столько позиций не сможет анализировать даже суперкомпьютер. Очевидно, что нужно оптимизировать. Но оптимизация движка для крестиков-ноликов более трудная задача, чем оптимизация шахматного движка, т.к. там эвристика более точная. SmallEvil, а насколько быстрый твой движок? На каком ты уже этапе?
0
|
||
|
Just Do It!
|
||||||||||||
| 18.03.2023, 11:39 | ||||||||||||
|
всего лишь:
0
|
||||||||||||
|
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
|
|
| 18.03.2023, 11:51 | |
|
XLAT, мои вступительные думки:
Кликните здесь для просмотра всего текста
Сверху рисунка показана примерная структура сервера: Server - главный модуль, занимается первичным обслуживанием внешних подключений. По запросу перенаправляет клиентов к конкретным службам. Service - отдельная (уникальная для сервера) служба, предоставляет специализированные услуги. Например, конкретный тип игры (крестики-нолики, морской бой и др.), общий чат сервера и пр. Задача службы - менеджмент сессий. Session - отдельная сеанс службы (сеанс игры, комната чата и пр.). Про сеанс чуть позже. Это конечно общее поверхностное представление, но раз мы начали снизу (с конкретной игры и ограниченной функциональности), то для того, чтобы не переписывать все подряд при подъеме наверх, желательно иметь общее представление конечного результата, даже если он не будет достигнут. И ориентироваться на него при разоаботке. Сервер в идеале многопоточный. Как минимум - асинхронный. Предлагаю использовать boost (вчастности asio), чтобы велосипедить по-минимуму, плюс кроссплатформенность. В нижней части картинки собственно примерная структура игровой сессии. Это задача минимум. State + Logic - твой условный Арбитр, агрегирует игроков (для крестиков-ноликов двух). Кто конкретно стоит за игроком, буть то бот в дочернем процессе, живой игрок по сети или ардуинка по серийному порту, ему не важно, он знает только об интерфейсе `Player` (не виртуальный, он тут не нужен). Player - инкапсулирует парсер, возможно хранит дополнительную идентифицирующую инормацию и является мостиком для связи парсера и арбитра. Parser - абстракция, за которой скрывается конкретный протокол обмена информации. Его задача - преобразование данных из/в представления иры(арбитра) в сетевое (будь то примитивный текст или двоичные данные, протоколы могут менятся со временем или зависить от конкретного канала). Channel - абстракция канала передачи данных, за которой скрывается конкретное устройство (пайпы, сокеты, порты). Таким образом мы максимально изолируем реализацию логики от реализации клиентов. Немного по реализации. Хотя сама игра пошаговая, последовательная, но, как я уже сказал, сам принцип взаимодействия будет асинхронный. Корутины пожалуй приплетать не будем, я с ними не работал, обойдемся колбэками. Т.е. все взаимодействи через обмен сообщениями, когда приходит ответ - арбитра разбудят, любой запрос(передача данных) неблокирующий. Задача минимум, которой я могу заняться для начала - каркас сессии крестики-нолики: реализация канала связи с процессом для запуска ботов, реализация парсера простенького текстового протокола для ботов. Арбитр у тебя уже есть вроде. Если тебя все устраивает, или почти все, то подумай, внеси правки, сообщи. Тогда согласуем протокол и минимальный интерфейс (у меня есть наброски), мне нужно будет тебе поручить адаптировать арбитра и написать простенький ИИ (хоть рандом, не важно), пока я буду заниматься кишками. Это чтоб собрать минимальную демку, запустить на моей и твоей машине, задать каркас проекта. Если пойдет, можно будет заняться сетью.
1
|
|
| 18.03.2023, 11:51 | |
|
Посоветуйте как улучшить код Посоветуйте, как улучшить код?
Подскажите какую игру можно написать в Делфи, не сильно сложную, не такую, как змейка, крестики-нолики, пинг-понг и т.д? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|