Pythonでは、真偽値はbool型で表されます。bool型はintのサブクラスです。この型にはTrueとFalseの2つの値しかありません。これらの値は変数に代入できます。
>>> true_variable = True
>>> false_variable = False
and、or、not演算子を使うと、真偽値の式を評価できます。
>>> true_variable = True and True
>>> false_variable = True and False
>>> true_variable = False or True
>>> false_variable = False or False
>>> true_variable = not False
>>> false_variable = not True
この演習では、1980年代の名作アーケードゲーム、Pac-Manのルールをいくつか実装します。
実装するルールは4つあり、どれもゲームの状態に関するものです。
引数がどのように渡されるかは気にしなくてかまいません。引数を組み合わせて、意図した結果を返すことだけに集中しましょう。
eat_ghost()関数を定義します。この関数は2つの入力(Pac-Manがパワーエサを食べている最中かどうか と Pac-Manがゴーストに触れているかどうか)を取り、Pac-Manがゴーストを食べられるかどうかを真偽値で返します。関数は、Pac-Manがパワーエサを食べている最中で、かつゴーストに触れているときだけTrueを返すようにします。
>>> eat_ghost(False, True)
...
False
score()関数を定義します。この関数は2つの入力(Pac-Manがパワーエサに触れているかどうか と Pac-Manがドットに触れているかどうか)を取り、Pac-Manが得点したかどうかを真偽値で返します。関数は、Pac-Manがパワーエサかドットに触れているときにTrueを返すようにします。
>>> score(True, True)
...
True
lose()関数を定義します。この関数は2つの入力(Pac-Manがパワーエサを食べている最中かどうか と Pac-Manがゴーストに触れているかどうか)を取り、Pac-Manが負けるかどうかを真偽値で返します。関数は、Pac-Manがゴーストに触れていて、パワーエサを食べている最中でないときにTrueを返すようにします。
>>> lose(False, True)
...
True
win()関数を定義します。この関数は3つの入力(Pac-Manがすべてのドットを食べたかどうか、Pac-Manがパワーエサを食べている最中かどうか、Pac-Manがゴーストに触れているかどうか)を取り、Pac-Manが勝つかどうかを真偽値で返します。関数は、Pac-Manがすべてのドットを食べていて、かつパート3で定義したルールで負けていないときにTrueを返すようにします。
>>> win(False, True, False)
...
False