Berechnung von Punkten

earthhero

Mitglied
Hallo zusammen, ich bin gerade dabei einen Quelltext von einem Tippspiel zu vervollständigen. Allerdings habe ich nen Problem bei der Punkteberechnung. Ich weiß nicht wie ich da weiter vorgehen soll.
Bei richtigem Ergebnis 3 Punkte. Bei richtiger Tenden 1 Punkt.

Hier die DatenVerwaltenKlasse:
Java:
package Model;

import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;

public class DatenVerwaltung {
    
    static HashMap<String, Benutzer> benutzer = new HashMap<String, Benutzer>();
    static ArrayList<Spiel> spiele = new ArrayList<Spiel>();
    
    public DatenVerwaltung() {
    }
 
    public int getBenutzerAnzahl()
    {
     return (int)benutzer.size();    
    }
    
    public void BenutzerHinzufuegen(String benutzername,String kennwort,boolean admin)
    {
      //Neue Benutzer beginnen immer mit 0 Punkte
      Benutzer neuBenutzer=new Benutzer(getBenutzerAnzahl()+1,benutzername, kennwort,0,admin);
      benutzer.put(benutzername, neuBenutzer);
    }
    
    public Benutzer getBenutzerByIndex(int index)
    {
      return benutzer.get(index);
    }
  
    public Benutzer getBenutzerByName(String benutzername)
    {
      return benutzer.get(benutzername);
    }
         
    public boolean checkAccount(String benutzername,String kennwort)
    {
       System.out.println("Prüfe :"+benutzername+" "+kennwort);
       Benutzer user=getBenutzerByName(benutzername);
       if(user != null && user.getBenutzername().equals(benutzername) && user.getKennwort().equals(kennwort))
       {
          return true;
       }
       else
       {
          return false;
       }   
    }
    
    public void listeAlleBenutzer()
    {
     for(String key : benutzer.keySet())
     {
      System.out.print("Key: " + key + " - ");
      System.out.print("Value: " + benutzer.get(key) + "\n");
     }    
    }
    
    public void berechnePunkte(int id)
    {

    }
    
    public HashMap<String, Benutzer> getAlleBenutzer(){
    
        return benutzer;
    }
    
    public void SpielHinzufuegen(String heim, String gast, int scoreHeim, int scoreGast, Date Zeit_Datum)
    {
     Spiel spiel=new Spiel(getAnzahlSpiele()+1,heim,gast,scoreHeim,scoreGast,Zeit_Datum,false);
     System.out.print("Spiel wurde hinzugefuegt"+heim+" "+gast);
     spiele.add(spiel);
    }
    
    /**
     *
     * @param id
     * @return
     */
    public Spiel getSpielbyID(int id)
    {
     return spiele.get(id);
    }
    
    /**
     *
     * @return
     */
    public ArrayList getAlleSpiele()
    {
     return spiele;
    }
    
    public int getAnzahlSpiele()
    {
     return spiele.size();      
    }
    
    public void BenutzerAbspeichern() throws FileNotFoundException, IOException
    {
      XMLEncoder out = null;
      try 
      {
	out = new XMLEncoder(new BufferedOutputStream(
	new FileOutputStream("c:/benutzer.xml")));
	out.writeObject(benutzer);
      } 
      catch (FileNotFoundException e) 
      {  
	System.out.println("Datei konnte nicht erstellt werden.");
      } 
      finally 
      {
	out.close();
      }
    }
    
    public void BenutzerLaden() throws FileNotFoundException
    {
      XMLDecoder in = null;
      try 
      {
       	in = new XMLDecoder(new BufferedInputStream(
	new FileInputStream("c:/benutzer.xml")));
	benutzer = (HashMap<String, Benutzer>) in.readObject();
      } 
      catch (FileNotFoundException e)
      {
	System.out.println("Datei nicht gefunden.");
      } 
      finally 
      {
	if (in != null) in.close();
      }
    }
    
    public void SpieleAbspeichern() throws FileNotFoundException, IOException
    {
      XMLEncoder out = null;
      try 
      {
	out = new XMLEncoder(new BufferedOutputStream(
	new FileOutputStream("c:/spiele.xml")));
	out.writeObject(spiele);
        System.out.print("Alle Spiel werden gesichert");
      } 
      catch (FileNotFoundException e) 
      {  
	System.out.println("Datei konnte nicht erstellt werden.");
      } 
      finally 
      {
	out.close();
      }
    }
    
    public void SpieleLaden() throws FileNotFoundException
    {
      XMLDecoder in = null;
      try 
      {
       	in = new XMLDecoder(new BufferedInputStream(
	new FileInputStream("c:/spiele.xml")));
	spiele = (ArrayList<Spiel>) in.readObject();
        System.out.print("Alle Spiel werden geladen");
      } 
      catch (FileNotFoundException e)
      {
	System.out.println("Datei nicht gefunden.");
      } 
      finally 
      {
	if (in != null) in.close();
      }
    }
 
}
[/Java]

Ich habe schon eine Funktion mit berechne Punkte angelegt.
Kann mir da wer weiterhelfen?!

LG
 
Nur mal als Tipp:

Java:
      if(blabla)
       {
          return true;
       }
       else
       {
          return false;
       }

... schreibt der Profi als...

Java:
   return blabla;
 
Hey danke für Deine Antwort,
das ist klar, was mir fehlt ist, wie ich den Bezug auf die gespeicherten Spiele bekomme, das muss ja id abhängig sein. Sprich wie ich die richtigen Spiele anspreche und überprüfe.
Java:
if (get.Spiele.id. == ergebnis)  //kein ahnung wie ich die spiele id bekomme
{
   punkte.benuter.id + 3
}
if (get.Spiele.id != ergebnis)
{
   if() // wie kann ich überprüfen ob Sieg bzw. Niederlage richtig ist?
{
}}
else...

Hoffe ich habe mich verständlich ausdrücken können🙂
 
Also ein Element aus einer ArrayList auslesen geht mit:

Java:
ArrayList<String> al=new ArrayList<String>();
String text=al.get(index_des_Elements);

Einer Variable einen Wert hinzuaddieren geht mit:
Java:
int var=0;
var+=3;

bzw.
Java:
var=var+3;

Was dein Klassendesign angeht, solltest du dir das Konzept von OOP auch nochmal angucken 😀

Allerdings zu deinem eigentlichen Problem, da kann ich mir noch garnichts drunter vorstellen. Kannst du da mal konkreter werden?
 

Neue Themen


Zurück
Oben