1)
もぐらたたきゲーム
・Mogura.javaはこちら
・MoguraApp.javaはこちら
・MoguraApp.htmlで実行します。
<html>
<body>
<applet code=MoguraApp.class id=MoguraApp width=320 height=240>
</applet>
</body>
</html>
もぐらたたきゲーム 解説
もぐらを叩けば10点。まちがえるとマイナス。
1)
ブラックジャック、コンソール出力
・Deck.javaはこちら
・Hand.javaはこちら
・Card.javaはこちら
・Dealer.javaはこちら
・Player.javaはこちら
・BlackJack.javaは実行
1)
ブラックジャック、アプレット
プログラムのソースコード
全部で、BlackJackAppクラス、BlackJackクラス、Dealerクラス、Playerクラス、Handクラス、Deckクラス、Cardクラスの7つ。
第1段階では、BlackJackクラスを使用しましたが、今回はBlackJackクラスは使用していない。
解説
乱数を用いて手札を配ることができる。手札の種類・数を管理できるDealerクラスを実装している。
持ち金、掛け金を管理できる。絵札を扱える。Appletを使用した。第1段階(上ブラックジャック)で作ったクラスは利用し、
新たにBlackJackAppクラスを作成した。また、音楽が流れるようにした。 今回はBlackJackクラス
updateメソッドに関して何も指定していないと、アプレットの表示範囲を背景色で塗りつぶされてしまうため、
updateメソッドではrepaintメソッドを呼び出すようにした。
public void update(){
repaint();
}
また、MediaTrackerクラスを使用して、イメージを読み込むまで待つようにした。
・BlackJack.javaはこちら(使用してない)
・BlackJackApp.javaはこちら
・Dealer.javaはこちら
・Player.javaはこちら
・Card.javaはこちら
・Deck.javaはこちら
・Hand.javaはこちら
の6つのクラスで構成される。1つは使用してない。
・BlackJackApp.htmlは実行
<html>
<body>
<applet code="BlackJackApp.class" width=400 height=320>
</applet>
</body>
</html>
1)
ブロック崩しゲーム
プログラムのソースコード
クラスは全部でModelクラス、Viewクラス、Controlクラス、InfomationクラスViewPanelクラス、Mainクラスの6つから構成される。
MVCモデル
解説
・ゲームのスタートボタンが押されると、BlockViewクラス内のGame start メソッド内で、スレッドをスタートさせる。
・スレッドがスタートされると、runメソッド内で、ViewクラスのgetViewinfoメソッドを使って、現在の描画するための情報を取得する。
・現在の情報を引数に、ModelクラスのgetNextInfomationメソッドで新しい情報を取得。
・新しい情報を得たら、それを引数に、BlockViewクラスのrepaintViewメソッドで描画命令してます。
・新しい情報を引数に、BlockViewクラスのsetViewInfoメソッドで新しい情報に更新してます。
Modelクラス・・・位置を計算する
Viewクラス・・・キーボード入力を判断
ViewPanelクラス・・・描画処理
Controlクラス・・・クラスの間のやり取りの中継。
Infomationクラス・・・情報格納クラス
Mainクラス・・・メインスレッドクラス
・Modelクラスは、ボール、ラケット、ブロック等の位置をを基に次のボールの位置を計算するクラスです。
・Viewクラスは、目に見える部分のボール、カーソル、ブロック、ボタンの描画。又、キーボード(マウス)からの入力を判断するクラスです。
ViewPanelクラスは、描画のみを行うクラスです。
・ControlクラスはView,Model間のやり取りの中継をするクラスです。(modelに計算指示、Viewに描画命令等)
・Infomationクラスは、ボール、ラケット、ブロック等、の位置情報や幅、高さなどの情報のクラスです。
Mainクラスは、メインスレッドがあるクラス
ViewクラスとModelクラスの間のやり取りをControlクラスが行い、その時の引数はInfomationオブジェクト。
流れ
クラス図
反射
1.ラケットの端に当たった時は、反射角が変わるようにしました。
まっすぐ落ちてきたボールがラケットの端に当たった時は、赤色の線のように斜めに跳ね返すようにしました。
斜めに落ちてきたボールがラケットの端に当たった時は、黒色の線の垂直に打ち返すようにしました。
/* ラケットに当たったときの処理 */
if ( by + ballHeight >= ry && by + ballHeight
<= ry+raketHeiht && bx + ballWidth >= rx && bx <=
rx+raketWidth )
{ラケットに当たった処理}
・Blockmain.javaはこちら
・BlockControlThread.javaはこちら
・BlockModel.javaはこちら
・BlockView.javaはこちら
・BlockViewInfo.javaはこちら
・BlockViewPanel.javaはこちら
の6つのクラスで構成される。
・Blockmain.javaは実行
TOPへ
|