前提・実現したいこと
javaのオブジェクト指向を勉強しています。
インスタンスを生成したメソッドとは別のメソッドで
インスタンスのメソッドを呼び出したいです。
追記:今書いてるコードを載せました。3人じゃんけんのゲームです。
lang
1public class BattleField implements Call { 2 3 // 配列と多態化を使ってないときはここでインスタンス生成出来た 4 // 5 // Player p = new Player(); 6 // Enemy1 e1 = new Enemy1(); 7 // Enemy2 e2 = new Enemy2(); 8 9 // これだとsyntax error on token";",{・・・ などがいっぱい出る 10 // 11 // Character[]c=new Character[3]; 12 // 13 // c[0]=new Player(); 14 // c[1]=new Enemy1(); 15 // c[2]=new Enemy2(); 16 public void Battle( int rounds) { 17 18 Character[] c = new Character[3]; 19 20 c[0] = new Player(); 21 c[1] = new Enemy1(); 22 c[2] = new Enemy2(); 23 24 int i = 1; 25 26 while ( i <= rounds) { 27 System.out.println( "●ラウンド" + i); 28 c[0].Hand(); 29 c[1].Hand(); 30 c[2].Hand(); 31 i = Judge( c[0].getPlayHand(), c[1].getEnemy1Hand(), c[2].getEnemy2Hand(), i); 32 33 } 34 35 } 36 37 public int Judge( int playHand, int enemy1Hand, int enemy2Hand, int i) { 38 39 if ( playHand == enemy1Hand && playHand == enemy2Hand && enemy1Hand == enemy2Hand) { 40 System.out.println( "あいこです"); 41 } 42 else if ( !(playHand == enemy1Hand) && !(playHand == enemy2Hand) && !(enemy1Hand == enemy2Hand)) { 43 System.out.println( "あいこです"); 44 } 45 else { 46 if ( !(playHand == ROCK) && !(enemy1Hand == ROCK) && !(enemy2Hand == ROCK)) { 47 switch ( playHand) { 48 case SCISSORS: 49 c[0].addWin(); 50 System.out.println( "勝ちました"); 51 break; 52 case PAPER: 53 System.out.println( "負けました"); 54 break; 55 } 56 switch ( enemy1Hand) { 57 case SCISSORS: 58 c[1].addWin(); 59 } 60 switch ( enemy2Hand) { 61 case SCISSORS: 62 c[2].addWin(); 63 } 64 } 65 else if ( !(playHand == SCISSORS) && !(enemy1Hand == SCISSORS) && !(enemy2Hand == SCISSORS)) { 66 switch ( playHand) { 67 case PAPER: 68 c[0].addWin(); 69 System.out.println( "勝ちました"); 70 break; 71 case ROCK: 72 System.out.println( "負けました"); 73 break; 74 } 75 switch ( enemy1Hand) { 76 case PAPER: 77 c[1].addWin(); 78 } 79 switch ( enemy2Hand) { 80 case PAPER: 81 c[2].addWin(); 82 } 83 } 84 else if ( !(playHand == PAPER) && !(enemy1Hand == PAPER) && !(enemy2Hand == PAPER)) { 85 switch ( playHand) { 86 case ROCK: 87 c[0].addWin(); 88 System.out.println( "勝ちました"); 89 break; 90 case SCISSORS: 91 System.out.println( "負けました"); 92 break; 93 } 94 switch ( enemy1Hand) { 95 case ROCK: 96 c[1].addWin(); 97 } 98 switch ( enemy2Hand) { 99 case ROCK: 100 c[2].addWin(); 101 } 102 } 103 104 i++; 105 } 106 return i; 107 } 108 109 public void Result( int rounds) { 110 111 System.out.println( "-------------結果------------"); 112 System.out.println( "あなた:" + c[0].getWinCount() + "勝" + (rounds - c[0].getWinCount()) + "敗" + "勝率" + 100 * c[0].getWinCount() / rounds + "%"); 113 System.out 114 .println( "プレイヤー1:" + c[1].getWinCount() + "勝" + (rounds - c[1].getWinCount()) + "敗" + "勝率" + 100 * c[1].getWinCount() / rounds + "%"); 115 System.out 116 .println( "プレイヤー2:" + c[2].getWinCount() + "勝" + (rounds - c[2].getWinCount()) + "敗" + "勝率" + 100 * c[2].getWinCount() / rounds + "%"); 117 } 118 119} 120 121 122public class Jyanken { 123 124 public void play() { 125 126 System.out.print( "aゲーム回数を入力してください:"); 127 128 @SuppressWarnings( "all") 129 int rounds = new java.util.Scanner( System.in).nextInt(); 130 131 System.out.println( "ジャンケンゲームを開始します。"); 132 System.out.println( "----------------------------------------------------------"); 133 System.out.println( "0:グー 1:チョキ 2:パー"); 134 System.out.println( "----------------------------------------------------------"); 135 136 BattleField battle = new BattleField(); 137 battle.Battle(rounds); 138 battle.Result(rounds); 139 140 // プレイヤーを3人作る 141 // 継承と多様性をつかう 142 // それぞれのプレイヤーの手を作る 143 // 判定プログラムで判定する 144 // それぞれの手をプレイヤーで記憶する 145 // ゲーム回数繰り返す 146 // 結果 全員の結果と勝率を求める 147 148 } 149 150} 151
回答1件
あなたの回答
tips
プレビュー