-contents- Level X チームDEプログラミング
目的   ゲーム班   ネット班   インターフェース班   今後の課題   参考文献
このレベルの目的
このLevelではグループを3つに分け実験を行う事で cocoaプログラミング、ネットワーク、GUIプログラミング、そして、チーム作業について学ぶ事を目的とする。
ゲーム班のレポート
- ブラックジャック 担当:宮國渡
- インディアン・ポーカー 担当:hgmsk
ネットワーク班のレポート
DammyMesseプロジェクト一覧
DammyMesseバイナリ
dammymesse_cntl.java
DammyMesse.java
Network_IO.java
Network_IOの説明
- コンストラクタNetwork_IO(int port_no,int connection_max)
コンストラクタで、ポートnoと接続できるクライアントの数を設定- public void start()
スレッドのスタート同時にサーバとサーバの受信用スレッド、クライアントの送 信用スレッドを作成する。- public void run()
主に、ipテーブルの更新を行っている。接続が切断されたソケットは、削除する。
接続を試みたクライアントのソケットを、ipテーブルに入れる。
- public void connect(String ip_addr)
public void connect(String ip_addr,int port_no)
接続を試みる。接続用のスレッドのキュ−に追加する。
- public Vector get_message()
ここでは、BufferReaderの中身を読み出して、Vector型に詰めて返す。
フォーマットは、[ip_addres:message]といった形をとる。なので、正確な受信メッセージわからない。- public void close()
接続を閉じるDammyMesse.java
Action
- connect_dummy() 接続に使用
send() メッセージを送信する
インターフェース班のレポート
作成したプロジェクト
zipファイル
Game_Ctl.java
Ipoker.java
ゲームの実装とネットワーク通信の実装
ゲーム班の作成した。ブラックジャックとインディアンポーカーを一つにまとめた。
Game_Ctlの説明
- Game_Ctlボタンを押した時の処理とネットワーク通信を行うクラス
- applicationDidFinishLaunching(NSNotification aNotification)
Cocoaプログラムが実行された時に実行されるメソッド。bt_bj.setEnabled(true); ボタンの表示、Network_IOの設定を行う。- init_net、入力されたIPアドレスにコネクトして、スレッドを走らせる。
- 送受信を行うスレッド、rev = this_network.get_message(); メッセージの受信を行う。 this_network.send_message(ip_another,(String)send.get(i)); メッセージを送信する。
- pochi() ボタンが押された時実行するメソッド。ip_another=ip_area.stringValue(); 入力されたIPアドレスを代入する。
Iporkerの説明
- 基本的な構成はブラックジャックと同様。結果を表示する所が異なる。
- button_event(Object sender) ボタンが押されたとき実行されるメソッド、インディアンポーカーを起動する。
- gameResult() カードの値を比較し、大きい方の勝ち
実行結果
以上でコンピュータと対戦するゲームは完成した。ネットワーク対戦の実装
- メッセージの送受信までは実装できたが、情報が欲しい時にデータとを取得する という処理ができなかった。相手が入力しなければメッセージはいつまでも送ら れない、反対にすでにデータが変数に蓄えられていた場合も送られてくるデータ をうまく解析し、ゲームに反映する処理ができず、画面に表示できなかったため ネットワークを通して対戦するゲームを実現する事ができなかった。
今後の課題
チーム作業の一番大事な"まとめる"作業ができなかったのがとても残念である。
ゲームの実装とメッセンジャーの実装はできたのだが、それをつなげる事ができなかったので 今後は動作する、ネットゲームを作成するのが課題である。
参考文献
もどる   Level 6