Machol07 Postad 29 Maj, 2012 Share Postad 29 Maj, 2012 HejJag vill anropa en metod som returnerar en boolean i en annan klass och beroende om denna är true eller false bestämma utgången med if else i den andra klassen. Vad gör jag för fel får det inte att fungera.. public boolean ärYatzy() { boolean yatzy = true; for (int i = 0; i < tärn.length - 1; i++) { //Kontrollerar om det blev yatzy. Är sant om yatzy är sant OCH index är likamed nästkommande //index i arrayen. yatzy = yatzy && (tärn == tärn[i + 1]); } if (yatzy) { System.out.print("Det blev Yatzy "); print(tärn); } else { System.out.print("Det blev inte Yatzy "); print(tärn); } return yatzy; } Den andra klassen public static void main(String[] args){ Yatzy y2 = new Yatzy(); int[] t2 = new int[5]; int ggr=0; int antal=0; System.out.print("Kastar täningarna....."); boolean varv = true; long startTid = System.currentTimeMillis(); do{ //boolean loop = true; for(int i=0; i < t2.length; i++) { t2 = 1 + (int) ((6 - 1 + 1) * Math.random()); } /*for (int i = 0; i < t2.length - 1; i++) { //Kontrollerar om det blev yatzy. Är sant om yatzy är sant OCH index är likamed nästkommande //index i arrayen. loop = loop && (t2 == t2[i + 1]); } if (loop) { antal++; } */ y2.ärYatzy(); ggr++; varv = (ggr == 100000); //Anropa äryatzy } while(!varv); System.out.print("Klar"); System.out.println(); long slutTid = System.currentTimeMillis(); System.out.println("Det blev yatzy "+antal+" gånger"+" Sökning tog :"+(slutTid - startTid) + " ms"); } } Länk till kommentar Dela på andra webbplatser More sharing options...
Telly82 Postad 29 Maj, 2012 Share Postad 29 Maj, 2012 Det var svårt att läsa ditt inlägg med dubbla, tripla och kvadrupla radavstånd. Det finns en "kod" tag som du bör/ska använda. "Inte fungerar" kan betyda vad som helst. Kompileringsfel, länkfel, logiskt fel, krasch? Du bör bara använda a-z, 0-9 i namn på klasser, metoder, variabler etc. Så ärYatzy byts till IsYatzy, lämpligen. Du räknar aldrig upp "antal". När du anropar ärYatzy så tar du inte hand om returvärdet på något sätt. Länk till kommentar Dela på andra webbplatser More sharing options...
Machol07 Postad 31 Maj, 2012 Författare Share Postad 31 Maj, 2012 Jag ber om ursäkt för det försökte kopiera in koden i kod taggar först men det blev bara massa hexkod. I vilket fall frågan var dåligt formulerad det jag ville veta var det du skrev Du räknar aldrig upp "antal".När du anropar ärYatzy så tar du inte hand om returvärdet på något sätt. Jag visste inte hur jag skulle fånga upp returvärdet men gjorde så här antal +=(ärYatzy()?1:0); Vilket tilldelade antal 1 varje gång ärYatzy var true.. Länk till kommentar Dela på andra webbplatser More sharing options...
Telly82 Postad 31 Maj, 2012 Share Postad 31 Maj, 2012 Jag visste inte hur jag skulle fånga upp returvärdet men gjorde så här antal +=(ärYatzy()?1:0); Vilket tilldelade antal 1 varje gång ärYatzy var true.. Fungerar det nu, alltså? Ett mer lättläst alternativ är: if ( ärYatzy() ) antal++; Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.