|
0 / 0 / 0
Регистрация: 05.03.2023
Сообщений: 1
|
||||||
Оцените и посоветуйте как можно улучшить код Крестики-нолики05.03.2023, 19:56. Показов 17433. Ответов 284
Метки нет (Все метки)
Я учусь в 10 классе и для индивидуального проекта мне нужно чтобы вы оценили и как-то посоветовали улучшить код программы крестики нолики на C++. Вот сам код:
0
|
||||||
| 05.03.2023, 19:56 | |
|
Ответы с готовыми решениями:
284
Крестики-нолики, улучшить программу Как оптимизировать данный код игры крестики нолики? Оцените игру крестики нолики (Player vs Bot easy) |
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 12.03.2023, 22:39 | |
|
XLAT, спасибо, посмотрим, когда будет готов мой первый "инвалид", отпишусь.
Не обещаю, но сегодня поставил цель - написать такого HellCat_v10
1
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 13.03.2023, 16:03 | ||
|
Пришел твой судный день XLAT.
Реализовывал своего простого бота. Написание заняло немного времени, больше отладка - которая в итоге ни к чему не привела. Как его в таком виде дебажить - тоже вопрос. Все должно работать, но ведет себя как шизофреник. В этом всем есть очень серьезные проблемы, попробую описать : 0 ВАЖНО. Вся измерения и начало отсчета должно быть в единой метрике. - Что это за x,y для точки ? - Доступ к элементам поля, тот же вопрос. Это создает серьезную путаницу. Я почти уверен что ты сам там из-за этого нормально напутал. Предложение : вывести все в x(горизонталь), y(вертикаль) Доступ к элементу поля также operator()(int x, int y)Точка нуждается в, как минимум, толковом конструкторе. 1. Зачем выбраны без знаковые типы (size_t) для многих переменных ? Что бы сделать жизнь веселее ? Предложение : если нет четкой аргументации для без знаковых типов. Использовать знаковые типы. 2. Почему AI имеет открытые поля, фишки, которые устанавливает непонятно кто и где ? Предложение : в классе AI все инкапсулировать. Для установки чего то - испльзовать соответсвующие средства интерфейса (его методы). Которого(интерфейса) пока нет. 3. На счет файлов с данными для арбитра, при отсутствии черного списка или файла с начальным полем - арбитр просто крешится. Но это уже мелочи. Вообщем, сплошное разочарование. Я понимаю, что ты делаешь все это один. Но придется исправлять. ) Нужно вытаскивать своего бота из этой системы/DLL и тестировать в отдельной среде. Чем я и займусь, наверное. Добавлено через 18 минут
1
|
||
|
Just Do It!
|
|||||||||||||||||||
| 13.03.2023, 17:51 | |||||||||||||||||||
|
https://github.com/BDOTimer/cf... /tree/main +1
1. устранен досадный баг: вызов clear() вместо fclear() крашил игру.
2. упорядочена структура двух проектов (теперь они оба зависят от общей директории common) 2. всё действие разворачивается в системе координат ИСКЛЮЧИТЕЛЬНО в первом КВАДРАНТЕ. 2,3,4 это фейл. 3. фейл отлавливать в 2 раза проеще фейл > n вместо фейл >= n && фейл < 0 4. пока я ещё не встретил в этой игре где бы мне понадобились инты. 5. да я слышал в школе - "Дети если не знаете что брать, то всегда берите инты ..." 6. сделайте все ваши расчеты в чем угодно, а результат - 2 числа отошлите в безнаковом виде:
он может там ходить хоть на голове(дык проблема ОБЩЕЙ БЕЗОПАСНОСТИ!) Арбитеру важно что полученная точка прошла ЕГО ВАЛИДАЦИЮ, если не прошла, то дисквалификация игрока или на доработку - устранение именно багов. Добавлено через 1 минуту 1. для этого у него есть поле 2. он может получать фишки от соперника. 3. он может узнать кто ходил первый всё.
оптимизации можно потом да и правильно, что потом. Добавлено через 4 минуты field[2][5] = 'X'; там же целый пример реализованным игроком - который вполне без фейлов играет.
0
|
|||||||||||||||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 13.03.2023, 17:55 | |
|
Не нужно было ничего делать на стороне ИИ.
НИЧЕГО. С этим невозможно работать.
0
|
|
|
Just Do It!
|
|||||||
| 13.03.2023, 18:10 | |||||||
|
остальное можно ЛЕГКО убрать с глаз игроков. и если всё же будет соблазн поглядеть, то на этот случай можно всё затолкать в статик либу. а игроку оставить ТОЛЬКО ТО ЧТО ЕМУ НУЖНО ЗНАТЬ. не делать, а именно знать. делать - пусть сам делает. это будет файлик, как в начале или даже чище. Добавлено через 6 минут вот такой файлик:
только не надо глядеть куда этот файлик втыкается!!! )))
0
|
|||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||||
| 13.03.2023, 18:34 | |||||
|
Им выступают функции dll, к которым должны быть описаны требования. Все остальное, то в каком виде оно есть, мне не нужно. Хотелось бы увидеть : - функцию инициализации/завершения dll - функцию установки фишки на поле. - функцию запроса хода от ИИ Никто ни чего не должен делать ни с полем ни тем более с ИИ. НИКТО! А получается что я вот захочу все написать сам (что гарантированно и будет, уже есть). И что делать ? Что за странные взаимоотношения у клинтской dll с арбитром ? Кто вообще устанавливает размер поля и фишки игроков ? Почему арбитр общается с конфигом про который я ничего не знаю и с полем, а не с моим ИИ ? Добавлено через 1 минуту Добавлено через 2 минуты Не знаю будет ли лучше после твоих правок. Проверю, на явно на некоторое время все это отложу. Добавлено через 8 минут Правильно если бы арбитр и клиент общались простым понятным протоколом. - Инициализация Клиента Арбитром (далее К и А). Создание хотя бы того же AI. Я об этом не думал, что нужно инициализировать первым при загрузке dll. - Установка режима игры. Поле. Фишки на поле. - Обмен ходами. Информирование о ходе противника. Запрос хода ИИ. Все. Добавлено через 1 минуту Почему 1-я четверть ? Это (0, 0) снизу слева ?
1
|
|||||
|
Just Do It!
|
|||||||||
| 13.03.2023, 19:09 | |||||||||
|
а кто напишет его? по сути это написать условие задачи. если игроки чем то недовольны - то сразу тык носом в протокол)) но если конфига нет - то работает дефолт - щас это работает, но можно удалить. а будут требовать полярные координаты или цилиндрические на сфере или цилиндре. ну тогда на флоатах можно сделать.
0
|
|||||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||||||
| 13.03.2023, 19:18 | ||||||||
|
Отсчет идет и он понятен. Порядок важен для тестирования и восприятия человеком. Если у нас О(0, 0) первой четверти, то почему выводится поле совсем по другому ???
До этого буду писать ничем не связанный ИИ и тестировать отдельно. Потом прикручу в dll. Добавлено через 5 минут Это должен зполнять поле через интерфейс (експортируемые функции). ИИ не умеет читать , он только крестики ставит
1
|
||||||||
|
Just Do It!
|
||||||||||||
| 13.03.2023, 20:17 | ||||||||||||
|
ПРАВИЛО №1
согласен? что из этого следует. В обязанности арбитра же входит: 1. Предоставить игроку поле. 2. Сообщить игроку ход соперника. 3. Забрать у игрока ответ. зачем игроку куда то писать? Когда игроку приходит сообщение c инфой о ходе соперника, то Арбитр ГАРАНТИРУЕТ, ЧТО ЭТО ИНФА УЖЕ ДОБАВЛЕНА НА ПОЛЕ. ИТОГО
можно добавить инфу о начальном ходе. но ты можешь и самостоятельно проверить step_enemy на START_STEP START_STEP это константа говорящая что этот шаг никто не делал. ну, можно название для этой константы придумать по лучше шоп доходчивее было, и не захламлять комментами...
0
|
||||||||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||||
| 13.03.2023, 20:45 | ||||||
![]() Все. Не нужно ему ничего никуда добавлять. ИИ сам добавит туда куда ему нужно. Или не добавит. Это его дело. Интерфейс в данном случае, это не AI. То что ты хочешь навязать, никому не нужно. Функции dll - вот интерфейс. Но сами функции так же пишет создатель ИИ. Нужно только описать к ним требования. Добавлено через 7 минут XLAT, если ты будешь идти по этому пути, пытаться создать некий сахарный интерфейс для AI, это будет провал. Никто не захочет в этом разбираться. К тому же когда будет Это стабильное окружение тоже большой вопрос. Все что там написано для Field, у меня абсолютно не используется, кроме доступа к конкретной клетке поля.
0
|
||||||
|
Just Do It!
|
||
| 13.03.2023, 20:50 | ||
|
желающие могут САМИ прочитать конфиг НА СВОЕ ПОЛЕ. ПРОСТО НЕ ИСПОЛЬЗУЙ ШТАТНЫЕ КЛАССЫ!!! в правилах есть только одно: чтобы ответ проходил валидацию. а если у арбитра несколько конфигов? игрок будет переписывать свой загрузчик, и добавлять в длл новую команду с номером конфига? то есть игрок хочет грузить всё что захочет, и это странно))) очень и очень странно. но я уже выше написал, что запускать буду в виртуал-боксе... интерфейс длл открытый - можно на любом другом языке писать свою длл. но речь про то чтобы игрок сосредоточился на самой игре, а не на прикладных задачах. хотя, прикладные тоже интересны...
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 13.03.2023, 20:56 | |||
|
Кому он нужен и какие функции выполняет ? Добавлено через 2 минуты Там кот наплакал тех прикладных задача. Зато будут каждому понятны и эффективны, так как свои.
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 13.03.2023, 21:08 | ||
|
Что вместо какого то левого Конфига - обычная интерфейсная функция, информирующая об игре. Поле и цвет фишек игрока. Потом арбитр может произвольно заполнить поле фишками. И попросить сделать ход, передав ход противника, если он доступен. Дальнейшая попытка информирования о поле и/или добавление фишек будут приводить к полному сбросу AI своих состояний и инициализации новых. В любом случае, я не хочу зависеть ни от типа поля ни от типа фишки ни тем более от каких то конфигов. Не знаю, может многого хочу.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 13.03.2023, 21:09 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 13.03.2023, 21:14 | |||
|
Добавлено через 1 минуту Но кто ж думал что это будет так. Я хотел котенка, маленького такого, пушистого котенка ![]() Добавлено через 43 секунды Ладно, хватит трепа. Попробую описать кодом то, о чем говорю.
0
|
|||
|
Just Do It!
|
||
| 13.03.2023, 21:27 | ||
|
можно заполнить, но раздадутся вопли - тут ничаво не понятно - мы сами заполним))) Добавлено через 12 минут SmallEvil, если короче: мне нужно от тя длл'ошный интерфейс. а я на него настрою арбитра. но сначала посмотрю шоп всего там хватало)) да и с точкой входа надо поглядеть ... на LLVM шоп работало.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||||||
| 13.03.2023, 21:35 | |||||||
|
Пока набросал, но не спеши фарш крутить.
И отпадет надобность в init и release.
1
|
|||||||
| 13.03.2023, 21:35 | |
|
Посоветуйте как улучшить код Посоветуйте, как улучшить код?
Подскажите какую игру можно написать в Делфи, не сильно сложную, не такую, как змейка, крестики-нолики, пинг-понг и т.д? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
сукцессия 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`). . .
|