package
1 2import java.io.BufferedReader; 3import java.io.IOException; 4import java.io.InputStreamReader; 5import java.util.ArrayList; 6import java.util.Collections; 7 8public class hitandblow02 { 9 10 public static void main(String[] args)throws IOException { 11 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 12 ArrayList<Integer> list = new ArrayList<Integer>(); 13 String str = "5桁の数字を入力してください。"; 14 String ans =""; 15 int num[] = new int[5]; 16 int count = 0; 17 18 for(int i = 0; i <= 10; i++) { 19 list.add(i); 20 } 21 Collections.shuffle(list); 22 23 for(int i =0; i < num.length; i++) { 24 num[i] = list.get(i); 25 System.out.print(num[i]); 26 } 27 28 29 while(true) { 30 System.out.println(""); 31 System.out.print(str); 32 ans = br.readLine(); 33 34 if(ans.length() == 5) { 35 str = "5桁の数字を入力してください。"; 36 count++; 37 ArrayList<Integer> player = new ArrayList<Integer>(); 38 player.add((Integer.parseInt(ans) / 10000)% 10); 39 player.add((Integer.parseInt(ans) / 1000)% 10); 40 player.add((Integer.parseInt(ans) / 100)% 10); 41 player.add((Integer.parseInt(ans) / 10)% 10); 42 player.add(Integer.parseInt(ans) % 10); 43 44 int hit = 0; 45 for(int i = 0; i < num.length; i++) { 46 if(player.get(i) == num[i]) { 47 hit++; 48 } 49 } 50 51 int blow = 0; 52 for(int i = 0; i < num.length; i++) { 53 for(int j = 0; j < num.length; j++) { 54 if(player.get(i) == num[j]) { 55 blow++; 56 } 57 } 58 } 59 if(hit == 5) { 60 System.out.println("おめでとう!" + count + "回目で成功♪"); 61 break; 62 } 63 64 System.out.println("ヒット :" + hit + "個、 ブロー:" + (blow - hit) + "個"); 65 System.out.println(""); 66 67 if(count % 3 == 0) { 68 System.out.print("ヒント : "); 69 for(int i = 1; i <= (count / 3); i++) { 70 System.out.print(num[i - 1]); 71 } 72 }else { 73 str = "5桁の数字を入力してください。"; 74 System.out.println(""); 75 } 76 str = "5桁の数字を入力してください。"; 77 System.out.println(""); 78 } 79 } 80 } 81} 82 83コード
hit&blowを改良して見ました!
答えが5桁や6桁になるのですが、どこが間違いか分からないです!
教えて頂けたら助かります!
宜しく御願いします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/30 22:15