Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.
Informatik - Kartenspiel programmieren?
Aufgabe:
Implementation für Klasse Karte und erläutern, warum es für Farbe und Typ keine Setze-Methoden gibt.
Karte
- farbe: String
- typ: String
+ Karte (pFarbe: String; pTyp: String)
+ gibFarbe(): String
+ gibTyp(): String
meine Frage wäre, was mit Setze-Methode gemeint ist?
Ich hatte die Vermutung, dass die Karten bestimmte Werte bereits haben, sie sich also nicht verändern, bzw. gesetzt werden. So wie bei Lampen, die man an- und ausschalten kann udn somit ihren Status verändert.
public Karte()
{
private String farbe;
private String typ;
public String Karte (String pFarbe; String pTyp)
{
}
public String gibFarbe()
{
return farbe;
}
public String gibTyp()
{
return typ;
}
}
das isr meine erste programmierung. stimmt das so?
public verdeckterTalon(){
karten = new List();
String [] 1Typen = new String[2];
1Typen[0] = "Sieben";
1Typen[1] = "Acht";
String[] 1Farben= new String[2]:
1Farben[0] = "Kreuz";
1Faben[1] = "Pik";
for(int i = 0; i< 1Typen.length; i++){
for(int j = 0; j< 1Farben.length; j++){
karten.indertBehind(new Karte(1Farben[j], 1Typen[i])):}}}
da soll folgende Reihenfolge rauskommen: (Pik, 8), (Kreuz, 8), (Pik, 7) (Kreuz, 8)
aber wie erklärt man das? was genau ist jetzt j und was i?
Danke im Voraus
2 Antworten
- vor 8 JahrenBeste Antwort
Farbe und Typ werden im Konstruktor(Karte (String pFarbe; String pTyp)) gesetzt. Da sich eine Karte während des Spiels nicht mehr änder soll, macht es auch keinen Sinn set-/setze-Methoden dafür zu implementieren.
Interessant wäre, in welcher Sprache du programmierst. Ein paar Sachen sind mir aufgefallen:
-Ein Konstruktor hat normalerweise keinen Rückgabewert, du gibst allerdings String zurück.
public String Karte (String pFarbe; String pTyp) ?
-Führende Zahlen für Bezeichner (1Typen bzw. 1Farben) sind für gewöhnlich nicht erlaubt.
Die zwei for-Schleifen durchlaufen jeweils die Werte der Typen und der Farben. Du kannst das ganz einfach durchspielen und merkst schnell, dass das Ergebnis nicht passt.
Einmal ganz ausführlich für die äußere Schleife:
int i = 0: i wird mit 0 initialisiert.
i < Typen.length: Die Schleife wird ausgeführt, solange i kleiner als die Länge des Typen-Arrays(2)
i++: Bei jedem Durchgang wird i um 1 erhöht
erster Durchgang: i = 0 < 2
zweiter Durchgang i = 1 < 2
dritter Durchgang i = 2 !< 2, somit wird die Schleife nicht ausgeführt
i und j durchlaufen die Werte 0 und 1, wobei i dazu dient die Typen zu referenzieren und j die Farben.
- 🐟 Fish 🐟Lv 7vor 8 Jahren
Mit Setzmethode sind Mofifikatoren gemeit Also
Set<Attribut>
Dabei ist Attribut ein private Attribut.
Das es für Die Farbe keinen Modifikator gibt stimmt nicht ganz ist aber für ein reguläres Spiel vollkommen logisch. Denn ein Kartenspiel hat unveränderliche Eigenschaften, (und hier die Aussnahme) Es wird Falsch gespielt. Dann kann aus einer Pik Dame schon mal ein Herz Ass werden.
Ich weiss ja nicht in was das programmiert sein soll, aber keine bekannte Sprache lässt Bezeicher mit einer Zahl am Anfang zu:
1Farben, 1Typen kann es nicht geben.
Das Ergebnis ist übrigens nicht :
(Pik, 8), (Kreuz, 8), (Pik, 7) (Kreuz, 8)
sondern ( "Kreuz", "Sieben"), ("Pik", "Sieben"), ( "Kreuz", "Acht") ("Pik", "Acht")