Scommetto che ci sono 346456893749 errori ...
package vacanze_estive_18;
import javax.swing.JOptionPane;
public class Vacanze_estive_18 {
public static String d(int rR, int cR, int rReg, int cReg, String m[][]) {
String d = "";
boolean b = (rReg > -1 && cReg > -1);
for (int r = 0; r < 8; r++) {
for (int c = 0; c < 8; c++) {
if (rR == r && cR == c) {
d += m[r][c] = " •";
} else if (b) {
if (rReg == r && cReg == c) {
d += m[r][c] = " ?";
} else {
d += m[r][c] = " O";
}
} else {
d += m[r][c] = " O";
}
}
d += "\n";
}
d += "\n\n";
return d;
}
public static int colonna(int c, int i) {
switch (i) {
case 0:
c--;
break;
case 1:
c++;
break;
case 2:
c--;
break;
case 3:
c++;
break;
case 5:
c++;
break;
case 7:
c--;
break;
}
return c;
}
public static int riga(int r, int i) {
switch (i) {
case 0:
r--;
break;
case 1:
r--;
break;
case 2:
r++;
break;
case 3:
r++;
break;
case 4:
r--;
break;
case 6:
r++;
break;
}
return r;
}
public static String risultato(int rR, int cR, int rReg, int cReg) {
String o;
boolean b;
int r = rReg;
int c = cReg;
for (int i = 0; i < 8; i++) {
do {
b = (colonna(c, i) == cR && riga(r, i) == rR);
} while ((c >= 0 && r >= 0 && c <= 7 && r <= 7) || b);
c = cReg;
r = rReg;
if (b) {
i = 8;
o = "La regina è in posizione tale da poter mangiare il Re";
} else {
o = "La regina NON è in posizione tale da poter mangiare il Re";
}
}
return o;
}
public static void main(String[] args) {
int rR;
int cR;
int rReg = -1;
int cReg = -1;
String input = "";
String m[][] = new String[8][8];
do {
input = JOptionPane.showInputDialog("In che RIGA si trova il Re?");
rR = Integer.parseInt(input) - 1;
input = JOptionPane.showInputDialog("In che COLONNA?");
cR = Integer.parseInt(input) - 1;
} while (rR > 7 || cR > 7);
do {
input = JOptionPane.showInputDialog(d(rR, cR, rReg, cReg, m
) + "In che RIGA si trova la Regina?");
rReg = Integer.parseInt(input) - 1;
input = JOptionPane.showInputDialog(d(rR, cR, rReg, cReg, m
) + "In che COLONNA?");
cReg = Integer.parseInt(input) - 1;
// JOptionPane.showMessageDialog(null, d(rR, cR, rReg, cReg, m));
JOptionPane.showMessageDialog(null, (rReg == cReg) ? "Le posizioni coincidono, riprovare"
: risultato(rR, cR, rReg, cReg));
} while ((rR > 7 || cR > 7) || (rReg == rR && cR == cReg));
}
}
Ho provato a farlo andare anche se da errore e mi va in un ciclo infinito. Poi mi da errore in una funzione. Cacchio sto sfollando