Java
1public class Numeron2{ 2 public static void main(String[] args){ 3 int clearTurn = 0; 4 Answer.answerGenerator(); 5 do{ 6 clearTurn ++; 7 Predict p1 = new Predict(Answer.getDigit()); 8 AnswerChecker.check(Answer.getAnswer(),p1.getPredict()); 9 }while(AnswerChecker.getEat() != Answer.getDigit()); 10 System.out.println("GAME CLEAR!!"); 11 System.out.println("あなたはクリアに"+clearTurn+"ターンかかりました"); 12 } 13}
Java
1public class Answer{ 2 private static int[] answer;//答え 3 private static int digit;//桁数 4 public static int[] getAnswer(){//答えを送る 5 return answer; 6 } 7 public static int getDigit(){ 8 return digit; 9 } 10 public static void answerGenerator(){// 11 Gamelevel.levelInput(); 12 digit = Gamelevel.getLevel();; 13 answer = new int[digit]; 14 int check;//取得して桁数でアンサー配列を生成 15 do{//ここからアンサーの要素を重複なく生成する 16 check = 0; 17 for(int a = 0;a < answer.length; a++){ 18 answer[a] = (int)(Math.random()*10); 19 } 20 for(int b = 0;b < answer.length; b++){ 21 for(int c = 0;c < answer.length; c++){ 22 if(answer[b] == answer[c]){ 23 check++; 24 } 25 } 26 } 27 }while(check != answer.length); 28 for(int i = 0;i < answer.length;i ++){ 29 System.out.println(answer[i]); 30 } 31 } 32}
Java
1public class AnswerChecker{ 2 private static int eat = 0; 3 private static int bite = 0; 4 public static void check(int[] answer,int[] predict){ 5 for(int a = 0; a<predict.length; a++){ 6 if(predict[a] == answer[a]){ //predict配列をまわしてanswer配列に使用されてる数字と位置を重複しているかチェック 7 eat++; 8 }for(int b = 0; b<answer.length; b++){ 9 if(predict[a] == answer[b]){ //同じくanswer配列をまわして使用されてる数字が重複しているかチェック 10 bite++; 11 } 12 } 13 }System.out.println(bite+"BITE-"+eat+"EAT"); 14 } 15 public static int getEat(){ 16 return eat; 17 } 18}
Java
1public class Gamelevel{ 2 private static int level; 3 public static void levelInput(){ 4 System.out.println("数字を入力してレベルを選んでください"); 5 System.out.println("0:レベル1 3桁 1:レベル2 4桁 2:レベル3 5桁"); 6 int level = new java.util.Scanner(System.in).nextInt()+3; 7 } 8 public static int getLevel(){ 9 return level; 10 } 11}
Java
1public class Predict{ 2 private static int[] predict; 3 Predict(int d){ 4 predict = new int[d]; 5 System.out.println("予想するナンバーを1つずつ入力してください"); 6 for(int a = 0;a < predict.length; a++){ 7 predict[a] = new java.util.Scanner(System.in).nextInt(); 8 } 9 } 10 public static int[] getPredict(){ 11 return predict; 12 } 13}
オブジェクト指向の練習をしようと思い数あてゲームを作ったのですが
このプログラムを実行するとエラーは出ないのですが答え入力(アンサークラス)が飛ばされて
何もせずにゲームクリアとなってしまいます。
確認用に答えを表示するようにも作ったのですがそれも飛ばされてしまうようです。
全体的に配列を使ったfor文の箇所がおかしくなっているような気がするのですが直す方法がいまいちわかりません。
解答よろしければお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/14 05:00