SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

C#たんと学ぶ/わりと硬派なソフトウェア開発講座

C#たんと学ぶ/わりと硬派なソフトウェア開発講座
第2回「デスクトップアプリケーション」

C#たんと学ぶ わりと硬派なソフトウェア開発講座(3)


  • X ポスト
  • このエントリーをはてなブックマークに追加

脱、GUI依存

C#たん真剣
GUIアプリケーション開発の基本: GUIに依存するな!
VBたん苦笑
VBたん
GUIの説明なのにいきなり暴論ねー。
View(表示部分)とModel(処理の中核)の分離の話かしら。
C#たん普通
ええ、そういうことなんですが、今回は用語の説明は抜きで。
モデルとか言われてもプラモデルかグラビアモデルしか思い浮かばない!

 デスクトップアプリケーションにしろWebアプリケーションにしろ、GUIアプリケーション開発の基本は、GUIへの依存部分を極力少なくすることです。処理の中核となる部分は、グラフィカルなものや文字だけのものなど、どんな種類のアプリケーションでも使いまわせるように作ります。

 ということで、今回の15パズルも、GUIだけでなく文字ベース(CUI)でも動くように作っています。

 動画の最後の部分を抜粋してみましょう。

  4  5  6  7
  8  9 11 14
 12 13 10  *
d
  0  1  2  3
  4  5  6  7
  8  9 11  *
 12 13 10 14
r
  0  1  2  3
  4  5  6  7
  8  9  * 11
 12 13 10 14
u
  0  1  2  3
  4  5  6  7
  8  9 10 11
 12 13  * 14
l
  0  1  2  3
  4  5  6  7
  8  9 10 11
 12 13 14  *
クリア!

 要するに、文字でコマンドを打ち込んで、パズルのセルを動かしていきます。* 記号の部分が空セルで、0~14のセルをこの順序で並べられればゲームクリアです。

 ちなみに、今回の実装で受け付けているコマンドは以下の通り(このアプリケーションのヘルプから抜粋)。

? : ヘルプを表示します。
q : 終了します。
i : 盤面をランダムに初期化します。
l : 空セルの右のセルを左に移動します。
r : 空セルの左のセルを右に移動します。
u : 空セルの下のセルを上に移動します。
d : 空セルの上のセルを下に移動します。
0 : 0行0列のセル移動を試みます。
1 : 0行1列のセル移動を試みます。
中略…
14 : 3行2列のセル移動を試みます。
 : 盤面の状態を表示します。
C#たん残念
ゲームとしての操作性は最悪ですけどね…
C#たん普通
このアプリケーション自体には意味がないんですが、文字ベースのコマンド操作でも使えるように中核処理部分を作るということが大事です。以下のような理由によります。
  • ユーザーインターフェイスは陳腐化が激しい:
    • 同じ機能でユーザーインターフェイスだけ作り直したいという要求が出やすいです。
  • GUIはテストの自動化が難しい:
    • GUIのテストは手動になりがちで、大変です。
    • GUIに依存する部分を減らすことでテストを楽にします。

次のページ
中核処理の仕様

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
C#たんと学ぶ/わりと硬派なソフトウェア開発講座連載記事一覧

もっと読む

この記事の著者

C#たん ソフトウェア開発講座 制作委員会(シーシャープタン)

ソフトウェアに求められる要求の高度化とともに大きくなる開発者への負担を、開発ツールやフレームワーク、時には萌え力を頼りに軽減できないか考えるプロジェクト。C#たんは単なるマスコットかと思いきや、割と毒舌。自分のことは棚に上げて、「萌えればいいってもんじゃないですよ?」が信条。twitter: @cs...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5961 2011/06/30 11:28

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング