Gå til innhold

Liten lotto oppgave med flere klasser! hjelp!


Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Gjest Slettet+6132
Skrevet

Hva med å ha en rekke som et objekt med en array, med en getter til arrayen for sammeligning og overlasting av tostring for utskrift?

Skrevet (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 av Stegz
Skrevet (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 av Aleksander-

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...