|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 1
|
||||||
Оцените и посоветуйте как можно улучшить код Крестики-нолики05.03.2023, 19:56. Показов 17827. Ответов 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
|
|||||||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
|
|
| 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
|
|||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
|
|
| 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
|
|||||||||||||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,601
|
||
| 17.03.2023, 00:28 | ||
Если будет свободное время, то займусь дальнейшей оптимизацией. Проблема в том, что дерево узлов огромное и ему очень трудно анализировать глубже. Если шахматы это всего лишь 8х8, то в моей программе самый большой размер это 15х15, который содержит 225! позиций. Столько позиций не сможет анализировать даже суперкомпьютер. Очевидно, что нужно оптимизировать. Но оптимизация движка для крестиков-ноликов более трудная задача, чем оптимизация шахматного движка, т.к. там эвристика более точная. SmallEvil, а насколько быстрый твой движок? На каком ты уже этапе?
0
|
||
|
Just Do It!
|
||||||||||||
| 18.03.2023, 11:39 | ||||||||||||
|
всего лишь:
0
|
||||||||||||
|
6353 / 3524 / 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 | |
|
Посоветуйте как улучшить код Посоветуйте, как улучшить код?
Подскажите какую игру можно написать в Делфи, не сильно сложную, не такую, как змейка, крестики-нолики, пинг-понг и т.д? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|