Мое творчество. Игра Шахматный сапёр
-
- Архитектор
- Сообщения: 7387
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 535 раз
- Поблагодарили: 462 раза
Re: Мое творчество. Игра Шахматный сапёр
Методом эксперимента я для себя подобрал число, при котором угадывание для 5 фигур выглядит более реальным, это число 267 вместо 17. Пишу только в целях тестов. Понятно, что тупость этого алгоритма не заштопать никакими переменными. Компьютер, чтобы угадать фигуру, не обстреливает дальние клетки или клетки удара Коня. Он не делает вообще ничего от ИИ. Только настроение компа и число которое он соизволит выкинуть. На сложность расстановки или угадывания ему плевать.
-
- Архитектор
- Сообщения: 7387
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 535 раз
- Поблагодарили: 462 раза
Re: Мое творчество. Игра Шахматный сапёр
Шахматный сапёр v2.10b
Добавлено ограничение времени на ход, одинаковое для обоих соперников, если в начале игры в поле таймера стоит "0", ограничение не используется (бесконечное время).
Таймер каждую секунду визуально уменьшается у того, чей ход. Последние 5 секунд до нуля компьютер пикает (или тикает).
При достижении таймером 0, если юзер не успел сделать ход, он переходит к сопернику,
аналогично - для соперника.
После возврата хода просрочившему игроку, компьютер помнит, если ему (игроку) до этого нужно было угадать фигуру или открыть ряд и не даёт делать другие действия.
+ поправлен глюк при локальной игре, что после открытия ряда, ход не возвращался к компьютеру.
+ тоже изменено условие угадывания фигуры, как написал выше Михаил Киселев
Добавлено ограничение времени на ход, одинаковое для обоих соперников, если в начале игры в поле таймера стоит "0", ограничение не используется (бесконечное время).
Таймер каждую секунду визуально уменьшается у того, чей ход. Последние 5 секунд до нуля компьютер пикает (или тикает).
При достижении таймером 0, если юзер не успел сделать ход, он переходит к сопернику,
аналогично - для соперника.
После возврата хода просрочившему игроку, компьютер помнит, если ему (игроку) до этого нужно было угадать фигуру или открыть ряд и не даёт делать другие действия.
+ поправлен глюк при локальной игре, что после открытия ряда, ход не возвращался к компьютеру.
+ тоже изменено условие угадывания фигуры, как написал выше Михаил Киселев
-
- Архитектор
- Сообщения: 7387
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 535 раз
- Поблагодарили: 462 раза
Re: Мое творчество. Игра Шахматный сапёр
Найден глюк версии 2.10b (привнесён недавно, свойственен только этой версии).
При победе человека открытием ряда, комп продолжает атаковать.
Глюк поправлен в версии 2.11b
+ найден и добавлен звук аськи в чат (для входящих сообщений)
При победе человека открытием ряда, комп продолжает атаковать.
Глюк поправлен в версии 2.11b
+ найден и добавлен звук аськи в чат (для входящих сообщений)
-
- Архитектор
- Сообщения: 7387
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 535 раз
- Поблагодарили: 462 раза
Re: Мое творчество. Игра Шахматный сапёр
Игра Шахматный сапёр 2.11b тестировалась сегодня в сетевом варианте с 3 разными людьми.
+ Даже на ADSL-модеме тянет неплохо (была задержка пакета 1-2 раза, но не потеря)
+ ни одного глюка не было
- на старой Win XP не оказалось шахматного шрифта, вместо фигур были пустые места. Выслал другу шрифт Arial Unicode MS. Гуглится в инете легко. Фигуры появились после установки шрифта в систему и перезапуска приложения.
От HDV поступило предложение (играли на время 30 сек на ход) не считать попадание в пустое место ходом, т.е. не перезапускать таймер при открытии пустой клетки. Долго спорили что делать в этом случае, я предлагал добавлять +5 сек по типу фишеровского добавления, но не выше 30 сек. Он предлагал ничего не добавлять, а продолжать отсчёт до 0, до тех пор, пока нет попадания в фигуру или X. В крайнем случае +1 +2 сек добавлять.
Также от него поступило предложение ЖИРНЫМ выделять - чей ход, притом в начале строки. Я и сам один раз "зевал" пока таймер не стал пищать. Принимается.
Завтра на работу, не знаю, когда этим займусь... Сделать можно, но не 5 минут, (от пары часов до полдня), плюс ещё опять тесты на локалке потребуются. Некогда будет.
+ Даже на ADSL-модеме тянет неплохо (была задержка пакета 1-2 раза, но не потеря)
+ ни одного глюка не было
- на старой Win XP не оказалось шахматного шрифта, вместо фигур были пустые места. Выслал другу шрифт Arial Unicode MS. Гуглится в инете легко. Фигуры появились после установки шрифта в систему и перезапуска приложения.
От HDV поступило предложение (играли на время 30 сек на ход) не считать попадание в пустое место ходом, т.е. не перезапускать таймер при открытии пустой клетки. Долго спорили что делать в этом случае, я предлагал добавлять +5 сек по типу фишеровского добавления, но не выше 30 сек. Он предлагал ничего не добавлять, а продолжать отсчёт до 0, до тех пор, пока нет попадания в фигуру или X. В крайнем случае +1 +2 сек добавлять.
Также от него поступило предложение ЖИРНЫМ выделять - чей ход, притом в начале строки. Я и сам один раз "зевал" пока таймер не стал пищать. Принимается.
Завтра на работу, не знаю, когда этим займусь... Сделать можно, но не 5 минут, (от пары часов до полдня), плюс ещё опять тесты на локалке потребуются. Некогда будет.
-
- Архитектор
- Сообщения: 7387
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 535 раз
- Поблагодарили: 462 раза
Re: Мое творчество. Игра Шахматный сапёр
Спасибо. Я очень рад не только тому, что мне удалось реализовать свою мечту о сетевой игре программы (о чём год назад я не имел понятия, как это сделать), но и тому, что выполнил свою часть идеально. Гордость пробивает )))
-
- Сообщения: 3725
- Зарегистрирован: 17 май 2015, 23:27
- Откуда: Беларусь
- Благодарил (а): 152 раза
- Поблагодарили: 407 раз
Re: Мое творчество. Игра Шахматный сапёр
Это всегда хорошо, наработка опыта и навыков. Позже сумма опыта и знаний пригодятся для более серьезных и больших проектов.
-
- Сообщения: 703
- Зарегистрирован: 22 дек 2017, 13:55
- Благодарил (а): 154 раза
- Поблагодарили: 66 раз
Re: Мое творчество. Игра Шахматный сапёр
Андрей, думаю, для ясности хорошо бы подписать таймер времени как как "таймер" вместо 0 сделать надпись "Выкл".
Идея не прерывать таймер обратного отсчета при попадании на пустое поле мне не нравится, в крайнем случае надо приплюсовывать по крайней мере 5 - 10 секунд. Все таки попасть на пустое поле тоже не всегда легко.
И ещё, связи с изменением условия угадывания фигур хорошо бы поправить строки в коде
if o<=3 then ad:=40 else ad:=ad+9;
На
if o<=3 then ad:=80 else ad:=ad+9;
И строку
begin if o<=4 then ad:=10*(o+1)
На
begin if o<=4 then ad:=10*(o+o)
А то компьютер стал не угадывать фигуры уже и в тех случаях когда фигура исходя из открытых полей очевидна.
Идея не прерывать таймер обратного отсчета при попадании на пустое поле мне не нравится, в крайнем случае надо приплюсовывать по крайней мере 5 - 10 секунд. Все таки попасть на пустое поле тоже не всегда легко.
И ещё, связи с изменением условия угадывания фигур хорошо бы поправить строки в коде
if o<=3 then ad:=40 else ad:=ad+9;
На
if o<=3 then ad:=80 else ad:=ad+9;
И строку
begin if o<=4 then ad:=10*(o+1)
На
begin if o<=4 then ad:=10*(o+o)
А то компьютер стал не угадывать фигуры уже и в тех случаях когда фигура исходя из открытых полей очевидна.
-
- Архитектор
- Сообщения: 7387
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 535 раз
- Поблагодарили: 462 раза
Re: Мое творчество. Игра Шахматный сапёр
Михаил Киселев, принято. Сделаю эти изменения вместе с изменением счетчика времени.
Пока тестируй ещё.
Пока тестируй ещё.
-
- Архитектор
- Сообщения: 7387
- Зарегистрирован: 06 май 2015, 14:10
- Откуда: Чехов
- Благодарил (а): 535 раз
- Поблагодарили: 462 раза
Re: Мое творчество. Игра Шахматный сапёр
Вот с этим не согласен. У тебя всего 2 варианта: попасть в битое поле или в пустое. В битое поле - переход хода, если нет - в пустое. В конце, когда все битые поля помечены и осталось много пустых полей нужно ограничить время, чтобы человек думал быстрее, где последняя фигура находится, а не вскрывал пустые поля одно за другим, прибавляя каждым ходом по полному таймеру.