[Python]~続~単語並び替えゲームにファイル取り込み機能を追加する
1.ファイル取り込み機能
前回作成した単語並び替えゲームにファイル取り込み機能を追加します。
コマンドライン引数にファイルのパスを渡すことで自分のオリジナル単語ゲームが作れます。ターミナル上にファイルをドラッグ&ドロップすればパスが自動で入力されるので手間はそれ程かかりません。
2.コード
今回渡すファイルは1月から12月までを英語で書いたテキストファイルです。
from random import sample
from random import randint
import sys
#テキストファイル読み出し
params = sys.argv
file_path = params[1]
with open(file_path, "r", encoding="utf-8") as f:
word_list = f.readlines()
#テキストから問題生成
q_dic = {}
for word in word_list:
word = word.rstrip("\n")
q_dic[word] = ""
#入れ替え処理
for word in q_dic.keys():
#一文字づつ区切り
splitted_word = list(word)
#ランダムに要素数分抽出する
random_word = sample(splitted_word, len(splitted_word))
#カンマ区切りで連結
cat_comma = ",".join(random_word)
q_dic[word] = cat_comma
#ゲームスタート
for i, data in enumerate(q_dic.items()):
word, question = data
print("Q{0}.{1}".format(i + 1, question))
answer = input("元の言葉は何だっでしょうか?:")
if answer == word:
print("Correct!=>{0}".format(word))
else:
hint = list(word)
secret_index = randint(0, len(hint))
hint[secret_index - 1] = "*"
hint = "".join(hint)
print("Booo!=>[Hint:{0}]".format(hint))
3.実行結果
以下のように実行します
python3 random_word.py /Users/nobita/Desktop/test.txt
Q1.r,y,J,a,u,a,n
元の言葉は何だっでしょうか?:January
Correct!=>January
Q2.r,b,F,y,r,e,a,u
元の言葉は何だっでしょうか?:February
Correct!=>February
Q3.c,a,h,r,M
元の言葉は何だっでしょうか?:March
Correct!=>March
Q4.r,A,i,l,p
元の言葉は何だっでしょうか?:April
Correct!=>April
Q5.y,a,M
元の言葉は何だっでしょうか?:May
Correct!=>May
Q6.u,n,e,J
元の言葉は何だっでしょうか?:June
Correct!=>June
Q7.y,J,u,l
元の言葉は何だっでしょうか?:July
Correct!=>July
Q8.g,A,u,u,t,s
元の言葉は何だっでしょうか?:August
Correct!=>August
Q9.b,m,e,r,p,e,e,S,t
元の言葉は何だっでしょうか?:September
Correct!=>September
Q10.t,O,e,b,o,c,r
元の言葉は何だっでしょうか?:October
Correct!=>October
Q11.N,b,v,o,m,e,e,r
元の言葉は何だっでしょうか?:November
Correct!=>November
Q12.m,D,c,e,e,b,e,r
元の言葉は何だっでしょうか?:December
Correct!=>December