Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
52
Task/Bulls-and-cows/Java/bulls-and-cows.java
Normal file
52
Task/Bulls-and-cows/Java/bulls-and-cows.java
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
import java.util.InputMismatchException;
|
||||
import java.util.Random;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class BullsAndCows{
|
||||
public static void main(String[] args){
|
||||
Random gen= new Random();
|
||||
int target;
|
||||
while(hasDupes(target= (gen.nextInt(9000) + 1000)));
|
||||
String targetStr = target +"";
|
||||
boolean guessed = false;
|
||||
Scanner input = new Scanner(System.in);
|
||||
int guesses = 0;
|
||||
do{
|
||||
int bulls = 0;
|
||||
int cows = 0;
|
||||
System.out.print("Guess a 4-digit number with no duplicate digits: ");
|
||||
int guess;
|
||||
try{
|
||||
guess = input.nextInt();
|
||||
if(hasDupes(guess) || guess < 1000) continue;
|
||||
}catch(InputMismatchException e){
|
||||
continue;
|
||||
}
|
||||
guesses++;
|
||||
String guessStr = guess + "";
|
||||
for(int i= 0;i < 4;i++){
|
||||
if(guessStr.charAt(i) == targetStr.charAt(i)){
|
||||
bulls++;
|
||||
}else if(targetStr.contains(guessStr.charAt(i)+"")){
|
||||
cows++;
|
||||
}
|
||||
}
|
||||
if(bulls == 4){
|
||||
guessed = true;
|
||||
}else{
|
||||
System.out.println(cows+" Cows and "+bulls+" Bulls.");
|
||||
}
|
||||
}while(!guessed);
|
||||
System.out.println("You won after "+guesses+" guesses!");
|
||||
}
|
||||
|
||||
public static boolean hasDupes(int num){
|
||||
boolean[] digs = new boolean[10];
|
||||
while(num > 0){
|
||||
if(digs[num%10]) return true;
|
||||
digs[num%10] = true;
|
||||
num/= 10;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue