|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 1
|
||||||
Оцените и посоветуйте как можно улучшить код Крестики-нолики05.03.2023, 19:56. Показов 17254. Ответов 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 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 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 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
|
| 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 / 3037 / 1054
Регистрация: 01.06.2021
Сообщений: 11,569
|
||
| 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 | |
|
Посоветуйте как улучшить код Посоветуйте, как улучшить код?
Подскажите какую игру можно написать в Делфи, не сильно сложную, не такую, как змейка, крестики-нолики, пинг-понг и т.д? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.
Решение:
Создан документ со следующими. . .
|
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.
Решение:
Создан документ с единственным. . .
|
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить сумму и количество положительных элементов массива, расположенных в четных строках.
Решение:
Создан документ с. . .
|
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.
. . .
|
|
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные.
. . .
|
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Написать программу вычисления стоимости некоторого количества (по весу) яблок.
Решение:
Создан документ, с табличной частью. . .
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|