このPHPのオブジェクト指向での解き方やヒントを教えて欲しいです。この問題をベースにオブジェクト指向の考え方を身に付けたいです。
複数の島をボートで巡って、お金を探し出し、ゴールへ辿り着きなさい。
プレイヤーはターンごとに1回または複数回サイコロを振ります(島によっては複数回必要な場合がある)。
プレイヤーのいる島ごとに、サイコロの目に応じてターンの行動が決まります。
スタート地点から出発し、ゴールを目指してください。
・全体の地図
群島はスタートとゴール、およびA島〜E島の5つの島からなります。
・ステータス保持
プレイヤーは、ターン数、所持ゴールド、および巡った島の記録を保持しています。
島ごとのサイコロの目と行動は、次のように決められています。
島 | 判定
・スタート地点
サイコロの出目が1ならA島へ、2ならB島へ、6ならC島へ、その他なら、動けない 。
・A島
サイコロの出目が3ならB島へ、4ならC島へ、その他なら100Gゲットしてスタートへ
・B島
サイコロの出目が奇数ならD島へ、偶数ならE島へ
・C島
サイコロを2回ふって、出目の和が奇数なら200GゲットしてD島へ、偶数なら100GゲットしてE島へ
・D島
サイコロの出目が4か5ならE島へ、それ以外は、スタートへ
・E島
サイコロの出目が6かつ所持Gが500G以上ならゴールへ、それ以外なら、100GゲットしてC島へ
問題1
サイコロの出目の配列を入力値で受け取り、配列を最後まで処理した段階での、プレイヤーのステータスを出力とするプログラムを作成してください。
入出力は、以下の4パターンをすべてパスするようにしてください。
・記録に使う島名は、以下のようにしてください
- スタート地点:S
- A島:A
- B島:B
- C島:C
- D島:D
- E島:E
- ゴール:G
・ターン数は、サイコロを振った回数ではなく、ヒントの判定を行った回数です。
・スタート地点でサイコロを振り、移動しても移動しなくても1ターン。
・C島では2回サイコロを振り、その結果移動で1ターン。
実現したいこと
クラスの定義
島へ移動方法
ステータスの保持方法
試したこと
if文に配列を入れて条件分岐
島のクラスに数字を代入
ダイス、プレイヤー、島のクラスをつ作るif文に配列を入れて条件分岐
回答2件
あなたの回答
tips
プレビュー