/* Verifica se una scacchiera contiene almeno due regine * che si possono mangiare a vicenda. * La posizione delle regine su una scacchiera e' rappresentata * dalla presenza del valore 1 */ public class ControllaRegine { public static void stampaScacchiera(int[][] a) { for(int i=0; i 1) return true; if(numRegineInColonna(sc, i) > 1) return true; } for(int i=0; i 1) return true; for(int i=1; i 1) return true; for(int i=1; i 1) return true; for(int i=1; i 1) return true; return false; } // TUTTI I METODI SEGUENTI SI POSSONO MIGLIORARE INTERROMPENDO // IL CICLO APPENA SI RAGGIUNGE IL VALORE 2 public static int numRegineInRiga(int[][] a, int riga) { int numInRiga = 0; for(int j=0; j=0) { if(a[i][j] == 1) numRegine++; i++; j--; } return numRegine; } public static void main(String[] args) { int[][] scac1 = { {1, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0}, }; int[][] scac2 = { {0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 0}, }; stampaScacchiera(scac1); if(siMangiano(scac1)) System.out.println("si mangiano"); else System.out.println("non si mangiano"); System.out.println(); stampaScacchiera(scac2); if(siMangiano(scac2)) System.out.println("si mangiano"); else System.out.println("non si mangiano"); } }