Programozás‎ > ‎Feladatok‎ > ‎Mastermind‎ > ‎Megoldás‎ > ‎

ep_master.java

Letöltés: ep_master.java


import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;

class Solver{
    int feltetelDB;
    int[][] feltetel;
    String megoldas;
    int ok;
   
    Solver(String be) throws FileNotFoundException, IOException {
       
        BufferedReader BE = new BufferedReader(new FileReader(be));
        String sor = BE.readLine();
        feltetelDB = Integer.parseInt(sor);
        feltetel = new int[feltetelDB][];
        for(int i = 0; i < feltetelDB; i++){
            feltetel[i] = new int[6];
            sor = BE.readLine();
            String[] nums = sor.split(" ");
            for(int j = 0; j < 6; j++){
                feltetel[i][j] = Integer.parseInt(nums[j]);
            }
        }
       
    }
   
    boolean checkf(int i, int a , int b, int c, int d){
        int joo = 0;
        int jo = 0;
        int deb = 0;
       
        if(feltetel[i][0]==a){
            joo++;
            a = 0;
        }
        if(feltetel[i][1]==b){
            joo++;
            b = 0;
        }
        if(feltetel[i][2]==c){
            joo++;
            c = 0;
        }
        if(feltetel[i][3]==d){
            joo++;
            d = 0;
        }
       
        for(int j = 0; j<4; j++){
            if((feltetel[i][j]==a)||
            (feltetel[i][j]==b)||
            (feltetel[i][j]==c)||
            (feltetel[i][j]==d)
            ){
                jo++;
            }
        }
       
        return (feltetel[i][4]==joo)&&(feltetel[i][5]==jo);
       
    }
   
    boolean check(int a , int b, int c, int d){
        for(int i=0; i < feltetelDB; i++){
            if(!checkf(i, a,b,c,d)){
                return false;
            }
        }
        return true;
       
    }
   
    void megold(){
        ok = 0;
        megoldas = "";
       
        for(int a = 1; a < 7; a++)
        for(int b = 1; b < 7; b++)
        for(int c = 1; c < 7; c++)
        for(int d = 1; d < 7; d++){
            if(!((a==b)||(a==c)||(a==d)||(b==c)||(b==d)||(c==d))){
                    if(check(a,b,c,d)){
                        ok++;
                        megoldas += ""+a+b+c+d+"\n";
                    }
            }
        }
    }
   
    void kiir(){
        System.out.println(ok);
        System.out.println(megoldas);
    }
   
    public void solve(){
        megold();
        kiir();
    }
}


public class mastermind {
   
    public static void main (String args[]) throws FileNotFoundException, IOException
    {
        Solver S = new Solver("mastermind.be");
        S.solve();   
    }
}