PROGRAM PYTHON

Pythonスクリプト【迷路ゲーム~トラップあり】

 

トラップがある迷路ゲームを作ろう

今回は前回作った迷路ゲームに、ランダムでトラップが発生するようにします。
プレイヤーキャラクターにHPを設定して、トラップによりHPが減っていき、HPが0になったらゲームオーバーとなります。
ただし、途中に回復ポイントを設けて、HPを回復できるようにします。

前回のスクリプトはこちらです。

今回の迷路は、以下のようなイメージになります。
S はスタート地点、G はゴール地点、H は回復ポイントです。

0 1 2 3 4 5 6 7
0 S H
1
2
3
4
5 H
6
7 G

ゲームの仕様は、以下のようになります。

仕様

  • 2次元リストを使って迷路のイメージを定義する
  • 配列の要素の種類は0、1、2、3として、0は通行不可、1は通行可能、2はゴール、3は回復ポイントとする
  • 移動キーは、wは上移動、sは下移動、aは左移動、dは右移動とする
  • qキーでスクリプトを終了する
  • キャラクターにHPを設定する
  • ランダムにトラップが発生して、キャラクターがダメージを受ける
  • キャラクターのHPが0になると、ゲームオーバーとなる
  • 回復ポイントを設定して、そのマスに入るとキャラクターのHPが全快する
  • ゴールに到達したらスクリプトを終了する

 

実行イメージ

実行イメージは、以下のようになります。
現在地は、2次元リストのインデックスで、[縦/横]という意味です。
qを入力するとゲームは終了します。

 実行例
> python maze2.py
+++ 操作方法 [上:w][下:s][左:a][右:d][終了:q] +++
+++ 現在地 [0/0] +++
>>> s
+++ 現在地 [1/0] +++
>>> s
+++ 現在地 [2/0] +++
>>> d
+++ 現在地 [2/1] +++
>>> d
+++ トラップ発生!プレイヤーは 18 のダメージ +++
+++ プレイヤーのHPは 82 です +++
:
:
+++ 現在地 [1/6] +++
>>> w
+++ HPが全回復しました +++
:
:
>>> d
+++ トラップ発生!プレイヤーは 6 のダメージ +++
+++ プレイヤーのHPは 59 です +++
+++ 現在地 [6/7] +++
>>> s
+++ ゴール!! +++

 

Pythonスクリプト

ゲームのPythonスクリプトは、以下のようになります。

 

スクリプト解説

今回は前回から変更になった部分を解説します。
前回までのスクリプトの解説も併せて参照してください。

94~96行目

入ったマスが回復ポイントだった場合は、キャラクターのHPを全回復します。

99行目

トラップが発生するかどうかの数値を取得します。
キャラクターが移動するたびにturn変数がカウントアップして、turn変数の値が大きいほどトラップが発生する確率が上がります。

100行目

トラップ発生数値が9以上かマスの値が1の場合は、トラップが発生します。

103行目

トラップによりキャラクターは1~20のダメージを受けます。

112~115行目

キャラクターのHPが0になると、ゲームオーバーとなります。

118行目

キャラクターがダメージを受けたら、turn変数を初期化します。

121行目

キャラクターが移動するたびに、turn変数はカウントアップします。

127~133行目

キャラクタークラスを定義します。
このクラスは、キャラクターのHPを設定します。

147行目

キャラクタークラスによって、キャラクターのインスタンスを生成します。
キャラクターの初期HPが設定されます。

 

-PROGRAM, PYTHON
-