|
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
|
||||||
Программа крестики-нолики27.07.2019, 12:53. Показов 7141. Ответов 57
Метки логические игры (Все метки)
Здравствуйте, дорогие форумчане.Представляю вашему вниманию свою попытку разработать на Паскале искусственный интеллект для игры крестики-нолики. Программа играет не идеально, но некоторое сопротивление оказать все же способна... Надеюсь, вам понравится. P.S. Управление осуществляется с помощью клавиатуры:
С уважением, Аксима
1
|
||||||
| 27.07.2019, 12:53 | |
|
Ответы с готовыми решениями:
57
Крестики-нолики Крестики-нолики NxN Крестики-нолики |
|
2374 / 776 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
|
|
| 02.08.2019, 13:38 | |
|
0
|
|
|
Модератор
10451 / 5746 / 3409
Регистрация: 17.08.2012
Сообщений: 17,482
|
|
| 03.08.2019, 07:43 | |
|
ValentinNemo, так, навскидку:
Далее копаться пока не стану, и лень, и незачем. Доберусь до TP, ещё гляну. Неважно совершенно, работает у Вас программа или нет. И в самом деле, ошибки исправьте, а потом уж выкладывайте, а то нехорошо как-то получается.
0
|
|
|
2374 / 776 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
|
|
| 03.08.2019, 20:09 | |
|
Cyborg Drone. Посвящаю вас в историю вопроса.
Крестики-нолики существуют в двух видах. В виде программы Аксима на ТP и в виде программы приложения под Lazarus/Free Pascal от того же Аксима, но в графической оболочке, которая сделана мной, потому что мне легче переписать программу под GUI, чем мучиться с консольной графикой TP и даже Free Pascal. Переписывая программу под GUI я сделал облегчение прежде всего самому себе. Мне хотелось попробовать игру, но я не хотел связываться с установкой TP. (Разрешение на использование своего кода Аксима мне предоставил. Это на тот случай, если у вас будет подгорать по поводу использования чужого кода. Если у кого-то, озабоченного авторскими правами тоже будет подгорать, то в программе приложении на Lazarus четко указано авторство кода - Аксима. ) Однако то ли зависть людей заела от работоспособного кода, то ли курили, что то не то, но набежали флудильщики и троли и засрали обе темы. Я еще раз говорю, связываться с Turbo Pascal у меня нет желания. И исправлять код на TP я тоже не буду, а то потом опять набегут озабоченные троли и будут набрасывать "говно на вентилятор" по поводу использования чужих кодов. Это вотчина Аксима. Аксима и ValentinNemo - это не два ника одного человека, это два отдельных человека, не связанных друг с другом. Моя ошибка, это то, что я опубликовал код приложения "крестики-нолики" в разделе Lazarus, а нужно было опубликовать этот код в теме, которую открыл Аксима. Обращайтесь к Аксима, пусть исправляет свой код на TP. Если Аксима не желает вам отвечать, то это его решение.
0
|
|
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||||
| 04.08.2019, 10:45 | ||||||
|
Аксима,
Основная ошибка тут.
2)Вы уверены, что программа не будет перемещаться в другие папки. Если её перемещать, то нужно ещё и модуль графики за ней тянуть. Чтобы этого не делать графика подключается в саму программу c помощью {$L <Filename>}
1
|
||||||
|
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
|
|
| 08.08.2019, 21:19 [ТС] | |
Здравствуйте,Извините, что так долго не отвечал. В последние две недели практически не было ни минуты свободного времени. Но я так рад видеть всех вас после долгого отсутствия! ValentinNemo, вашу программу посмотрел, и она мне понравилась. Теперь я имею представление о том, как выглядела бы моя программа, если бы я ее писал на Delphi (Lazarus - это ведь среда, которая позволяет разрабатывать Delphi-подобные приложения, или я ошибаюсь?). Constantin Cat, ваше замечание с благодарностью принимаю. Если удастся выкроить хоть немного времени, выложу вторую, исправленную версию программы крестики-нолики. Не хочется оставлять такой большой проект (над первой версией программы трудился почти месяц) недоделанным. С уважением, Aksima
1
|
|
|
2374 / 776 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
|
|
| 09.08.2019, 00:20 | |
|
Аксима, спасибо за положительный отзыв. Стараюсь потихоньку. Тут множество событий из-за вас произошло. Набежали троли и говнофлудильщики и начали меня люто пинать за то что я использовал ваш код в своей работе.
Во первых, я получил от вас разрешение на использование вашего кода, во вторых в самой программе указан настоящий автор - Аксима. Уж прошу прощения, что окунаю вас в это форумное говно. С удовольствием посмотрю на ваши другие работы, а может и снова сделаю для вас оболочку, даже не смотря на то, что исходный код может глючить. Я не профессионал, но программирование мне нравится. Если есть желание поделиться своими работами снова - посмотрю с удовольствием. (Месяц на программирование маленькой игры - это много. Могу сказать, что программирование вам достается тяжелым трудом.) Одна гигантская и важная просьба - откажитесь от использования Turbo Pascal несмотря на то, что вы к нему привыкли, а работайте сразу в IDE Lazarus. Lazarus поддерживается сообществом программистов, а Turbo Pascal - нет. Когда вы захотите выйти за рамки консольных программ, вы сразу ощутите разницу. Не надо боятся сложную среду, на практике она оказалась гораздо проще, чем DOS программы. Можно спокойно делать и простые консольные программы и сложные с GUI оболочкой. Lazarus бесплатный, быстрый, очень удобный и это почти копия Delphi. Коды и компоненты в Lazarus на 99% совпадают с Delphi. Научитесь работать в Lazarus, считай научились работать в Delphi. Я лет 20 назад хотел научиться программировать в Delphi, но когда узнал цену на лицензионную копию отказался от этой затеи. Зато теперь благодать - есть бесплатный и кроссплатформенный Lazarus. Единственная проблема Lazarus/Free Pascal - это то, что в консольных программах плохо поддерживается кириллица, но это можно преодолеть.
0
|
|
|
Модератор
|
||
| 09.08.2019, 17:54 | ||
|
-- Искренне ваш, Тролль, говнофлудильщик и лютопинатель
1
|
||
|
2374 / 776 / 561
Регистрация: 15.01.2019
Сообщений: 2,394
|
|||
| 09.08.2019, 19:06 | |||
Могу на чем угодно поклясться, что даже в мыслях не причислял вас к троллям. А так вы сами об этом сказали (вас за язык никто не тянул), теперь я буду знать кто стоит за работой троллей и флудильщиков. Прискорбно ..., но не удивительно. Я часто встречался с таким явлением на форумах. Спасибо за откровенность, но это означает, что каждый раз когда начнется атака троллей я буду вас тревожить с вопросом "Кто заказал?" и "По какому поводу?". Послезавтра они могут нанять троллей... если им не нравиться что я питаю расположенность с свободному программному обеспечению Lazarus, а не Delphi. Поезд удачи для Delphi давным-давно ушел. Этот продукт будет постепенно умирать. Превратиться в универсальную мультиязычную IDE, как это сделали другие компании, делающие продукты для программистов, им гордыня не позволит. У меня есть бесплатная среда от Microsoft для C# и мне этого хватает за глаза. (я ей редко пользуюсь, - на моем компе она с трудом работает и часто крашится.)
0
|
|||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|||||||
| 09.08.2019, 19:42 | |||||||
Сообщение было отмечено Аксима как решение
Решение
)Вместо ReadKey - написал GetKey - упрощенный аналог ReadKey. Его достоинство, что в регистре ah, передается скан-код клавиши(номер клавиши на клавиатуре). Он всегда одинаков для всех раскладок(RU, EN, и т.д.). ImagePut - выводит изображения с переводом координат массива в координаты экрана. Если Вам нужно будет, что-то маштабировать, вносите изменения только сюда. Создание изображений: я указывал - ярко белый для всех, если захотите перед рисованием фигурки, укажите свой, так он и будет выводится. DbgKey - это отладочная подпрограмма, если содержимое закоментированно, то это просто "пустышка". Но если нужно, что-то отследить, помогает при отладке, закоментировали - не мешает. ![]() С учетом того, что нет многократной перерисовки(занимает меньше времени), можно сделать более "умный" ИИ. А, разработку ИИ(AIStep), оставляю Вам. ![]() Для этого посмотрите в сети Рэндзю, показаны "вилки-ловушки" и прочие "фокусы" в игре. Ну ещё сюда загляните, указанные книги, правда на английском, но просто об элементарном. На картинке показано как влияет константа "M" на отображаемую информацию(слева на право: 1,3,5 и 7). ps:Не верьте никому: простая и четкая логика PASCAL, позволяет сформировать алгоритм, обкатать его, а потом перевести на любой язык, даже с GUI.
2
|
|||||||
|
1068 / 989 / 153
Регистрация: 10.08.2015
Сообщений: 5,394
|
||
| 10.08.2019, 11:41 | ||
|
Я уж не говорю что ТП уже настолько морально устарел, что А не работает в современных ОС. Б Скучен из-за своей архаичности Что вам мешает сделать проект в лазарус и писать на нормальном! объектном паскале? Пусть... Можно изнасиловать консоль с помощью винапи... для извращенцев, коих тут достаточно. Зато можно закинуть исходники на гитхаб и разрабатывать суперпупермегаигру совместно... это я вам про планку, если кто захочет заикнуться про обучающий аспект. ну и асм... 5 строчек кода, чтоб положить болт на свое поделие, ради чего?
0
|
||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||
| 10.08.2019, 14:53 | ||
|
Мне нравится ТР. Тот или иной язык, я выбираю, в зависимости от целесообразности решения той или иной задачи! Городить ООП, для того, чтобы сложить два числа - эквивалентно использованию бомбы, для забивания гвоздей. Для этой задачи, ТР как язык обкатки алгоритма вполне подходит, а уже потом можно портировать куда угодно. То, что я использовал ассемблер, я уже писал : в этом ТР кривой CRT(дает ошибку деления на ноль). Надеюсь у ТС, этот модуль нормальный и он может использовать ReadKey вместо GetKey.
1
|
||
|
1068 / 989 / 153
Регистрация: 10.08.2015
Сообщений: 5,394
|
||||
| 10.08.2019, 18:44 | ||||
|
0
|
||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||
| 10.08.2019, 22:04 | ||||
|
Вот это не смешно. Я вам уже писал: Но: Есть задача - под эту задачу выбираю нужный ЯП, который позволит решить её без лишних делодвижений. Для задачи "ХО", ТР в самый раз, чтобы настроить "мозги" ИИ. А дальше портируйте его куда угодно. ps:перестаем заниматся флудом. А, забыл, есть ещё Перл и РНР, но я не считаю себя в них "гуру", по этому читаю, но не лезу с коментами.
0
|
||||
|
1068 / 989 / 153
Регистрация: 10.08.2015
Сообщений: 5,394
|
||
| 11.08.2019, 10:25 | ||
|
Не по теме: вот интересно а на пхп и асме вы также гениально творите? я не обсуждаю людей или их заслуги. мне это не интересно, я вижу плохой код и говорю, что он плохой. и делаю это просто потому, что вы строите из себя гуру. и кто-то из начинающих может наткнуться на ваши перлы и принять их за чистую монету.
0
|
||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
|
| 11.08.2019, 11:39 | |
|
0
|
|
|
1068 / 989 / 153
Регистрация: 10.08.2015
Сообщений: 5,394
|
||
| 11.08.2019, 12:29 | ||
|
0
|
||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||
| 11.08.2019, 13:25 | ||||
|
Немнюгин С.А. Turbo Pascal, урок 6 Гусева А.И. Учимся программировать- Pascal 7.0. Задачи и методы их решения, тема 11 Думаю, даже этих трех книг достаточно, чтобы понять, что там написано. n=30;{размер ячейки в пикселях} m=5;{число пропускаемых пикселей с краев} k=15;{размер поля в клетках т.е. 15х15} остальные константы для функции GetImage, координаты захватываемого изображения.
0
|
||||
|
1068 / 989 / 153
Регистрация: 10.08.2015
Сообщений: 5,394
|
||||
| 11.08.2019, 14:33 | ||||
|
Не по теме: впрочем во времена доса как раз игроделие и держалось на одиночках, но ведь сейчас не времена доса и запросы как бы совсем другие... вот вам и а + бэ вы опасный человек и пишете опасные программы. взяли память в одном месте, отдали в другом, хорошо хоть отдали. и все потому что боитесь писать нормальный код. вы посмотрите самые элементарные игры от микрософта и сравните со своим поделием. даже не в плане кода, а в плане функционала, а он как раз и определяет код.
0
|
||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||||||||||||
| 11.08.2019, 16:05 | ||||||||||||||
|
Все завязано на трех константах:
В моей эл.библиотеке 17500+ файлов, если убрать прилагаемые CD и разделить на 16-ть, т.к. одинаковые книги (формат pdf и djvu), могут быть в разных форматах, могут быть в разных переводах(вместе с оригиналом) и находится в разных соответсвующих темах. В любом случае число не маленькое.
0
|
||||||||||||||
|
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
|
||||||||||||||
| 11.08.2019, 16:17 | ||||||||||||||
|
Все завязано на трех константах:
В моей эл.библиотеке 17500+ файлов, если убрать прилагаемые CD и разделить на 16-ть, т.к. одинаковые книги (формат pdf и djvu), могут быть в разных форматах, могут быть в разных переводах(вместе с оригиналом) и находится в разных соответсвующих темах. В любом случае число не маленькое. Добавлено через 12 минут Модеры, уберите дубль. Спасибо!
0
|
||||||||||||||
| 11.08.2019, 16:17 | |
|
Помогаю со студенческими работами здесь
40
Крестики нолики Крестики-нолики Крестики-нолики Крестики-нолики Крестики-нолики в графическом режиме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|