oNe_InnleggNO Skrevet 29. november 2012 Del Skrevet 29. november 2012 Hei, skal lage et lite lotto program! Har problemer med å sammenligne flere rekker med en vinnerrekke. Hvordan skal jeg gjøre dette når jeg har en tabell av objekter av tabeller igjen, og hvordan skal jeg da skrive dette ut? Lenke til kommentar
Gjest Slettet+6132 Skrevet 29. november 2012 Del Skrevet 29. november 2012 Hva med å ha en rekke som et objekt med en array, med en getter til arrayen for sammeligning og overlasting av tostring for utskrift? Lenke til kommentar
oNe_InnleggNO Skrevet 30. november 2012 Forfatter Del Skrevet 30. november 2012 kan du komme med et eksempel? Lenke til kommentar
Stegz Skrevet 30. november 2012 Del Skrevet 30. november 2012 (endret) Lag en klasse for en LottoRekke. I denne klassen så kan du lage en metode som du kan kalle for equals som tar inn en annen LottoRekke og sjekker om den lottorekken metoden tok inn er den samme som den objektet holder på. public boolean equals(LottoRekke rekke) { // Finner ut om lottorekken er lik og returnerer enboolean } Deretter kan du bare lage en for-løkke for å gå gjennom alle rekkene dine og se om de stemmer med vinner-rekka. Gjorde egentlig alt sammen selv på https://gist.github.com/4178611. Kanskje litt upedagogisk, men har eksamen i morgen, så må legge meg. Det er nok lurest å prøve mest mulig selv først, og titte på koden om du blir usikker. Koden er selvsagt bare et forslag. Dette kan gjøres på mange måter. Endret 30. november 2012 av Stegz Lenke til kommentar
Aleksander- Skrevet 3. desember 2012 Del Skrevet 3. desember 2012 (endret) Hadde dette liggende på en gammel workspace. Og selvfølgelig, ikke bare kopier dette, prøv selv først etc etc detta veit du.... package lotto; import java.util.Scanner; public class Lotto { public static void main(String[] args) { Rekke rekke = new Rekke(); Trekning trekning = new Trekning(rekke); int counter=1; System.out.println("Hvor mange rette vil du ha? (Mellom 1 og 7"); Scanner scan = new Scanner(System.in); int number = scan.nextInt(); while(trekning.antallRiktige()<=number) { trekning = new Trekning(rekke); counter++; System.out.println(counter); } if(trekning.antallRiktige()>=number) { System.out.println("Du fikk " +number+ " rette etter " + counter+ " forsøk."); } } } package lotto; import java.util.Arrays; import java.util.Random; public class Rekke { int[] tall; public Rekke() { tall = new int[7]; fyllRekke(); Arrays.sort(tall); while(!unikeTall()) { fyllRekke(); } } public int[] getRekke() { return tall; } public int length() { return tall.length; } public int get(int i) { return tall[i]; } private int getRandomNumber() { int maximum = 34; int minimum = 1; int randomNum = 0; while(randomNum<1){ Random rn = new Random(); int n = maximum - minimum + 1; int j = rn.nextInt() % n; randomNum = minimum + j; } return randomNum; } private void fyllRekke() { for(int i=0; i<tall.length; i++) { int n = getRandomNumber(); tall[i] = n; } } private boolean unikeTall() { boolean unike=true; int n=getRandomNumber(); for(int i=0; i<tall.length-1; i++) { if(tall[i]==tall[i+1]){ unike=false; } } return unike; } } package lotto; public class Trekning { Rekke rekke; Rekke trekning; public Trekning(Rekke rekke) { this.trekning = new Rekke(); this.rekke=rekke; } public int antallRiktige(){ int counter = 0; for(int i=0; i<rekke.length(); i++) { for(int j=0; j<rekke.length(); j++) { if(rekke.get(i) == trekning.get(j)){ counter++; } } } return counter; } public Rekke getTrekning() { return trekning; } } Endret 3. desember 2012 av Aleksander- Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå