Ciao a tutti ragazzi, sto eseguendo un esercizio in cui si chiede di far muovere su una scacchiera un re, ho scritto questo codice:
Il problema sta nel metodo checkTaken() che dovrebbe restituire true se i due re si trovano nella stessa posizione altrimenti false. Normalmente funziona ma con Math.random() anche se escono le stesse posizioni, il metodo mi restituisce comunque false. Non riesco a capire come maicodice:import javax.swing.JOptionPane; import java.lang.Math; public class scacchiera { private int posxb; private int posxn; private int posyb; private int posyn; public scacchiera(int xb, int xn, int yb, int yn) { posxb = xb; posxn = xn; posyb = yb; posyn = yn; } public static void main(String [] args){ int xbb = (int)(Math.random()*7)+1; int ybb = (int)(Math.random()*7)+1; int xnn = (int)(Math.random()*7)+1; int ynn = (int)(Math.random()*7)+1; scacchiera a = new scacchiera(xbb,xnn,ybb,ynn); System.out.println(a.getWhite()); System.out.println(a.getBlack()); System.out.println(a.checkTaken()); } public String getWhite(){ return posxb + "," + posyb; } public String getBlack(){ return posyn + "," + posyn; } public boolean checkTaken(){ boolean c; if (posxb == posxn && posyb == posyn) c = true; else c = false; return c; } }![]()

Rispondi quotando

