Python(ハングマン)vol1
今日からハングマンというゲームを作りを通してPythonの基礎を学習していきたいと思います!!
プログラミングを学習する上で最も重要なことは取り合えずで良いから手を動かしてみること、それから躓いても一度脇に置いておいて良いという事です。完璧には成らないです!!
ではまず、完成したコードを紹介します。因みにこれが完ぺきでは無いですし他の書き方もあるので一つの例として考えて下さい!!
def hangman(word):
wrong= 0
stages= ["",
"______________ ",
"| ",
"| | ",
"| o ",
"| / | \ ",
"| / \ "
]
releters= list(word)
boarad= ["_"]* len(word)
win=False
print("ハングマンにようこそ!")
while wrong > len(stages) -1:
ms="一文字入力して下さい"
ans=input(ms)
if ans in releters:
answear=releters.index(ans)
boarad[answear]= ans #boarad にある入力された文字のところを入力された物に変える(同じ文字だが違う物)
releters[answear]= "$"
else:
wrong +=1
print("".join(boarad))
x=wrong+ 1
print("\n".join(stages[0:x]))
if "_" not in boarad:
print("正解!あなたの勝ち!!")
print("".join(boarad))
win= True
break
if not win:
print("\n".join(stages[0:x]))
print("残念!!あなたの負け!正解は{}.".format(word))
hangman("apple")
今回使われている物は
・関数
・リスト
・IF文
・変数宣言
・比較演算
・繰り返し処理
この辺が使われています!!
順に見て行きましょう!
・関数
関数とはある値(引数)を入力すると特定の値(戻り値)を出力するものを言います
具体的には特定の動きをします!
また、関数には大きく分けて2種類ありそれぞれ・組み込み関数と・ユーザー定義関数になります!
組み込み関数は各プログラミング言語にもともと定義されている関数の事を言い、ユーザー定義関数とは文字通りユーザーが定義することができる関数の事です。
このプログラムではユーザー定義関数と組み込み関数のprint関数が使われています。
ユーザー定義関数の定義方法は
def <関数名>(引数):
で定義することが出来ます。
最後のコロンでスぺ―ス4つ分(タブ2つ分)下げる必要があります。
今回のプログラムでは、一つの関数内ですべて書かれている事が分かると思います。因みにprint関数は文字列を出力するための関数です。
・リスト
リストとはオブジェクトを順番に保存していくことの出来る一つのまとまりの事を言います。まとまりはリストの他にタプルや辞書と呼ばれる物もありますが今回は使ってないので省略します。また、その辺はまとめようと思います。
リストの書き方は
<リスト名>=["~","~"]
risuto f
このようになります。ダブルクオーテーションではなくシングルでも大丈夫です。それからかっこの種類は[]か()意外だとタプルや辞書になってしまうので注意が必要です。
リストの特徴としてミュータブルがあります。これがタプルや辞書とは違う点です。ミュータブルとは後からリスト内部の書き換えや削除が出来ることです。
リストは順に0,1,2のようにインデックス値を使って表すことが出来ます。
例えば
fruits=["apple","banana","peach"]
print(0)
print(1)
print(2)
これでは出力はapple,banana,peachとなります。
今回のプログラムでは、stagesというリストを作っています!これは、ハングマンを一個ずつ完成させていくためにリストを使っています。
・IF文
IF文は指定した条件に合わせて分岐をするための構文です!!
書き方は
if <条件式> :
<条件に合うときの動き>
else:
<それ以外の時の動き>
こんな感じです。
具体的には
x=4
if x>=4:
print("xは4以上")
else:
print("xは4未満")
のように使います!!今回のプログラムでは
if ans in releters:
answear=releters.index(ans)
boarad[answear]= ans #boarad にある入力された文字のところを入力された物に変える
releters[answear]= "$"
これの条件式はansに代入されている文字列がreletersに入っていればという事になる。
この記事が気に入ったらサポートをしてみませんか?