fossbytesの記事から。
A Simple Hangman Game Implemented In 3 Lines Of Python
http://fossbytes.com/simple-hangman-game-implemented-3-lines-python/
Pythonでたったの3行でハングマンゲームができるとは。
ハングマン (ゲーム)
https://ja.wikipedia.org/wiki/ハングマン_(ゲーム)
これは改行コードで区切られた単語の辞書wordsを元にした単語当てのゲームです。
words (Unix)
https://en.wikipedia.org/wiki/Words_(Unix)
まずwordsをインストールします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
[root@host01 ~]# yum info words 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp 利用可能なパッケージ 名前 : words アーキテクチャー : noarch バージョン : 3.0 リリース : 22.el7 容量 : 1.4 M リポジトリー : base/7/x86_64 要約 : A dictionary of English words for the /usr/share/dict : directory URL : http://en.wikipedia.org/wiki/Moby_Project ライセンス : Public Domain 説明 : The words file is a dictionary of English words for the : /usr/share/dict directory. Some programs use this database : of words to check spelling. Password checkers use it to : look for bad passwords. [root@host01 ~]# yum -y install words 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: www.ftp.ne.jp 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ words.noarch 0:3.0-22.el7 を インストール --> 依存性解決を終了しました。 依存性を解決しました ================================================================================ Package アーキテクチャー バージョン リポジトリー 容量 ================================================================================ インストール中: words noarch 3.0-22.el7 base 1.4 M トランザクションの要約 ================================================================================ インストール 1 パッケージ 総ダウンロード容量: 1.4 M インストール容量: 4.7 M Downloading packages: words-3.0-22.el7.noarch.rpm | 1.4 MB 00:02 Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : words-3.0-22.el7.noarch 1/1 検証中 : words-3.0-22.el7.noarch 1/1 インストール: words.noarch 0:3.0-22.el7 完了しました! [root@host01 ~]# cat /usr/share/dict/words | head 1080 10-point 10th 11-point 12-point 16-point 18-point 1st 2 20-point [root@host01 ~]# cat /usr/share/dict/words | wc 479828 479828 4953680 |
上記サイトから3行コードをCopy & Pasteします。
1 |
[root@host01 ~]# vi hangman.py |
1 2 3 |
license, chosen_word, guesses, scaffold, man, guesses_left = 'https://opensource.org/licenses/MIT', ''.join(filter(str.isalpha, __import__('random').choice(open('/usr/share/dict/words').readlines()).upper())), set(), '|======\n| |\n| {3} {0} {5}\n| {2}{1}{4}\n| {6} {7}\n| {8} {9}\n|', list('OT-\\-//\\||'), 10 while not all(letter in guesses for letter in chosen_word) and guesses_left: _, guesses_left = map(guesses.add, filter(str.isalpha, raw_input('%s(%s guesses left)\n%s\n%s:' % (','.join(sorted(guesses)), guesses_left, scaffold.format(*(man[:10-guesses_left] + [' '] * guesses_left)), ' '.join(letter if letter in guesses else '_' for letter in chosen_word))).upper())), max((10 - len(guesses - set(chosen_word))), 0) print 'You', ['lose!\n' + scaffold.format(*man), 'win!'][bool(guesses_left)], '\nWord was', chosen_word |
実行してみます。
勝ちました!(笑) レトロな感じがまたいいですね。
ちょっとした暇つぶしにはいいかも。
しかしPythonてプログラム言語らしくないですね。
Python
https://ja.wikipedia.org/wiki/Python