Methode mit einer Arraylist

Diskutiere Methode mit einer Arraylist im Java Basics - Anfänger-Themen Bereich.
T

Tobias-nrw

Ehrlich, man nimmt einfach Strings dafür und keine Objekte - das meinte ich damit sich nicht jeden Kokolores andrehen zu lassen - und nebenbei sei angemerkt ist das auch effizienter. => Weniger Overhead und weniger Boilerplate, schneller zu schreiben, besser zu lesen.
 
J

JustNobody

Also ich frage mich manchmal wirklich, was hier abgeht....

Also für Tobias ist das einfache Überschreiben der toString Methode ein "nennenswertes Problem". Aber nach der letzten Auseinandersetzung wundert mich das nicht mehr...

@Nesselbrand: Einfache kurze Frage von meiner Seite: Ist dies eine kleine Aufgabenstellung, an Hand derer du objektorientierte Entwicklung lernen willst? Dann führe ich Dich gerne weiter. Die Problematik bei Card ist ansonsten 1:1 die von CardDeck: toString() überschreiben und schon hast Du auch für Card eine vernünftige Ausgabe.
So Du nur irgendwas zusammen frickeln willst, dann ja: Dann brauchst Du das alles nicht mehr. Dann kann Dir unserer Chef-Frickler hier bestimmt weiter helfen und ich kann mir die weiteren Erläuterungen sparen.

Also einfache Entscheidung: Rumfrickeln? Oder an diesem Beispiel Objektorientiert Entwickeln lernen? Deine Entscheidung.
 
N

Nesselbrand

Ich wollte dieses Projekt machen und dabei was lernen. so "learning by doing " mäßig.
 
N

Nesselbrand

ich habe die tostring methode jetzt auch in card überschrieben.
jetzt steht nachdem ich system.out.println ausgeführt habe nur Da:
CardDeck{cards=[Card{color=null, value=null} usw...
Aber die Karten sollten ja alle unterschiedliche Werte(Herz, Pik ... oder ZWEI, DREI ...) haben und nicht null sein
 
N

Nesselbrand

Code:
public enum CardColor
{
    Karo, Herz, Pik, Kreuz
}

public enum CardValue
{
    ZWEI, DREI, VIER, FUENF, SECHS, SIEBEN, ACHT, NEUN, ZEHN, BUBE, DAME, KOENIG, Ass
}
 
N

Nesselbrand

Code:
public class Card
{
    private CardColor color;
    private CardValue value;

    public Card(CardColor color, CardValue value)
    {
    }

    @Override
    public String toString()
    {
        return "Card{" +
                "color=" + color +
                ", value=" + value +
                '}';
    }
}
 
N

Nesselbrand

Code:
import java.util.ArrayList;
import java.util.List;

public class CardDeck
{
    public ArrayList<Card> cards;

    public CardDeck()
    {
        cards = new ArrayList<>();
        for (CardColor color: CardColor.values()) {
            for (CardValue value: CardValue.values()) {
                cards.add(new Card(color, value));
            }
        }
        cards.add(new Card(CardColor.Kreuz, CardValue.ZWEI));
    }

    @Override
    public String toString()
    {
        return "CardDeck{" +
                "cards=" + cards +
                '}';
    }
}
 
N

Nesselbrand

Code:
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

public class MainGui
{
    private JPanel panel1;
    private JLabel balance;
    private JButton geldEinzahlenButton;
    private JTextField geldEinzahlenfield;
    private JButton geldWettenButton;
    private JTextField geldWettenEinzahlenfield;
    private JLabel wettgeld;
    private JLabel kCroupier;
    private JButton hitButton;
    private JButton standButton;
    private JButton neuesSpielbutton;
    private JButton doublebutton;
    private JButton splitButton;

    public static void main(String[] args)
    {
        JFrame frame = new JFrame("Black Jack");
        frame.setContentPane(new MainGui().panel1);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }

    public MainGui()
    {
        geldEinzahlenButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                Main.balance = Main.balance + Integer.parseInt(geldEinzahlenfield.getText());
                balance.setText("" + Main.balance);
                geldEinzahlenfield.setText("0");
            }
        });

        geldWettenButton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                int temp = Integer.parseInt(geldWettenEinzahlenfield.getText());
                if (Main.balance < temp)
                {
                    JOptionPane.showMessageDialog(null,"Sie müssen zuerst Geld einzahlen");
                }
                else
                {
                    Main.wbalance = Main.wbalance + Integer.parseInt(geldWettenEinzahlenfield.getText());
                    Main.balance = Main.balance - Integer.parseInt(geldWettenEinzahlenfield.getText());
                    wettgeld.setText("" + Main.wbalance);
                    balance.setText("" + Main.balance);
                    geldWettenEinzahlenfield.setText("0");
                }

            }
        });

        CardDeck deck1 = new CardDeck();

        neuesSpielbutton.addActionListener(new ActionListener()
        {
            @Override
            public void actionPerformed(ActionEvent e)
            {
                neuesSpielbutton.setVisible(false);
                System.out.println(deck1.toString());
            }
        });
    }
}
 
N

Nesselbrand

Code:
public class Main
{
    public static int balance;
    public static int wbalance;

    public Main()
    {
        balance = 0;
        wbalance = 0;
    }

    public static void main(String[] args)
    {
        MainGui.main(args);
    }
}
 
J

JustNobody

Code:
public class Card
{
    private CardColor color;
    private CardValue value;

    public Card(CardColor color, CardValue value)
    {
    }

    @Override
    public String toString()
    {
        return "Card{" +
                "color=" + color +
                ", value=" + value +
                '}';
    }
}
Beim Konstruktor hatte ich doch den Inhalt weggelassen um es kurz zu halten. Wie muss denn den Konstruktor aussehen, damit die Parameter in den Instanzvariablen gespeichert werden?
 
N

Nesselbrand

Wie kann ich jetzt aus einem zufällig ausgewähltem Objekt color / value auslesen?
Code:
   public void RandomCard()
    {
        int temp =(int) (Math.random() * cards.size() - 1);
        System.out.println(cards.get(temp));

        cards.remove(temp); // Karte soll pro spiel nur einmal vorkommen
    }
 
Thema: 

Methode mit einer Arraylist

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben