Мое творчество. Игра Шахматный сапёр

Видео, книги, журналы, научные статьи, (по тематике форума), наше творчество
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Андрей »

Михаил Киселев писал(а):Изменил в версии 1.82 строчку условия отгадывания фигуры на

Код: Выделить всё

if fi+sc+ad+failpl > trunc(random((8*o*(o-count))+17)) then
Работает с пятью фигурами гораздо реальней. Я ранее с пятью фигурами почти не играл, и не думал, что кто-то играть увлечется с 5-ю фигурами- всё таки сложновато для большинства. Поэтому и дурацкость алгоритма для 5-ти фигур только сейчас и вылезает.
Тестирую таймер, нифига ничего не угадывает. Полный ужас!
И я такую версию друзьям разослал.
Плеваться будут.

Очень недоволен.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Михаил Киселев »

Андрей писал(а):
Михаил Киселев писал(а):Изменил в версии 1.82 строчку условия отгадывания фигуры на

Код: Выделить всё

if fi+sc+ad+failpl > trunc(random((8*o*(o-count))+17)) then
Тестирую таймер, нифига ничего не угадывает. Полный ужас!
И я такую версию друзьям разослал.
Плеваться будут.

Очень недоволен.
Странно, я много играл с пятью фигурами, при таком условии у меня угадывал довольно часто. Вот четыре и три фигуры, да надо поправить, как я ранее предложил, чтобы комп угадывал очевидные фигуры.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Андрей »

Хотя, уточняю, опять тут алгоритм в начале партии с трудом угадывает. В конце и середине быстро.

И я так понимаю - то, какую фигуру назвал компьютер при угадывании - ты вообще не планировал делать и не сможешь сделать с твоим уровнем знаний? И второй вопрос - есть ли в этом смысл при текущем алгоритме, или не стоит пудрить мозги себе и людям?
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Андрей »

В общем, внёс поправки Михаила и сделал таймер и надписи, как просил HDV. Завтра будем тестировать по сети. Локальный тест успешен.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Михаил Киселев »

Андрей писал(а):Хотя, уточняю, опять тут алгоритм в начале партии с трудом угадывает. В конце и середине быстро.

И я так понимаю - то, какую фигуру назвал компьютер при угадывании - ты вообще не планировал делать и не сможешь сделать с твоим уровнем знаний? И второй вопрос - есть ли в этом смысл при текущем алгоритме, или не стоит пудрить мозги себе и людям?
Да я не планировал делать какую фигуру назвал комп при угадывании.
При текущем алгоритме лучше не заморачиваться над тем какую фигуру хотел угадать комп.
Алгоритм угадывания фигур хорошо бы вообще переписать. Это думаю, посильная, хотя и долго выполняемая задача. Вот только нужно ли это хотя бы тебе. Если очень нужно могу пожалуй начать писать такой алгоритм, а ты потом можешь его улучшить. Но не особо хотелось бы заморачиваться.

з.ы. Ещё несколько раз поиграл в версию 2.11b с 4- мя и 5-ю фигурами. Угадывает в подавляющем большинстве случаев. Правда один раз с пятью фигурами, когда комп уже открыл две фигуры, третью - ферзя не мог отгадать, но опять же, все было не так уж однозачно, что это ферзь, хотя если бы я угадывал выбрал бы ферзя.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Андрей »

Михаил Киселев писал(а): Если очень нужно могу пожалуй начать писать такой алгоритм, а ты потом можешь его улучшить. Но не особо хотелось бы заморачиваться.
Пока я не вернул исходники, можно не писать...

Я вот подумываю о том, чтобы поставить компьютеру полностью честную игру, всё же задача не совсем тривиальная, и поэтому имеет интерес пожалуй. Но теперь со временем у меня не густо.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Михаил Киселев »

Обнаружил, что комп в начале игры может прилипнуть к одной фигуре и долго ее не угадывать.
Лечение условие
(fi+sc+ad>trunc(random(10*(o)+17)))
Меняем на
(fi+sc+ad>trunc(random(15*(o)+17)))
И строку
failpl:=failpl+8;
На
failpl:=failpl+8+2*o;
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Андрей »

Михаил Киселев писал(а): Обнаружил, что комп в начале игры может прилипнуть к одной фигуре и долго ее не угадывать.
Вот это у меня точно было! Когда и написал о неугадывании.
Аватара пользователя
Андрей
Архитектор
Сообщения: 7305
Зарегистрирован: 06 май 2015, 14:10
Откуда: Чехов
Благодарил (а): 517 раз
Поблагодарили: 462 раза
Контактная информация:

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Андрей »

Михаил Киселев писал(а):Обнаружил, что комп в начале игры может прилипнуть к одной фигуре и долго ее не угадывать.
Лечение условие
(fi+sc+ad>trunc(random(10*(o)+17)))
Меняем на
(fi+sc+ad>trunc(random(15*(o)+17)))
И строку
failpl:=failpl+8;
На
failpl:=failpl+8+2*o;
Эти изменения не помогли. 3 раза подряд не угадывает Ферзя сразу после правки и компиляции. Понятно, что компу без разницы какую фигуру открывать, т.к. он не анализирует битые ей поля. Если я ошибаюсь - прошу поправить и показать, где в коде анализируются поля, которые бьёт угадываемая фигура.
Михаил Киселев
Сообщения: 720
Зарегистрирован: 22 дек 2017, 13:55
Благодарил (а): 154 раза
Поблагодарили: 67 раз

Re: Мое творчество. Игра Шахматный сапёр

Сообщение Михаил Киселев »

Андрей писал(а):
Эти изменения не помогли. 3 раза подряд не угадывает Ферзя сразу после правки и компиляции. Понятно, что компу без разницы какую фигуру открывать, т.к. он не анализирует битые ей поля. Если я ошибаюсь - прошу поправить и показать, где в коде анализируются поля, которые бьёт угадываемая фигура.
Учитывание потенциальных битых и пустых полей происходит в процедуре условия -
If (c1>'x') or (c1='k') then
begin
До условия
if fi+sc+ad+failpl > trunc(random((8*o*(o-count))+17)) then
Думаю, в этой части все приплюсовывания к переменной ad лучше увеличить втрое, а ещё лучше на переменную (o-count)
Например ad:=ad+2; заменить на ad:=ad+2*(o-count);
Ответить