aan alle goede dingen komt een eind, webmasterplein.net 2003 - 2013
wij danken jullie voor al mooie momenten die dankzij dit forum ontstonden - Derk, Rutger en Stef

Java Arrays (BlackJack)

Het echte opmaakwerk, alles vragen over HTMLen, CSSen en Javascripten.

Java Arrays (BlackJack)

Berichtdoor Jasperinho » 10 okt 2009 20:00

Hallo mensen,

Ik ben momenteel bezig met een opdracht om het spel Blackjack te maken in java. Ik ondervind echter nu wat problemen. Het is de bedoeling om het volgende klasse diagram te implementeren:

Afbeelding

Mijn klasse blackjack ziet er als volgt uit:

Code: Selecteer alles
public class BlackJack {

   public static void main(String[] args) {
          
 /**
 * UI wordt aangemaakt / String aangemaakt met de namen van 3 spelers. Deze string is nodig om een nieuw spel aan te maken.
*/
      UI ui1 = new UI();
      String[] nmspelers = {"Jasper", "Tim", "Klootzak"};
      Spel spel1 = new Spel(nmspelers, ui1);
      
// methode getSpelers wordt uitgeprint.
      System.out.println(spel1.getSpelers());

   }
}


Deel van de klasse Spel:

Code: Selecteer alles
public class Spel {

   
   private Bank bank;
   private Stok stok;
   private Speler[] spelers;
   private int aantalSpelers;
   private UI ui;


   /**
    * Constructor; maakt een stok/ de bank/ de spelers aan.
    * @param namen
    * @param ui
    */
   public Spel(String[] namen, UI ui){
      this.aantalSpelers = namen.length;      //aantalspelers is gelijk aan de lengte van de string namen (uit de klasse blackjack)
      stok = new Stok();            // nieuwe stok wordt aangemaakt
      bank =  new Bank(this);   // nieuwe bank wordt aangemaakt
      spelers = new Speler[aantalSpelers];  // maakt array met de lengte aantalspelers aan
      for(int i = 0; i<aantalSpelers; i++)       
         spelers[i] = new Speler(namen[i],this);       // maakt nieuwe spelers aan tot dat alle spelers zijn aangemaakt.
   }
   
   /**
    * Methode om de spelers op te vragen.
    * @return
    */
   public Speler[] getSpelers(){
          return spelers;
   
   }


Klasse speler:
Code: Selecteer alles
public class Speler {
   
/**
     * Alle variabelen worden hier aangemaakt
     */
    protected Kaart[] kaarten;
    protected int aantalKaarten;
    private String naam;
    private boolean blackJack;
    private Spel spel;
   
    /**
         * De constructor van een speler
         * @param naam De naam van de Speler
         * @param spel Welk spel er word gespeeld
         */
        public Speler(String naam, Spel spel){
           this.aantalKaarten = 0;
            this.naam = naam;
            this.spel = spel;
   
        }
 
        /**
         * De methode om de kaarten van de speler op te vragen
         * @return Geeft terug welke kaarten de speler allemaal heeft
         */
        public Kaart[] getKaarten(){
            return this.kaarten;
   
        }
       
     /**
         * De methode om het aantal kaarten van een speler op te vragen
         * @return Geeft het aanttal kaarten terug
         */
        public int getAantalKaarten(){
            return this.aantalKaarten;
       
        }

        /**
         * De methode om de naam van de speler op te vragen
         * @return Geeft dan naam van de speler terug
         */
        public String getNaam(){
            return this.naam;
           
        }
       
    /**
         * De methode om de naam van de speler in te voeren
         * @param naam De naam van de speler
         */
        public void setNaam(String naam){
           this.naam = naam;
        }
       
        /**
         * Methode om te kijken of je Black Jack hebt of niet
         * @return Geeft terug of je wel of niet BlackJack hebt
         */
        public boolean getBlackJack(){
            return blackJack;
           
        }
       
        /**
         * Methode om op te vragen welk spel bezig is
         * @return Geeft terug met welk spel je bezig bent
         */
        public Spel getSpel(){
            return this.spel;
           
        }
       
        /**
         * De methode voor de speler om een kaart te ontvangen
         * @param kaart Invoeren welke kaart je krijgt????????????????????????????????????????/   
         */
        public void ontvangKaart(Kaart kaart){
           
        }
       
]        /**
         * De methode om een beurt te spelen
         */
        public void speelBeurt(){
           
        }
       
       /**
         * De methode om een kaart te spelen
         */
        public void speelKaart(){
       
        }
       
        /**
         * De methode om het aantal punten van de speler te berekenen
         * @return Geeft het aantal punten van de speler terug
         */
        public int telPunten(){
            int aantalPunten = 0;
            return aantalPunten;
           
        }
       
        /**
         * Laat de status van de speler op het scherm zien
         */
        public void printStatus(){
       
        }
       
       /**
         * Maakt er een string van om te kunnen printen
         */
        public String toString(){
           String a = new String();
           a = a +"Naam: "+naam+"\n"+"Aantal kaarten: "+aantalKaarten+"\n"+"Kaarten: "+kaarten+ "\n" + "BlackJack? " + blackJack + "\n";
           return a;
           
    }
   
   
   
}



Het probleem is nu dat de methode getSpelers het volgende terug geeft: [Lnl.utwente.ewi.ioop.blackjack.spel.Speler;@a90653, terwijl hij juist de spelers zou terug moeten geven. (spelers[0] + spelers[1] + spelers[2] etc, de array dus)

Wat wel werkt is het omzetten van de array in een string. I.e

String b = new String();
for(int i=0; i<aantalSpelers; i++){
b = b + spelers[i];
(in de methode toString)

Maar dat is niet wat ik wil, want ik wil de methode getSpelers werkend hebben (deze methode moet de spelers teruggeven). Dit toepassen in de methode getSpelers werkt ook niet, aangezien getSpelers niet van het type string is.

Ik ben nu dus op het punt dat ik van alles heb geprobeerd, maar het nog steeds niet werkend heb. Ik hoop dus dat jullie me hiermee zouden kunnen helpen.

Alvast bedankt,

Jasper
Jasperinho
wmpr
 
Berichten: 60
Geregistreerd: 15 aug 2006 23:30

Re: Java Arrays (BlackJack)

Berichtdoor KillerSponge » 11 okt 2009 13:35

Je kan niet zomaar een array "printen". Naja, het kan wel, maar dan print hij de pointer, zoals hij nu netjes doet :)

Een array printen kan zo:

Code: Selecteer alles
System.out.println(Arrays.toString(spel1.getSpelers()));
Blabla en andere onzin - http://killersponge.nl
Avatar gebruiker
KillerSponge
Beheerder
Beheerder
 
Berichten: 14456
Geregistreerd: 24 aug 2004 13:05


Keer terug naar HTML, CSS, Javascript



cron