← Архив: Common Lisp

Практика Common Lisp и крестики-нолики

Author: · 21.08.2011 16:55
· original author: Menschenkindlein
Здравствуйте,
Есть вот какая идея, или, скорее, критика. Практическое применение Common Lisp - это, конечно, хорошо, но вот незнакомому с программированием и со всякими другими тонкостями человеку примеры практического применения могут показаться очень частными и не интересными.
Мне кажется, что решение этой проблемы (если Лиспу действительно нужны новые [глупые] люди) лежит в области создания игр, что всегда весело и интересно.
Но это так, лирика. Дело в том, что у меня не хватило усидчивости сделать практику из PCL (ну неинтересен мне Shoutcast сервер и спам-фильтр!), и я решил написать простенькую игру. Сначала было замахнулся на Snake, но достаточно быстро понял, что это нереально.
И написал крестики-нолики! За день. А потом еще два писал ИИ и украсивливал.
Прошу осудить, так как чувствую, что не все там красиво и после улучшений. Да и длинно как-то получилось...
· original author: artem
Просто дополнение. В книге Simply Scheme: Introducing Computer Science в одной из глав описывается по шагам создание игры крестики-нолики на лиспе (который scheme).
Ссылка на главу: http://www.cs.berkeley.edu/~bh/ssch10/ttt.html
· original author: Menschenkindlein
Мне уже стыдно. Насколько же все красивее и понятнее получается, если уметь!
Надо бы что-то еще сделать. Может Морской бой? Авось его еще умные люди не писали.
· original author: Menschenkindlein
Ну вот, написал я "Морской бой". Надеюсь, кому-то будет интересно и меня покритикуют. Там ведь точно есть за что. Это я в первый раз попробовал использовать CLOS.
Что важно, для игры можно писать своих ботов расстановщиков и стрелков!
· original author: LinkFly
Понравилось слово "Невозможности")) По-моему надо срочно включать в толковые словари русского языка, серьёзно.
· original author: Menschenkindlein
Интересно, а кто-то снизошел до того, чтобы ее запустить, или README не пускает?
Вот еще один аргумент, чтобы не запускать игру - пример работы:
CL-USER> (cl-games-battleship:start-easy-game
:game-space-config '(15 15)
:ships-config '(5 6 4 3 3 3 2 1 15)
:placer :random-bf
:killer-constructor :random-cl)
I'm placing my ships............................done
Uf! I've tried 27,509 times to place my ships!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 | [Q] |
2 | [Q] [Q] |
3 | [Q] [Q] [Q] [Q] |
4 | [Q] [Q] [Q] |
5 | [Q] [Q] |
6 | [Q] [Q] |
7 |[Q][Q][Q][Q][Q] [Q] [Q] |
8 | [Q] [Q] |
9 | [Q] [Q] |
10 | [Q] [Q] |
11 | [Q][Q][Q] [Q] |
12 | [Q] [Q] |
13 | [Q] [Q] [Q] |
14 | [Q] [Q] [Q] |
15 | [Q] [Q] [Q] |
KILLER wins in 163 turns!
(:WIN 163 :KILLER)
· original author: LinkFly
Не снизошёл:) Но желание было. Даже желание написать веб-приложение "Морской бой" на этой базе (если работать будет удовлетворительно) :))) Но как-то некогда, может позже посмотрю...
· original author: Menschenkindlein
Не дождался :) https://github.com/Menschenkindlein/cl-games-battleship-web
Правда очень страшно не дождался.
· original author: Zeldan
Имхо, игры зло и пустая трата времени.И если надо решать боевые задачи, то и тренироваться на боевых...
· original author: ulianna38
А можете заняться написанием игры "Калах"?)
· original author: dima0905
Или тетрис автоматический, с минимумом движений фигурками