桃鉄風すごろくゲームを作成してみた|C言語プログラミング

52 アクセス

はじめに

概要

この記事では、大学のプログラミングの講義で最終課題として作成した桃鉄風すごろくゲームの概要について紹介します。詳細なソースコードの説明は行わず、一番苦労したマップ描画の部分について紹介します。

プログラム内容

  • 言語: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ゲームでも使えるので、興味がある方は挑戦してみてください。

最後まで読んでいただき、ありがとうございました。

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です