はじめに
概要
この記事では、大学のプログラミングの講義で最終課題として作成した桃鉄風すごろくゲームの概要について紹介します。詳細なソースコードの説明は行わず、一番苦労したマップ描画の部分について紹介します。
プログラム内容
- 言語:C言語
- GUI:X server
大学の講義の最終課題なので、指定されたものです。
ゲーム内容
桃太郎電鉄を名古屋市営地下鉄を舞台にしたものです。ゲーム画面は以下のような感じです。
再現した機能は以下の機能です。
マス名 | 効果 |
---|---|
青マス | 所持金が増える |
赤マス | 所持金が減る |
カードマス | ランダムにカードが1枚もらえる |
目的地マス | 1番乗りの人が賞金を獲得する |
カード名 | 効果 |
---|---|
急行カード(系) | 1度に振るさいころの数が増える |
ぶっ飛びカード | ランダムな駅に移動する |
ぴったりカード | 他プレイヤーの場所へ移動する |
スペシャルカード | 1〜6の任意の数字を選んで進める |
本家桃鉄の貧乏神システムは実装できませんでした。目的地までの最短距離の計算を行わないといけなくなるので、難易度が桁違いに上がると思います。
マップ描画
マップデータ(マップチップ)を用意します。0は「地面」、8は「名古屋駅」、89は「黄色の横方向の線路」という感じで自分で定義したルールに沿ってデータを入力しました。分かりやすくするために、Excelで色を付けています。
csv形式で出力し、プログラムでは2次元配列として読み込みます。
乗り換え駅で路線が交差させるために、駅間の距離や線路の曲がり角の調整をするのが大変でした。(もし東京メトロだったら絶望していたでしょう。)
今回のGUIでは、画面左上を原点とする座標で描画する仕組みになっています。今回は、この画面を11×7のチャンクに分けます。この1チャンクが2次元配列の要素(Excelでいうセル)に対応します。
あとは、配列のうち、画面領域に対応する部分を参照して、1チャンクずつ色を塗っていきます。配列の参照部分を1つずらしながら描画することで、スクロールも実現できました。
おわりに
大学2年生のときのC言語の最終課題を紹介しました。今回はソースコードについては触れていませんが、久しぶりに見てみると、今ならもっと美しいコードで書けるのに!と思う部分もありました。
マップチップのアイデアはすごろくに限らずRPGゲームでも使えるので、興味がある方は挑戦してみてください。
最後まで読んでいただき、ありがとうございました。
コメントを残す