以下コードの下から4行目の部分で
janken.RandomTacitcs cannot be resolved to a type
とエラーが出ます。
どのように修正すればいいでしょうか?
宜しくお願いします。
lang
1package Ovject; 2 3public class janken { 4 // インターフェースの作成 5 public interface Tactis { 6 public int readTactis(); // メソッドの作成 7 } 8 9 // ランダムに手を決める戦略クラス.インタフェースをじっそうする 10 public class Player { 11 public int stone = 0; 12 int scissors = 1; 13 int paper = 2; 14 15 private String name_; 16 private int Wincount_ = 0; 17 18 private Tactis tactis_; 19 20 // コンストラクタ 21 Player(String name_) { 22 this.name_ = name_; 23 } 24 void SetTactics(Tactis tactis) { 25 tactis_ = tactis; 26 } 27 28 // showHandを実行するのではなく、readTactisを実行するようにする 29 int showHand() { 30 int hand = tactis_.readTactis(); 31 return hand; 32 } 33 public class RandomTacitcs implements Tactis { 34 public int readTactis() { 35 double num = Math.random() * 3; 36 int hand = 0; 37 if (num < 1) { 38 hand = stone; 39 System.out.println("ぐー"); 40 } else if (num < 2) { 41 hand = scissors; 42 System.out.println("ちょき"); 43 } else { 44 hand = paper; 45 System.out.println("パー"); 46 } 47 return hand; 48 } 49 } 50 // メソッド 51 public void notifyResult(boolean result) { 52 if (result = true) { 53 Wincount_++; 54 } 55 } 56 57 public String getName() { 58 return name_; 59 } 60 61 public int getWincount() { 62 return Wincount_; 63 } 64 } 65 66 public class Judge { 67 // メソッド 68 public void StartJunken(Player player1, Player player2) { 69 System.out.println("ジャンケンを開始します"); 70 for (int i = 0; i < 3; i++) { 71 System.out.println(i + "回戦"); 72 Player winner = judgeJanken(player1, player2); 73 if (winner != null) { 74 System.out.println(winner.getName() + "が勝ちました"); 75 } else { 76 System.out.println("引き分けです"); 77 } 78 } 79 System.out.println("じゃんけんを終了しました!"); 80 Player finalWinner = judgeFinalWinner(player1, player2); 81 if (finalWinner != null) { 82 System.out.println(finalWinner.getName() + "の勝ちです!"); 83 } else { 84 System.out.println("引き分けです!"); 85 } 86 } 87 88 private Player judgeJanken(Player player1, Player player2) { 89 Player winner = null; 90 int playerhand1 = player1.showHand(); 91 int playerhand2 = player2.showHand(); 92 if (playerhand1 == player1.stone && playerhand2 == player2.scissors 93 || playerhand1 == player1.scissors 94 && playerhand2 == player2.paper 95 || playerhand1 == player1.paper 96 && playerhand2 == player2.stone) { 97 winner = player1; 98 player1.Wincount_++; 99 } else if (playerhand2 == player1.stone 100 && playerhand1 == player2.scissors 101 || playerhand2 == player1.scissors 102 && playerhand1 == player2.paper 103 || playerhand2 == player1.paper 104 && playerhand1 == player2.stone) { 105 winner = player2; 106 player2.Wincount_++; 107 } 108 return winner; 109 } 110 111 private Player judgeFinalWinner(Player player1, Player player2) { 112 Player wineer = null; 113 int player1Wincounr = player1.getWincount(); 114 int player2Wincounr = player2.getWincount(); 115 if (player1Wincounr > player2Wincounr) { 116 wineer = player1; 117 } else if (player1Wincounr < player2Wincounr) { 118 wineer = player2; 119 } else { 120 return null; 121 } 122 return wineer; 123 } 124 } 125 126 public class Yamada extends Player { 127 public Yamada(String name_) { 128 super(name_); 129 } 130 131 public int showHand() { 132 System.out.println("ぐー"); 133 return stone; 134 } 135 } 136 137 public class Murata extends Player { 138 public Murata(String name_) { 139 super(name_); 140 } 141 142 public int showHand() { 143 System.out.println("ぱー"); 144 return paper; 145 } 146 } 147 148 public static void main(String[] args) { 149 janken j = new janken(); 150 Judge saito = j.new Judge(); 151 Player murata = j.new Murata("村田さん"); 152 Player yamada = j.new Yamada("山田さん"); 153 ///エラー部分 154 Tactis murataTactis = j.new RandomTacitcs(); 155 murata.SetTactics(murataTactis); 156 saito.StartJunken(murata, yamada); 157 } 158} 159
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/05/11 12:22