//--------------------------------------------------------------------// // 戦略シミュレーション // //--------------------------------------------------------------------// // クラス一覧 // interface Parameters パラメータインターフェイス // interface Words 使用単語インターフェイス // interface ControlPanel コントロールパネルインターフェイス // interface DivisionAction 部隊行動パラメータインターフェイス // interface DivisionStatus 部隊状態パラメータインターフェイス // interface Exchange 交換ボタンインターフェイス // class WCP メイン // class WCPPanel フィールド表示部分 // class WCPDataCore データ管理 // class Formation 部隊編成クラス // class Supply 部隊補給クラス // class FieldParts フィールド部品クラス // class Castle 城クラス // class Grid フィールドデータクラス // class Nation 国家クラス // class Division 部隊クラス // class Weapon 兵種クラス // class General 武将クラス // class StringList 文字列リストクラス // class drawDivision 部隊描画クラス // class ControlButton コントロールボタンクラス // class ImageData イメージクラス // class ClearFilter 指定した色を透明にするフィルタ // class halfClearFilter 半透明にするフィルタ //--------------------------------------------------------------------// interface Parameters{ static final int FIELDMAX=100; // フィールド部品種類数の上限 static final int GRIDMAX=100000; // フィールドデータの上限 static final int CASTLEMAX=100; // 城の数の上限 static final int NATIONMAX=50; // 国家数の上限 static final int WEAPONMAX=50; // 兵種数の上限 static final int GENERALMAX=1000; // 武将数の上限 static final int NATIONDIV=100; // 国家所属部隊数の上限 static final int DIVGENERAL=10; // 部隊所属将軍数の上限 static final int COORDMAX=1000; // 座標値の上限 static final int TURNMAX=10000; // ターン数の上限 static final int MAXNUMBER=10000; // 物資・兵力の上限 static final int MAXCLASS=1000; // 城のパラメータの上限 static final int MAXPARAMETER=100; // パラメータの上限 static final int MINPARAMETER=10; // パラメータの下限 static final int NONE=-1; // ボタン・パネル選択 static final int GAME=0; // ゲーム続行 static final int GAMEOVER=-1; // ゲームオーバー static final int GAMEWIN=1; // ゲーム勝利 static final int GRID=10; // 描画範囲内のマス目の数 static final int GHALF=5; static final int MARGINX=4; // マージン static final int MARGINY=2; static final int MOVING=10; // 移動コマ最大数 static final int COST=100; // 建設・募兵コスト static final int MOVEMAX=5; // 必要機動力の上限 static final int EFFECTMAX=10; // 地形効果の上限 static final int AMBUSHCOEF=2; // 奇襲攻撃の係数 static final double FRONTCOEF=1.0; // 正面攻撃の係数 static final double SIDECOEF=0.8; // 側面攻撃の係数 static final double BACKCOEF=0.5; // 背後からの攻撃の係数 static final double ESCAPE=0.1; // 兵士脱走率 static final double EAT=1.0/30.0; // 1ターンの兵糧消費量 static final int NEWSOLDIER=10; // 新兵の訓練度 static final int ROYALDIVISION=0; // 王の所属する部隊 static final int CURSOR=0; // カーソル部品 static final int SELECTEDAREA=1; // 選択範囲部品 } interface Words{ static final String NEXTPAGE="次ページ"; static final String YES="はい",NO="いいえ"; static final String SELECTPLAYERNATION="プレイヤーの国家を選んで下さい"; static final String TACTICS="の戦略",TURN="ターン"; static final String GAMEOVERMESSAGE="滅亡しました"; static final String GAMECLEARMESSAGE="天下を統一しました"; static final String MOVENEED="必要機動力:"; static final String EFFECT="地形効果:"; static final String FOODLABEL="兵糧:"; static final String MONEYLABEL="資金:"; static final String FOODPRODUCT="農業生産:"; static final String MONEYPRODUCT="商業生産:"; static final String CASTLECLASS="城郭規模:"; static final String KING="君主:"; static final String SOLNUMBER="兵数:"; static final String DIVNUMBER="部隊数:"; static final String GENERALNUMBER="武将数:"; static final String TRAIN="訓練度:"; static final String WEAPON="兵種:"; static final String MOVEP="機動力:"; static final String POSITION="位置:"; static final String GENERALLIST[]={"武将名 ","政略","知略","指揮" ,"武力","魅力"}; static final String DIVSTATUS[]={"待機","移動済","行動済"}; static final String ARMYNAME[]={"第","軍"}; static final String AMBUSHD="伏兵"; static final String NATIONNAME="国家名 "; static final String DIVNAME="部隊名 "; static final String WEAPONNAME="兵種 "; interface ControlPanel{ static final int LOCALMAP=-1; // 画面モード static final int GLOBALMAP=0; static final int DIVISIONLIST=1; static final int NATIONLIST=2; static final int TURNENDBUTTON=3; static final String CNTPANELBUTTON[]={"全体マップ","部隊一覧","国家一覧" ,"ターン終了"}; interface DivisionAction{ static final int MOVE=0; // 状態スイッチ static final int ATTACK=1; static final int DIRECTION=2; static final int FORMATION=3; static final int TRAINING=4; static final int SUPPLY=5; static final int CONSTRUCT=6; static final int CONSTFOOD=7; static final int CONSTMONEY=8; static final int CONSTCASTLE=9; static final int OCCUPY=10; static final int AMBUSH=11; static final int INFOMATION=12; static final int ACTIONEND=13; static final int ACTIONDONE=14; static final int PLAYERTURN=15; static final int ENEMYTURN=16; static final int SELECT=17; static final int EXCHANGE=18; static final int NATIONSELECT=19; static final int TURNEND=20; static final String DIVBUTTON[]={"移動","攻撃","方向","編成","訓練" ,"補給","建設","農業","商業","城郭" ,"占領","伏兵","情報","終了","済"}; static final String SELECTMESSAGE[]={"移動先を指定して下さい","攻撃相手を指定して下さい" ,"方向を指定して下さい","編成相手を指定して下さい"}; static final String TURNENDCONFIRM="行動を終了しますか?"; interface DivisionStatus{ static final int WAIT=0; // 部隊の状態 static final int MOVED=1; static final int DONE=2; static final int NORTH=0; // 部隊の向いている方向 static final int EAST=1; static final int SOUTH=2; static final int WEST=3; interface Exchange{ static final int DELTA[]={1000,100,10}; // 交換量 static final String DELTALABEL1[]={"1000 >","100 >","10 >"}; static final String DELTALABEL2[]={"< 1000","< 100","< 10"}; static final int LEFTRIGHT=0; // 交換方向 static final int RIGHTLEFT=1; static final String SOLDIERSUPPLY="募兵"; static final String DECIDE="決定",CANCEL="取消"; class WCPDataCore static final int MINIMUM=-10000; // 最小値 class drawDivision private static final int POINT=8; // 描画形状の頂点数 private static final double NORTHX[]={0.0,0.25,0.25,0.75,0.75,1.0,1.0,0.0}; private static final double NORTHY[]={0.25,0.25,0.0,0.0,0.25,0.25,1.0,1.0}; private static final double EASTX[]={0.75,0.75,1.0,1.0,0.75,0.75,0.0,0.0}; private static final double EASTY[]={0.0,0.25,0.25,0.75,0.75,1.0,1.0,0.0}; private static final double SOUTHX[]={0.0,0.25,0.25,0.75,0.75,1.0,1.0,0.0}; private static final double SOUTHY[]={0.75,0.75,1.0,1.0,0.75,0.75,0.0,0.0}; private static final double WESTX[]={0.25,0.25,0.0,0.0,0.25,0.25,1.0,1.0}; private static final double WESTY[]={0.0,0.25,0.25,0.75,0.75,1.0,1.0,0.0}; class ImageData static final int NMAX=100; // テンプレート大きさ・部品数の上限 public class WCP extends Applet メイン public void init() データ読み込み public void destroy() メモリ開放 void getTemplateImage(String iname) テンプレートイメージ読み込み String iname : テンプレートイメージファイル名 class WCPPanel extends Panel フィールド表示部分 WCPPanel(URL base,String name,Image image,int imageSize ,String fontName,int fontSize,Color backColor,Color textColor) コンストラクタ URL base : 基準URL String name : データファイル名 Image image : テンプレートイメージ int imageSize : 部品イメージの大きさ String fontName : 文字フォント名 int fontSize : 文字フォントの大きさ Color backColor : 背景色 Color textColor : 文字色 void getData(URL base,String name,Image image,int imageSize) データ読み込み URL base : 基準URL String name : データファイル名 Image image : テンプレートイメージ int imageSize : 部品イメージの大きさ void setRunParameter(int waitTime1,int waitTime2,int attackAction) アニメーションパラメータの設定 int waitTime1 : 移動時表示待ち時間 int waitTime2 : 攻撃時表示待ち時間 int attackAction : 攻撃行動グラフィック表示回数 void start() 実行スタート public void run() 行動メソッド(実際の処理は以下のメソッドで行う) void moveRun() 移動行動 void attackRun() 攻撃行動 void trainingRun() 訓練行動 void enemyTurnRun() CPUの行動 void stop() 行動の停止 public void mouseClicked(MouseEvent e) public void mousePressed(MouseEvent e) void actionNationSelect() 国家選択画面での行動 void actionDivisionExchange() 部隊編成画面での行動 void actionSupply() 部隊補給画面での行動 void actionConstruct() 建設画面での行動 void actionInfomation() 部隊情報画面での行動 void actionTurnEnd() ターン終了確認画面での行動 void actionPlayerTurn() 通常状態での行動 void actionMove() 移動状態での行動 void actionAttack() 攻撃状態での行動 void actionDirection() 部隊方向の設定 void actionFormation() 編成部隊選択状態での行動 void actionGlobalMap() 全体マップでの行動 void actionDivisionList() 部隊リストでの行動 void actionNationList() 国家リストでの行動 public void mouseReleased(MouseEvent e) void mouseReleasedWait() 待機状態でのマウスリリースの反応 void mouseReleasedMoved() 移動終了状態でのマウスリリースの反応 void mouseReleasedDone() 行動終了状態でのマウスリリースの反応 void mouseReleasedEnemy() 敵部隊のマウスリリースの反応 public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseDragged(MouseEvent e) void mouseDraggedWait() 待機状態でのマウスドラッグの反応 void mouseDraggedMoved() 移動終了状態でのマウスドラッグの反応 void mouseDraggedDone() 行動終了状態でのマウスドラッグの反応 void mouseDraggedEnemy() 敵部隊のマウスドラッグの反応 public void mouseMoved(MouseEvent e) void mouseMovedConstruct() 建設状態でのマウス移動の反応 public void keyPressed(KeyEvent e){ public void keyReleased(KeyEvent e) public void keyTyped(KeyEvent e) void playerTurnEnd() プレイヤーターン終了 void nextTurn() 次のターンへ void setDivisionControlPanel(FontMetrics fm) 部隊コントロールパネル設定 void setControlPanel(FontMetrics fm) コントロールパネル設定 void setExchangePanel(FontMetrics fm) 交換ボタンパネル設定 public void update(Graphics g) 再表示 public void paint(Graphics g) 表示 void setScreen(Graphics g) 画面設定 void drawScreen(Graphics g) 画面描画 void drawLocalMap(Graphics g) マップ描画 void drawLocalMapBase(Graphics g) マップ描画 void drawTurn(Graphics g) ターン情報描画 void drawInfo(Graphics g,String string) 情報描画 String string : メッセージ文 void drawGlobalMap(Graphics g) 全体マップ描画 void drawDivisionList(Graphics g) 部隊リスト描画 void drawNationList(Graphics g) 国家リスト描画 void drawDivisionExchange(Graphics g,int x0,int y0,int xhalf,int sy) 部隊編成画面描画 int x0,y0 : 表示部分基準位置 int xhalf : 画面半幅 int sy : 一行の高さ void drawSupply(Graphics g,int x0,int y0,int xhalf,int sy) 部隊補給画面描画 int x0,y0 : 表示部分基準位置 int xhalf : 画面半幅 int sy : 一行の高さ void drawDivisionControlPanel(Graphics g) 部隊コントロールパネル表示 void drawDivisionControlWait(Graphics g) 部隊コントロールパネル(待機時)表示 void drawDivisionControlMoved(Graphics g) 部隊コントロールパネル(移動済時)表示 void drawDivisionControlDone(Graphics g) 部隊コントロールパネル(行動済時)表示 void drawDivisionControlEnemy(Graphics g) 部隊コントロールパネル(敵部隊)表示 void drawConstructPanel(Graphics g) 建設パネル表示 void drawControlPanel(Graphics g) コントロールパネル表示 void drawYesNoButton(Graphics g) Yes/Noパネル表示 void drawNextPageButton(Graphics g,int pageRange) 次ページボタン表示 void drawDecidePanel(Graphics g) 決定ボタンパネル表示 void drawExchangePanel(Graphics g) 部隊編成ボタンパネル表示 void drawSupplyPanel(Graphics g) 補給ボタンパネル表示 void drawCursorLocal(Graphics g) カーソルの描画 void drawCursorGlobal(Graphics g) 全体マップでのカーソルの描画 void drawCursorDivisionList(Graphics g) 部隊リストでのカーソルの描画 void drawCursorNationList(Graphics g) 国家リストでのカーソルの描画 void drawCursorDivisionExchange(Graphics g) 部隊編成画面でのカーソルの描画 void drawError(Graphics g,String message) エラーメッセージ表示 String message : エラーメッセージ class WCPDataCore extends Panel データ管理 WCPDataCore(InputStream is,Image image,int imageSize ,Color backColor,Color textColor) コンストラクタ InputStream is : データファイルストリーム Image image : テンプレートイメージ int imageSize : 部品イメージの大きさ Color backColor : 背景色 Color textColor : 文字色 void readData(InputStream is) throws IOException,FileFormatException 全体データ読み込み InputStream is : データファイルストリーム void readFieldPartsData(StreamTokenizer st) throws IOException フィールド部品データ読み込み StreamTokenizer st : ストリームトークナイザ void readFieldData(StreamTokenizer st) throws IOException フィールドデータ読み込み StreamTokenizer st : ストリームトークナイザ void readCastleData(StreamTokenizer st) throws IOException 城データ読み込み StreamTokenizer st : ストリームトークナイザ void readGeneralData(StreamTokenizer st) throws IOException 武将データ読み込み StreamTokenizer st : ストリームトークナイザ void readWeaponData(StreamTokenizer st) throws IOException 兵種データ読み込み StreamTokenizer st : ストリームトークナイザ void readNationData(StreamTokenizer st) throws IOException 国家データ読み込み StreamTokenizer st : ストリームトークナイザ void readIntNumbers(StreamTokenizer st,int array[],int n) throws IOException 複数の整数の読み込み StreamTokenizer st : ストリームトークナイザ int array[] : 整数格納配列 int n : 読み込む整数の数 void setDivFlag() 部隊位置の設定 void setPlayerNation(int nati) プレイヤーの国家の決定 int nati : 国家番号 void setGridSize(int viewSize) マス目の大きさの設定 int viewSize : 地図表示部分の大きさ void setViewPoint(int point) 視点の設定 int point : 座標位置 void setDivViewPoint(int nati,int div) 部隊位置に視点中心を設定 int nati : 国家番号 int div : 部隊番号 void nextNation() 次の国家 int divisionPoint(int nati,int div) 部隊位置獲得 int nati : 国家番号 int div : 部隊番号 int divisionFieldEffect(int nati,int div) 部隊の地形効果 int nati : 国家番号 int div : 部隊番号 int getMapPointLocal(int x,int y) フィールド位置の獲得 int x,y : 画面グリッド座標 int getMapPointGlobal(int x,int y) 全体マップでのフィールド位置の獲得 int x,y : 画面グリッド座標 int gridNation(int point) 領有している国家 int point : 座標位置 boolean canHide(int point) 伏兵可能判定 int point : 座標位置 boolean canHide(int nati,int div) 伏兵可能判定 int nati : 国家番号 int div : 部隊番号 boolean canHide(int nati,int div,int point,int x,int y) 伏兵可能判定 int nati : 国家番号 int div : 部隊番号 int x,y : 座標位置 void setDirection(int point) 部隊方向の設定 int point : 座標位置 void setCurrentDivision(int nation,int div) 行動中の国家の設定 int nation : 国家番号 int div : 部隊番号 void setMoveDistance(int nati,int div) 部隊移動可能範囲の設定 int nati : 国家番号 int div : 部隊番号 boolean setMoveDistance(int pt) 部隊移動可能範囲の設定 int pt : 座標位置 void FindDistance(int x,int y,int dist) 移動可能範囲の計算 int x,y : 基準座標 int dist : 残り移動歩数 boolean CheckMove(int xy,int dist) 移動可能の判定 int xy : 座標位置 int dist : 残り移動歩数 int Mobility(int xy) 必要機動力 int xy : 座標位置 void setMoveDivision(int point) 部隊移動の設定 int point : 座標位置 void moveDivision(int x,int y,int dist) 部隊移動の計算 int x,y : 基準座標 int dist : 残り移動歩数 void moveDraw(int step) 部隊移動描画 int step : 表示ステップ数 void clearMoveDistance() 部隊移動範囲の消去 boolean setAttackDistance(int point) 部隊攻撃可能範囲の設定 int point : 基準座標位置 void setAttackDistance(int point,int div) 部隊攻撃可能範囲の設定 int point : 座標位置 int div : 部隊番号 void FindAttack(int x,int y,int dist) 攻撃可能範囲の計算 int x,y : 基準座標 int dist : 残り移動歩数 boolean CheckAttack(int xy,int dist) 攻撃可能の判定 int xy : 座標位置 int dist : 残り移動歩数 void setAttackDivision(int point) 部隊攻撃の設定 int point : 座標位置 void setAttackDivision(int point,int nati,int div) 部隊攻撃の設定 int point : 座標位置 int nati : 国家番号 int div : 部隊番号 void attackDraw(int step) 部隊攻撃描画 int step : 表示ステップ数 void attackCalculate() 部隊攻撃ダメージ計算 void clearAttackDistance() 部隊攻撃可能範囲の消去 boolean setFormationPlace(int point) 編成対象位置の設定 int point : 座標位置 void FindFormationPlace(int x,int y) 編成可能範囲の計算 int x,y : 基準座標 boolean CheckFormation(int xy) 編成可能の判定 int xy : 座標位置 void setFormationDivision(int point) 編成部隊の設定 int point : 座標位置 void clearFormation() 編成部隊選択の解除 void setExchangeDivision(int point) 部隊編成の設定 int point : 座標位置 void foodExchange(int direc,int food) 兵糧交換 int direc : 物資移動方向 int food : 交換する兵糧の量 void moneyExchange(int direc,int money) 所持金交換 int direc : 物資移動方向 int money : 交換する資金の量 void soldierExchange(int direc,int number) 兵士交換 int direc : 物資移動方向 int number : 交換する兵士の数 void generalExchange(int direc,int general) 武将交換 int direc : 物資移動方向 int general : 交換する将軍番号 void formationSet(int point) 部隊編成の決定 int point : 座標位置 void formationCancel() 部隊編成の取消 void setSupply(int point) 部隊補給の設定 int point : 座標位置 void foodSupply(int direc,int food) 兵糧補給 int direc : 物資移動方向 int food : 交換する兵糧の量 void moneySupply(int direc,int money) 資金補給 int direc : 物資移動方向 int money : 交換する資金の量 void soldierSupply(int point) 募兵 int point : 座標位置 void supplySet(int point) 部隊補給の決定 int point : 座標位置 void supplyCancel() 部隊補給の取消 void constructFoodProduct(int point) 城の農業開発 int point : 座標位置 void constructMoneyProduct(int point) 城の商業開発 int point : 座標位置 void constructCastleClass(int point) 城の規模拡大 int point : 座標位置 boolean Training() 部隊訓練 void occupyCastle(int point) 城の占領 int point : 座標位置 void findAttackDivision(int nati,int div) 攻撃可能部隊の探索 int nati : 国家番号 int div : 部隊番号 void ambushDivision() 伏兵 void allWait() 全部隊待機状態 void actionWait() 待機状態 void moveDone() 移動終了 void actionDone() 行動終了 void nextTurn() 次のターンへ void deleteDivision(int nati,int div) 部隊削除 int nati : 国家番号 int div : 部隊番号 void deleteNation(int nati) 国家削除 int nati : 国家番号 void checkComplete(int deletedNation) ゲームクリアのチェック int deletedNation : 国家番号 void gameClear() ゲームクリア void gameOver() ゲームオーバー void drawLocalMap(Graphics g) マップの描画 void drawGlobalMap(Graphics g) 全体マップの描画 void drawDivisionLocal(Graphics g,Color frameColor) 部隊の描画 Color frameColor : 点滅時塗潰し色 void drawDivisionGlobal(Graphics g) 全体マップでの部隊の描画 void drawMoveDistance(Graphics g) 移動範囲の描画 void drawAttackDistance(Graphics g) 攻撃可能範囲の描画 void drawFormationPlace(Graphics g) 編成可能位置の描画 void drawNationList(Graphics g,int sy,int indexViewRange,int currentPage) 国家リストの描画 int sy : 一行の高さ int indexViewRange : 1ページ当りのリスト行数 int currentPage : 現在のリストページ void drawDivisionList(Graphics g,FontMetrics fm,int sy,int indexViewRange ,int currentPage) 部隊リストの描画 int sy : 一行の高さ int indexViewRange : 1ページ当りのリスト行数 int currentPage : 現在のリストページ void drawDivisionExchange(Graphics g,int x0,int y0,int xhalf,int sy) 部隊編成の描画 int x0,y0 : 表示部分基準位置 int xhalf : 画面半幅 int sy : 一行の高さ void drawSupply(Graphics g,int x0,int y0,int xhalf,int sy) 部隊補給の描画 int x0,y0 : 表示部分基準位置 int xhalf : 画面半幅 int sy : 一行の高さ void drawStatus(Graphics g,FontMetrics fm,int point,int x0,int y0 ,int fx,int fy,int sy) ステータスの描画 int point : 座標位置 int x0,y0 : 表示部分基準位置 int fx,fy : 表示部分の大きさ int sy : 一行の高さ void drawFieldStatus(Graphics g,FontMetrics fm,int point,int x0,int y0 ,int sy) 地形情報の描画 int point : 座標位置 int x0,y0 : 表示部分基準位置 int sy : 一行の高さ void drawDivStatus(Graphics g,FontMetrics fm,int nati,int div ,int x0,int y0int sy) 部隊情報の描画 int nati : 国家番号 int div : 部隊番号 int x0,y0 : 表示部分基準位置 int sy : 一行の高さ void drawDivStatus(Graphics g,FontMetrics fm,int point,int x0,int y0 ,int sy,Color backColor,Color textColor) 部隊情報の描画 int point : 座標位置 int x0,y0 : 表示部分基準位置 int sy : 一行の高さ Color backColor : 背景色 Color textColor : 文字色 class Formation 部隊編成クラス Formation(Division division1,Division division2) コンストラクタ Division formDivision1,formDivision2 : 編成部隊 void foodExchange1(int food) 兵糧交換 int food : 交換する兵糧の量 void foodExchange2(int food) 兵糧交換 int food : 交換する兵糧の量 void moneyExchange1(int money) 所持金交換 int money : 交換する所持金の量 void moneyExchange2(int money) 所持金交換 int money : 交換する所持金の量 void soldierExchange1(int number) 兵士交換 int number : 交換する兵士の数 void soldierExchange2(int number) 兵士交換 int number : 交換する兵士の数 void generalExchange1(int general) 武将交換 int general : 交換する武将の番号 void generalExchange2(int general) 武将交換 int general : 交換する武将の番号 int soldierNumber1() 兵士数 int soldierNumber2() 兵士数 int generalNumber1() 武将数 int generalNumber2() 武将数 void drawDivisionExchange(Graphics g,int x0,int y0,int xhalf,int sy) 部隊編成の描画 int x0,y0 : 表示部分基準位置 int xhalf : 画面半幅 int sy : 一行の高さ class Supply 部隊補給クラス Supply(Division division,Castle castle) コンストラクタ Division division : 補給部隊 Castle castle : 補給する城 void foodDivisionToCastle(int food) 兵糧交換 int food : 交換する兵糧の量 void foodCastleToDivision(int food) 兵糧交換 int food : 交換する兵糧の量 void moneyDivisionToCastle(int money) 資金交換 int money : 交換する資金の量 void moneyCastleToDivision(int money) 資金交換 int money : 交換する資金の量 void soldierSupply() 募兵 void drawSupply(Graphics g,int x0,int y0,int xhalf,int sy) 部隊補給の描画 int x0,y0 : 表示部分基準位置 int xhalf : 画面半幅 int sy : 一行の高さ class FieldParts extends Panel フィールド部品クラス FieldParts(String name,int move,boolean hide,Image image,Color color) コンストラクタ String name : フィールド部品名 int move : フィールド部品移動必要機動力 boolean hide : 伏兵可能スイッチ Image image : フィールド部品イメージ Color color : フィールド部品表示色 FieldParts(String name,int move,int effect,boolean hide,Image image,Color color) コンストラクタ String name : フィールド部品名 int move : フィールド部品移動必要機動力 int effect : フィールド部品地形効果 boolean hide : 伏兵可能スイッチ Image image : フィールド部品イメージ Color color : フィールド部品表示色 void drawParameter(Graphics g,FontMetrics fm,int x0,int y0,int sy ,int x,int y) 地形情報の表示 int x0,y0 : 表示部分基準位置 int sy : 一行の高さ int x,y : 座標位置 class Castle extends FieldParts 城クラス Castle(String name,int move,Image image,Color color,int food,int money ,int foodProduct,int moneyProduct,int castleClass,int x,int y) コンストラクタ String name : フィールド部品名 int move : フィールド部品移動必要機動力 Image image : フィールド部品イメージ Color color : フィールド部品表示色 int food : 兵糧 int money : 資金 int foodProduct : 農業生産 int moneyProduct : 商業生産 int castleClass : 城郭規模 int x,y : 城の位置 Castle(Castle castle) コンストラクタ Castle castle : 城クラス void setNation(int nation,Color nationColor) 所有している国家の設定 int nation : 所有している国家 Color nationColor : 所有している国家の色 void SupplyFood(int supply) 兵糧補充 int supply : 補充量 void SupplyMoney(int supply) 所持金補充 int supply : 補充量 int SupplySoldier(int divisionAbility){ 兵士補充 int divisionAbility : 部隊の兵士補充能力 int FoodSupplyLimit(){ 兵糧補充可能量 int MoneySupplyLimit(){ 資金補充可能量 void Product() 生産 void constructFoodProduct(int construct) 城の農業開発 int construct : 建設上昇値 void constructMoneyProduct(int construct) 城の商業開発 int construct : 建設上昇値 void constructCastleClass(int construct) 城の規模拡大 int construct : 建設上昇値 boolean canFoodConstruct() 農業開発可能 boolean canMoneyConstruct() 商業開発可能 boolean canCastleConstruct() 城郭開発可能 int castleEffect(int castleClass) 城の地形効果 void drawParameter(Graphics g,FontMetrics fm,int x0,int y0,int sy ,int x,int y,Color textColor) 城情報の表示 int x0,y0 : 表示部分基準位置 int sy : 一行の高さ int x,y : 座標位置 Color textColor : 文字色 void drawSupply(Graphics g,int x0,int y0,int sy) 部隊補給の描画 int x0,y0 : 表示部分基準位置 int sy : 一行の高さ class Grid フィールドデータクラス Grid(int x,int y,int field,int division,int moveDistance,int attackDistance) コンストラクタ int x,y : グリッド座標 int field : フィールドデータ int division : 部隊位置フラッグ int moveDistance : 移動距離フラッグ int attackDistance : 攻撃距離フラッグ void setCastle(int index) 城設置 int index : 城番号 void setDivision(int nation,int division) 部隊設置 int nation : 国家番号 int division : 部隊番号 void setMoveDistance(int moveDistance) 移動距離設定 int moveDistance : 移動距離フラッグ void setAttackDistance(int attackDistance) 攻撃範囲設定 int attackDistance : 攻撃距離フラッグ void setFormationPlace() 編成位置設定 void formationOff() 編成解除 class Nation 国家クラス String name,kingName; // 国家名・王の名 Color color,textColor; // 国家色 int divisionNumber=0; // 国家内の部隊数 Division division[]=new Division[DMAX]; // 部隊クラス Nation(String name,Color color,Color textColor) コンストラクタ String name : 国家名 Color color,textColor : 国家色 Nation(Nation nation) コンストラクタ Nation nation : 国家クラス void addDivision(int id,String name,int nation,int soldierNumber,int training ,int food,int money,int dx,int dy,int direction ,Weapon weapon) 部隊の追加 int id : 部隊番号 String name : 部隊名 int nation : 部隊が所属する国家 int soldierNumber : 部隊兵数 int training : 部隊訓練度 int food : 所持兵糧 int money : 所持金 int dx,dy : 部隊の位置 int direction : 部隊の向いている方向 Weapon weapon : 兵種 void addDivision(int id,Division div) 部隊の追加 int id : 部隊番号 Division div : 追加する部隊 void resetDivision(int id,Division div) 部隊の再設定 int id : 変更する部隊番号 Division div : 変更後の部隊 void deleteDivision(int id) 部隊の削除 int id : 変更する部隊番号 void deleteAllDivision() 全部隊の削除 void addKing(General king) 国王の設定 General king : 国王 void addGeneral(int div,General gen) 部隊所属将軍の追加 int div : 部隊番号 General gen : 追加する将軍 int generalNumber(int div) 武将数 int div : 部隊番号 int soldierNumber(int div) 兵士数 int div : 部隊番号 int pointX(int div) 部隊の位置 int div : 部隊番号 int pointY(int div) 部隊の位置 int div : 部隊番号 void moveDivision(int div,int x,int y,int direction) 部隊の移動 int div : 部隊番号 int x,y : 移動後の部隊の位置 int direction : 移動後の部隊の向いている方向 void setDirection(int div,int direction) 部隊の方向転換 int div : 部隊番号 int direction : 移動後の部隊の向いている方向 void allWait() 全部隊待機状態 void actionWait(int div) 待機状態 int div : 部隊番号 void moveDone(int div) 移動終了 int div : 部隊番号 void actionDone(int div) 行動終了 int div : 部隊番号 boolean isHide(int div) 伏兵判定 int div : 部隊番号 void appear(int div) 伏兵解除 int div : 部隊番号 void ambush(int div) 伏兵 int div : 部隊番号 void Damage(int div,int damage) 部隊の戦闘によるダメージ int div : 部隊番号 int damage : 減少する兵数 void useMoney(int div,int cost) 部隊の資金使用 int div : 部隊番号 int cost : 使用する資金 void Training(int div) 部隊訓練 int div : 部隊番号 void eatFood() 兵糧消費 boolean CheckFormation(int div1,int div2) 編成可能の判定 int div1,div2 : 部隊番号 int Construct(int div) 部隊建設能力 int div : 部隊番号 int AttackRange(int div) 攻撃射程 int div : 部隊番号 int soldierNumber() 総兵士数 int generalNumber() 総武将数 void drawDivisionLocal(Graphics g,int div,int gxy,int x0,int y0) 部隊の描画 int div : 部隊番号 int gxy : グリッドの表示サイズ int x0,y0 : 表示部分基準位置 void drawDivisionGlobal(Graphics g,int div,int gxy,int x0,int y0) 全体マップでの部隊の描画 int div : 部隊番号 int gxy : グリッドの表示サイズ int x0,y0 : 表示部分基準位置 void drawNationList(Graphics g,int x0,int y0) 国家リストの描画 int x0,y0 : 表示部分基準位置 void drawDivisionList(Graphics g,FontMetrics fm,int div,int x0,int y0) 部隊リストの描画 int div : 部隊番号 int gxy : グリッドの表示サイズ int x0,y0 : 表示部分基準位置 void drawParameter(Graphics g,FontMetrics fm,int div,int x0,int y0,int sy ,Color textColor) 部隊情報の表示 int div : 部隊番号 int x0,y0 : 表示部分基準位置 int sy : 一行の高さ Color textColor : 文字色 class Division 部隊クラス Division(int id,String name,int nation,int soldierNumber,int training ,int food,int money,int x,int y,int direction ,Weapon weapon) コンストラクタ int id : 部隊番号 String name : 部隊名 int nation : 部隊が所属する国家 int soldierNumber : 部隊兵数 int training : 部隊訓練度 int food : 所持兵糧 int money : 所持金 int x,y : 部隊の位置 int direction : 部隊の向いている方向 Weapon weapon : 兵種 Division(int id,Division division) コンストラクタ int id : 部隊番号 Division division : 部隊クラス void addGeneral(General gen) 部隊所属将軍の追加 General gen : 追加する武将 void deleteGeneral(int del) 部隊所属将軍の削除 int del : 削除する武将番号 void setParameter() 部隊内武将パラメータの設定 void setDivisionParameter() 部隊パラメータの設定 void moveDivision(int x,int y,int direction) 部隊の移動 int x,y : 移動後の部隊の位置 int direction : 移動後の部隊の向いている方向 void setDirection(int direction) 部隊の方向転換 int direction : 移動後の部隊の向いている方向 void actionWait() 待機状態 void moveDone() 移動終了 void actionDone() 行動終了 void setStatus(int status) 状態設定 int status : 変更後の状態 void appear() 伏兵解除 void ambush() 伏兵 void SupplyFood(int supply) 兵糧補充 int supply : 補充量 void SupplyMoney(int supply) 所持金補充 int supply : 補充量 void SupplySoldier(int supply,int training2) 兵士補充 int supply : 補充量 int training2 : 補充される兵士の訓練度 int FoodSupplyLimit() 兵糧補充可能量 int MoneySupplyLimit() 資金補充可能量 int SoldierSupplyLimit() 兵士補充可能量 boolean useMoney(int cost) 部隊の資金使用 int cost : 使用資金 void Damage(int damage) 部隊の戦闘によるダメージ int damage : 減少する兵士数 void Training() 部隊訓練 void eatFood() 兵糧消費 int Construct() 部隊建設能力 int Bonus() 物資調達ボーナス int getSoldier() 兵士補充能力 void drawDivisionLocal(Graphics g,int gxy,int x0,int y0 ,Color color,Color textColor) 部隊の描画 int gxy : グリッドの表示サイズ int x0,y0 : 表示部分基準位置 Color color : 部隊の所属する国家色 Color textColor : 文字色 void drawDivisionGlobal(Graphics g,int gxy,int x0,int y0 ,Color color,Color textColor) 全体マップでの部隊の描画 int gxy : グリッドの表示サイズ int x0,y0 : 表示部分基準位置 Color color : 部隊の所属する国家色 Color textColor : 文字色 void drawDivisionList(Graphics g,int x0,int y0) 部隊リストの描画 int x0,y0 : 表示部分基準位置 void drawDivisionExchange(Graphics g,int x0,int y0,int sy) 部隊編成の描画 int x0,y0 : 表示部分基準位置 int sy : 一行の高さ void drawParameter(Graphics g,FontMetrics fm,int x0,int y0,int sx,int sy) 部隊情報の表示 int x0,y0 : 表示部分基準位置 int sx : 国家名表示幅 int sy : 一行の高さ void drawParameter(StringList list,FontMetrics fm,int x0,int sx,int sy) 部隊情報の表示 int x0 : 表示部分基準位置 int sx : 国家名表示幅 int sy : 一行の高さ void drawFullParameter(Graphics g,FontMetrics fm,int x0,int y0,int sx,int sy) 部隊情報の表示 int x0,y0 : 表示部分基準位置 int sx : 国家名表示幅 int sy : 一行の高さ String drawName(String name) 表示部隊名 String name : 部隊名 class Weapon 兵種クラス Weapon(int id,String name,int move,int attack,int attackRange,boolean counter ,int defense,int cost) コンストラクタ int id : 兵種番号 String name : 兵種名 int move : 基本移動力 int attack : 基本攻撃力 int attackRange : 攻撃射程 boolean counter : 攻撃に対し反撃を喰らうか int defense : 基本防御力 int cost : コスト class General 武将クラス General(int id,String name,int politics,int strategy,int command ,int strength,int charisma) コンストラクタ int id : 武将番号 String name : 武将名 int politics : 武将の政略 int strategy : 武将の知略 int command : 武将の指揮 int strength : 武将の武力 int charisma : 武将の魅力 void setDivision(int nation,int division) 所属部隊の設定 int nation : 武将が所属する国家 int division : 武将が所属する部隊 void setKing() 王の設定 void drawParameter(StringList list) 武将情報の表示 class drawDivision 部隊描画クラス public static void draw(Graphics g,int gxy,int x0,int y0 ,int soldierNumber,int direction,boolean ambush ,Color color,Color textColor) 部隊の描画 int gxy : グリッドの表示サイズ int x0,y0 : 表示部分基準位置 int soldierNumber : 部隊の兵数 int direction : 部隊の向いている方向 boolean ambush : 伏兵状態 Color color : 部隊の所属する国家色 Color textColor : 文字色 class StringList 文字列リストクラス StringList(Graphics g,int x0,int y0) コンストラクタ int x0,y0 : 表示部分基準位置 void setColor(Color color) 色の変更 Color color : 色 void drawString(String string) 文字の描画 String string : 表示文字列 void drawString(String string,String stab) 文字の描画 String string : 表示文字列 String stab : 表示位置移動用文字列 void tabString(String string) 表示位置移動 String string : 表示位置移動用文字列 void space() 表示位置移動 void drawNumber(int number,int maxnumber) 数字の描画 int number : 描画する数字 int naxnumber : 描画する数字の最大値 void drawNumber(int number,String length) 数字の描画 int number : 描画する数字 String length : 描画用文字列 void drawStringNumber(String string,int number,int maxnumber) 文字・数字項目の描画 String string : 表示文字列 int number : 描画する数字 int naxnumber : 描画する数字の最大値 void drawStrings(String string1,String string2,String smax) 文字項目の描画 String string1,string2 : 表示文字列 String stab : 表示位置移動用文字列 void setPosition(int x) 位置合わせ int x : 表示位置 void setPosition(int x,int y) 位置合わせ int x,y : 表示位置 void lineFeed(int height) 改行 it height : 文字高さ class ControlButton ボタンクラス ControlButton(FontMetrics fm,String label,int x0,int y0) コンストラクタ String label : ボタンラベル int x0,y0 : 基準位置 ControlButton(FontMetrics fm,String label,int x0,int y0,int x,int y) コンストラクタ String label : ボタンラベル int x0,y0 : 基準位置 int x,y : ボタン大きさ void draw(Graphics g,Color backColor,Color textColor) ボタン描画 Color backColor : 背景色 Color textColor : 文字色 void Press() ボタン押し void Release() ボタン離し boolean press(int px,int py) ボタン押し判定 int px,py : マウスクリック位置 class ImageData extends Panel イメージクラス ImageData(Image image,int partSize) コンストラクタ Image image : テンプレートイメージ int partSize : 部品イメージの大きさ void makePartImage(Image image,int partSize) イメージ部品取り出し Image image : テンプレートイメージ int partSize : 部品イメージの大きさ void BlackToClear(int part) 黒い部分を透明にするフィルタ int part : 部品番号 void halfClear(int part) 半透明にするフィルタ int part : 部品番号 class ClearFilter extends RGBImageFilter 指定した色を透明にするフィルタ ClearFilter(int r,int g,int b) コンストラクタ int r,g,b : 指定する色のRGB成分 public int filterRGB(int x,int y,int rgb) フィルタ部分 int x,y : ピクセル位置 int rgb : ピクセルの色 class halfClearFilter extends RGBImageFilter 半透明にするフィルタ halfClearFilter(int r,int g,int b) コンストラクタ int r,g,b : 指定する色のRGB成分 public int filterRGB(int x,int y,int rgb) フィルタ部分 int x,y : ピクセル位置 int rgb : ピクセルの色