IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Игра "Одинокий король"
сообщение
Сообщение #1


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Игра.
Правила.
на шахматной доске в произвольной клетке находится король.
2 игрока ходят по очереди.
за ход можно сдвиуть короля вниз или влево или влево-вниз по диагонали.
тот кто первый поставит короля в левый нижний угол победил.
Помогите придумать стратегию победы. (как играт ьчто бы выиграть?)
что-то вроде алгоритма, или протсо какие-нить правила вывести..


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Ну если начать с того, что пусть король не умеет ходить по диагонали, то как бы король ни ходил - ему до левого нижнего угла доски одинаковое количество ходов. Значит тот, кто первый ходит, выиграет в том случае, если король находится на нечетном количестве ходов до финиша.
Если учитывать диагональный ход, то его можно считать как "два" хода - влево и вниз. В итоге если у первого игрока четное число "обычных" ходов, то ему надо сделать один ход по диагонали, чтобы вернуть выигрышную позицию. Стратегия заключается в том чтобы в начале игры использовать все диагональные ходы, дабы остаться в выигрышной позиции.
Ну думаю остальное сам додумаешь smile.gif

Сообщение отредактировано: hiv -


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Я вот тебе Олег о том-же говорил примерно, написать ф-ю для нахождения МИНИМАЛЬНОГО колва ходов до победы от той точки с котороы ты(комп) стартуешь (достаточно просто, сначала сначала выщитываешь максимальное колво ходов, котороге можно сделать по диоганали, увеличивая счетчик, потом по обстоятельству : сколько осталось пройти по горизонтали/вертикали я это сделал через несколько циклов) А потом смотришь если count - четное, то если есть такая возмо стараешься сделать так чтоьбы после твоего хода ему тоже осталось четное кол-во ходов ... как-то так.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


блин. ребята, вы гении!
Я совсем не подумал что будет если исключить ходы по диагонали!
Все, дальше думаю можно не обсуждать, потом когда доделаю, я все выложу.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


вы не верно придумали алгоритм, он не работает, можшь проверить клем...
smile.gif
Я придумал другой...
тут все просто - кто ходит тот выигрывает!
вот что получилось (бета версия, ьыстрого поклепа)

в меню
1 - начало игры.
в игре
1- влево
2- вниз
3- по диагнали.
ну и enter что бы комп сходил.

компилятор Free basic.
Прикрепленный файл  game_o_k.rar ( 31.16 килобайт ) Кол-во скачиваний: 420

Прикрепленное изображение


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


У меня не работает sad.gif я ходить не могу.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


вот вроде почти окончательная версия...
потестите кому не лень...
должно все работать..
Прикрепленный файл  game_o_k.rar ( 31.4 килобайт ) Кол-во скачиваний: 444


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


klem4, ходит клавишами 1, 2, 3
те что у тебя на клева наверху клавиш с буквами...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 136
Пол: Мужской
Реальное имя: Александр

Репутация: -  -2  +


Почти всегда работает. Почти, потому что есть некоторые случаи, например, когда шарик у левого края, что обоим остается только ходить вниз, и компу не везёт, ну или что-то в этом роде. А по-моему шансы выиграть есть у обоих...
Altair, а каков алгоритм?


--------------------
Старайтесь восполнять пробелы в области незнания! ;-D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
А по-моему шансы выиграть есть у обоих...

Выигрывает 100% тот кто ходит первый.
При условии что будет ходить по некоторым правилам.

Цитата
Altair, а каков алгоритм?

Я хочу реализовать игру на Паскале, тогда я выложу всю информацию о игре.
Немного подождите...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Итак..
1. на Basic - Прикрепленный файл  win32fbc.zip ( 34.51 килобайт ) Кол-во скачиваний: 421

2. на Pascal - Прикрепленный файл  win32fpc.zip ( 39.71 килобайт ) Кол-во скачиваний: 446


Алгоритм.
Тот, кто ходит 1 должен:
каждый свой ход делать таким образом. что бы оказываться на НЕ синих ячейках (см. рисунок)
Если изначально король на синем поле, и ходит игрок, то соблюдая правило он выигрывает.
Если изначально король НЕ на синем поле, то тот кто ходит для победы должен постараться оказаться на не закрашенном поле - свои ходом.
Прикрепленное изображение
на рисунке.
Первый ход -компьютер.
анализ ситуации - король НЕ на синем, значит ситуация не очень хорошая, если пойти по диагонали то выигрывает юзер, а если вниз - комп, т.к. на 2 своем ходе он окажется на черной ячейки.

все желающие переделывайте игру, и модернизируйте алгоритм.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 22:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name