//============================================================================= // UpperHand.java // Copyright(c) 1998 Satoshi Kobayashi, All rights reserved. //============================================================================= import java.applet.*; import java.awt.*; //============================================================================= // class UpperHand // Applet UpperHand を定義するクラス。 //============================================================================= public class UpperHand extends Applet { //----------------------------------------------------------------------------- // クラス変数定義 //----------------------------------------------------------------------------- // バージョン表示用文字列 private final static String version = "UpperHand Game 1.1a5"; // 著作権表示文字列 private final static String copyright = "Copyright(c) 1998 Satoshi Kobayashi, All rights reserved."; // 使用する色のインデックス public final static int BG_COLOR = 0; // 背景色 public final static int FG_COLOR = 1; // 前景色 public final static int NUTRAL_COLOR = 2; // 中立の玉の色 public final static int FIRST_COLOR = 3; // 先手の玉の色 public final static int SECOND_COLOR = 4; // 後手の玉の色 // 使用する色の定義 public final static Color color[] = { Color.lightGray, Color.black, Color.green.darker(), Color.blue, Color.red }; //----------------------------------------------------------------------------- // インスタンス変数定義 //----------------------------------------------------------------------------- // ゲーム盤 private UpperHandGame game; // ゲーム盤を表示するコンポーネント private UpperHandBoardView boardView; // プレーヤーを表示するコンポーネント private UpperHandPlayerView playerView[] = new UpperHandPlayerView[2]; // 持ち玉を表示するコンポーネント private UpperHandBallView ballView[] = new UpperHandBallView[2]; //----------------------------------------------------------------------------- // メソッド定義 //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // public void init() // Appletの初期化処理を行う。 //----------------------------------------------------------------------------- public void init() { // ゲーム盤を新規に作成し、初期化する。 game = new UpperHandGame(); game.init(); // 背景色を設定する。 setBackground(UpperHand.color[UpperHand.BG_COLOR]); // コンポーネントを作成する。 createComponent(); // コンポーネントを配置する。 layoutComponent(); // ゲームを開始する。 startGame(); } //----------------------------------------------------------------------------- // private void createComponent() // コンポーネントを作成する。 //----------------------------------------------------------------------------- private void createComponent() { // すべてのコンポーネントを取り除く。 removeAll(); // ゲーム盤を表示するコンポーネントを作成する。 boardView = new UpperHandBoardView(game, this); for (int p = UpperHandGame.FIRST; p <= UpperHandGame.SECOND; p++) { // プレーヤーを表示するコンポーネントを作成する。 playerView[p] = new UpperHandPlayerView(game, p); // 持ち玉を表示するコンポーネントを作成する。 ballView[p] = new UpperHandBallView(game, p); } } //----------------------------------------------------------------------------- // private void layoutComponent() // コンポーネントを配置する。 //----------------------------------------------------------------------------- private void layoutComponent() { setLayout(null); boardView.reshape(0, 0, 160, 160); add(boardView); playerView[UpperHandGame.FIRST].reshape(160, 0, 98, 16); add(playerView[UpperHandGame.FIRST]); ballView[UpperHandGame.FIRST].reshape(160, 16, 98, 56); add(ballView[UpperHandGame.FIRST]); playerView[UpperHandGame.SECOND].reshape(160, 72, 98, 16); add(playerView[UpperHandGame.SECOND]); ballView[UpperHandGame.SECOND].reshape(160, 88, 98, 56); add(ballView[UpperHandGame.SECOND]); } //----------------------------------------------------------------------------- // public void start() // Appletのページに移動したときの処理を行う。 //----------------------------------------------------------------------------- public void start() { } //----------------------------------------------------------------------------- // public void stop() // Appletのページから離れるときの処理を行う。 //----------------------------------------------------------------------------- public void stop() { } //----------------------------------------------------------------------------- // public void destroy() // Appletを破棄するときの処理を行う。 //----------------------------------------------------------------------------- public void destroy() { } //----------------------------------------------------------------------------- // public String getAppletInfo() // Appletのバージョン、著作件表示を返す。 //----------------------------------------------------------------------------- public String getAppletInfo() { return version + " " + copyright; } //----------------------------------------------------------------------------- // public boolean mouseDown(Event evt, int x, int y) // マウスのボタンが押されたときの処理を行う。 //----------------------------------------------------------------------------- public boolean mouseDown(Event evt, int x, int y) { if (game.isFinish()) { // ゲームが終了している場合 startGame(); // 新しいゲームを始める。 } return true; } //----------------------------------------------------------------------------- // public boolean mouseEnter(Event evt, int x, int y) // マウスがApplet内に入ったときの処理を行う。 //----------------------------------------------------------------------------- public boolean mouseEnter(Event evt, int x, int y) { // Appletの情報をステータスバーに表示する。 showStatus(getAppletInfo()); return true; } //----------------------------------------------------------------------------- // public void startGame() // ゲームを開始する。 //----------------------------------------------------------------------------- public void startGame() { // プレーヤーの名前を設定する。 playerView[UpperHandGame.FIRST].playerName("First player"); playerView[UpperHandGame.SECOND].playerName("Second player"); // ゲームを初期化する。 game.init(); // 全コンポーネントに再描画の「きっかけ」をわたす。 Component comp[] = getComponents(); for (int i = 0; i < comp.length; i++) { comp[i].repaint(); } } //----------------------------------------------------------------------------- // public void makeMove(int p) // 位置pに着手する。 //----------------------------------------------------------------------------- public void makeMove(int p) { // 着手する。 game.makeMove(p); // 全コンポーネントに再描画の「きっかけ」をわたす。 Component comp[] = getComponents(); for (int i = 0; i < comp.length; i++) { comp[i].repaint(); } } }