Python(しりとりゲーム)

python

受講生F氏からまたユニークなお題が届いた。つっこみどころ満載のしりとりゲームをコーディングしてみよう!

問題

ルール
・最後に[ん]がついたら負け
・同じ言葉を2回行ったら負け
・最初の文字が違ったら負け

実行例

実行例1

しりとりスタート!
しりとり
1ターン目です。
[り]ではじまるひらがなを入れてください: あし
最初の文字が間違っています。あなたの負けです。

実行例2

しりとりスタート!
しりとり
1ターン目です。
[り]ではじまるひらがなを入れてください: りけん
これは[ん]で終わる単語です。あなたの負けです。

実行例3

しりとりスタート!
しりとり
1ターン目です。
[り]ではじまるひらがなを入れてください: りんご
2ターン目です。
[ご]ではじまるひらがなを入れてください: ごりら
3ターン目です。
[ら]ではじまるひらがなを入れてください: らっぱ
4ターン目です。
[ぱ]ではじまるひらがなを入れてください: ぱり
5ターン目です。
[り]ではじまるひらがなを入れてください: りんご
この単語は既に使われています。あなたの負けです。

Let’s challenge!

とてもざっくりとした設定なので逆に戸惑う。最初は「り」からスタートで決まりなのか?もし、「きしゃ」のように最後が小さいひらがなで終わったら?複数のエラーが同時に発生したらどのように表示するのか?そもそも、その言葉が本当に存在するかという部分をどうするのか・・・。
この問題はそういった細かいことを気にしてはいけない。実行例通りに表示されればよいだろう。つまり
○最初は「り」から
○小さい平仮名は最後にこない
○複数のエラーがあった場合はどれか一つ表示すればOK
○その言葉が本当に存在してるかは不問
この前提のもとでコーディングしてみよう!

解答例

words=[]
turn=0
first='り'
print('しりとりスタート!\nしりとり')
while True:
	turn+=1
	print(f'{turn}ターン目です。')
	word=input(f'[{first}]ではじまるひらがなを入れてください:')
	err=(
		'これは[ん]で終わる単語です。' if word[-1]=='ん' else
		'最初の文字が間違っています。' if word[0] != first else
		'この単語は既に使われています。' if word in words else
		''
	)
	if err:
		print(err+'あなたの負けです')
		break
	words.append(word)
	first=word[-1]
python
スポンサーリンク
シェアする
mjpurinをフォローする
ジョイタスネット

コメント

タイトルとURLをコピーしました