【フローチャート】もぐらたたき
今回はもぐらたたきを作りました!
今回、流れ図はシンプルですが、新たな試みを二つ試してみました。
- マウス入力
- 2次元配列を使わない(1次元配列を使った)マップの管理
今まではキーボード入力のみを対象にゲームを組んでいたのですが、マウス入力を導入しました。キーボード入力と違って応用するとスマホアプリにもアルゴリズムが生かせるのがいいですよね!
「2次元配列を使わない(1次元配列を使った)マップの管理」というのが分かりにくいと思うので説明しますね。
いままでは初めに2次元配列を用意してそれをマップに見立ててキャラクターが移動したら2次元配列の値を更新するといった方法でキャラクターを管理していました。
こうすることで、座標を指定すればすぐにわかります。(例えば3,7の位置にいるキャラは"配列[3][7]"を見ればわかります)
この方法ではキャラクターの位置が直感的に分かりやすいですが、座標の範囲が大きい場合には、配列がとても多きくなってしまいます。これはコンピュータに負荷をかけすぎてしまい、処理が遅くなってしまいます。
(例えば画面が1000×500で構成されているときは1000×500=50万個の要素がいります。)
今回は、キャラクターのデータの一覧である1次元配列(フローチャート中ではmogura)を用意して、キャラクターの情報が変わったら対応するキャラクターの配列内の要素を書き換えるといった方法で管理しています。
この方法で管理すればどれだけ座標の範囲がが大きかったとしても影響は少ないです。
そのかわりこの方法では保持するキャラクターの数が大きくなると処理が遅くなってしまいます。キャラクターの数が多いときは2次元配列を使う方法、座標の範囲が広いときは1次元配列をたくさん使う方法を用いるなど柔軟にプログラムが組めるようにしましょう!
(かなり前置きが長くなりました)
【流れ図】
フローチャートセット
↓↓↓下のリンクからダウンロード↓↓↓
Moguratataki.zip - Google ドライブ
コメント
今回、1次元配列で管理する方法を実装するためにJavaプログラムについて変更・追加したところがあります。Javaでの改造をされている方はご注意下さい。
アドバイス
問題にする上では、変数「s」などあえて問題中の説明がない・または少ないところが、いくつかあるのでそこを問題にすることで満点阻止が狙えると思います。
改造する上では、モグラが移動するときに重ならないようにしたり、モグラにHPを設定して、数回たたかないと倒されないモグラを作ってみたりすると面白いと思います。
フローチャートセットについて
この記事ではフローチャートを掲載するだけでなく、実際にゲームとして遊べるように、Java言語で作成したプログラムを、フローチャートの画像とともに配布しています。記事のリンクをクリックするとGoogleドライブが開くので、画面上側(たぶん)のダウンロードボタンを押してダウンロードしてください。ゲームの起動方法などはReadMe.txtファイルを参照してください。利用規約については以下ページをご覧ください。
当ブログが配布するコンテンツの利用規約について - プログラミング食堂
何か質問があればコメントや連絡してください!
今日の余談
今回のプログラムは元々は最近はやりのTPSシューティングゲームみたいなのにしようと思っていたのですが、気づいたらモグラたたきになっていました笑笑。もうそろそろゲームだけじゃなくてアルゴリズムのフローチャートも作っていきたいと思っています!何かリクエストがあればぜひ教えてください!
作成者
TBSten(当記事管理者)
この記事が参考になったらぜひ高評価☆よろしくお願いします!