【勉強】マインスイーパ(その2) by 日経ソフトウエア2011年6月号


前回に引き続き、「日経ソフトウエア2011年6月号」の「iOSとAndroidで定番ゲームを作り比べ!」のマインスイーパの勉強です。

今回は、iPhoneへの実装です。

Javaで書いたコードをC++、Objective-C++に変換するとあったので、まずは自力で試してみました。
しか~し、どこをどうやればいいのかよく分からなくなってしまいました。
プログラミング開発は頭が真っ白になってからが本領発揮ですが、この分からない状態がずっと続くのは嫌だったのでサンプルプログラムをダウンロードして読んで理解することにしました。
他人が書いたコードを理解するのはそれはそれで難しいため、違った切り口で勉強になりますからね。
“変数の宣言の仕方、変数名、ロジックの癖”などがあって自分と異なるため、頭を使う訓練になり、また新しい発見をもたらしてくれます。

で、HPを探しましたがなかなか見つかりませんでした。
小一時間考えようやくダウンロードサイトにたどり着きました。
下の画像の箇所がその入口でした。こんなところにあって分かりにくかったです・・・(汗
http://itpro.nikkeibp.co.jp/article/MAG/20110420/359601/

ファイルをダウンロードして開いてみると、なるほどと思えるギミックが満載でした。

まず、ファイル構成がとても整理されていました



プログラム本体はMinesweeperフォルダにまとめられており、それに付随する情報ファイルはSupporting Filesとしてまとめられていました。
てぃーは、ふだんはファイルは直下に置いていましたが、こう分類されていると分かりやすいですね。

ファイルの構成は次のようになっていました。

・MinesweeperAppDelegate.h/m  :Delegate用ファイル
・MenuViewController.h/m     :メニュー画面用ファイル
・Minesweeper.h/mm       :計算ロジック用ファイル
・MinesweeperViewController.h/m :ゲーム画面コントローラ用ファイル
・MinesweeperView.h/m      :ゲーム画面用ファイル

前回Javaで書いた計算ロジックはMinesweeper.mmに変換されていました。

MinesweeperViewControllerではそのままゲーム画面となるのではなく、中でMinesweeperViewを呼び出すことで単なるコントローラとしての役割となっていました。
てぃーでは、呼び出す画面が1つしかないことが分かっている場合は億劫なのでViewControllerファイルにそのまま画面構成を書いてしまいます。
でも、のちのち画面数を増やすことになった場合などは本誌のように最初から別画面を呼び出すようにしておいた方がいいですね。

このアプリではまずメニュー画面が表示されるのですが、当初どこでそれを呼び出しているのか分かりませんでした。
コードを読み、ブレイクポイントを複数設定して流れを追っていき発見しました。
なんと、MinesweeperAppDelegateで設定していることが分かりました。
 - (void)applicationDidBecomeActive:(UIApplication *)application
というメソッドが、アプリケーションがアクティブになったタイミングで呼び出されるため、そこに記述してありました。
ここではメニュー画面だけでなく、ゲーム画面コントローラ用ファイルの呼び出しも行われていました。
このような手法はてぃーは全く知らなかったので目に鱗でしたね。

ほんと他の方のコードを読むのは勉強になります。
そしてこのような素晴らしいコードを公開されている先輩方には頭が上がりません。
ありがとうございます。

次回は、計算ロジックとゲーム画面用ファイルの流れを追っていければと思います。


↓この記事が参考になったら拍手をクリックお願いします。今後のブログ作りに役立てたいので。

関連記事

コメントの投稿

非公開コメント

プロフィール

てぃー

Author:てぃー
詳しい自己紹介:こちら
Twitter:@teapipin


follow us in feedly 
にほんブログ村 IT技術ブログへ にほんブログ村 PC家電ブログへ
現在の閲覧者数:

ブログ内検索
今日のアクセス数の多い記事
カレンダー

07月 | 2017年08月 | 09月
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
過去記事ダイジェスト
お知らせ
ツイッター分析の分析結果が新潟大学教育学部の論文に引用
教育の実証研究の場でも高く評価!

ツイッター分析の分析結果が和歌山大学防災研究教育センターの論文に引用
防災の研究において評価!

2015年版ツイッター分析(世界編)が始動!
今回は世界の国別・言語別ツイートを分析!

ツイッター分析の分析結果が慶應義塾大学有名教授の研究論文などに引用
文系の研究までも制覇!

Interval Timer EX
有名雑誌「Mac Fan 2015月2月号」に「インターバルタイマーEX」が3度目の掲載!ポモドーロテクニックに有効!

自作Macアプリ3部作が2014年 Vector 年間ダウンロードランキング Mac トップ100にすべてランクイン

TimeCalcを公開しています!
時間計算、年齢計算、学歴欄作成など。

ツイッター分析の分析結果が人工知能の研究に!
ブログが学会発表で引用されました。

今まで開発したiPhoneアプリのソースコードを公開しています!
勉強に役立ててください。


2013年 Vector 年間ダウンロードランキング Mac トップ100に「デジカメ変更日を撮影日に一括変更 for Mac」と「インターバルタイマーEX」がランクイン

Interval Timer EX
有名雑誌「Mac Fan 2013月4月号」に「インターバルタイマーEX」が2度目の掲載!!

リアルタイムツイッター地図
リアルタイムツイッター地図を公開しています!
位置情報付きツイートをリアルタイムに表示します。

新たなツイッター分析としてイベントツイート分析を行っています!

2012年8月1日(水)開催の「Twitter勉強会」で発表
ツイッター調査:約173万ツイートを調査して分かったTwitterの利用動向 #twtr_hack from teapipin


Interval Timer EX
有名雑誌「Mac Fan 2012月3月号」に「インターバルタイマーEX」が掲載!!



 

はてなブックマークの人気記事
ツイート&いいね!ランキング