K
Kackfohgel
Gast
Hallo,
ich versuche mir gerade selbst ein wenig Java beizubringen. Vorkenntnisse in (objektorientierten) Programmiersprachen habe ich keine.
Um die Motivation nicht zu verlieren, versuche ich mich neben der Aneignung von theoretischem Wissen immer mal wieder an kleineren Übungen.
Aktuell ein kleines Programm, welches aus zwei Klassen Test.java und Testspieler.java besteht (verzeiht mir bitte, dass ich die Klassen jetzt groß geschrieben habe, ich wollte nur schnell ein Beispiel erstellen und das ist mir erst danach aufgefallen).
Ziel des Programms ist es, dass die beiden Spielerobjekte sp1 und sp2 solange spielen, bis einer der beiden den Ball 10 Zeiteinheiten hatte.
Dafür habe ich jetzt mehrere Ansätze, die ich jedoch alle nicht weiß programmtechnisch umzusetzen. Aber zunächst mal der bisherige Code meiner beiden Klassen:
Test.java
Testspieler.java
Meine theoretischen Ansätze (sortiert in der Reihenfolge, wie sie mir am sinnvollsten erscheinen):
Ich hoffe, ihr könnt mir zu Ansatz 1. und 2. ein paar Lösungsansätze geben.(?)
Freundliche Grüße
Kackfohgel
ich versuche mir gerade selbst ein wenig Java beizubringen. Vorkenntnisse in (objektorientierten) Programmiersprachen habe ich keine.
Um die Motivation nicht zu verlieren, versuche ich mich neben der Aneignung von theoretischem Wissen immer mal wieder an kleineren Übungen.
Aktuell ein kleines Programm, welches aus zwei Klassen Test.java und Testspieler.java besteht (verzeiht mir bitte, dass ich die Klassen jetzt groß geschrieben habe, ich wollte nur schnell ein Beispiel erstellen und das ist mir erst danach aufgefallen).
Ziel des Programms ist es, dass die beiden Spielerobjekte sp1 und sp2 solange spielen, bis einer der beiden den Ball 10 Zeiteinheiten hatte.
Dafür habe ich jetzt mehrere Ansätze, die ich jedoch alle nicht weiß programmtechnisch umzusetzen. Aber zunächst mal der bisherige Code meiner beiden Klassen:
Test.java
Java:
public class Test {
public static void main(String[] args) {
// Zwei Objekte der Klasse Spieler erstellen
Testspieler sp1 = new Testspieler("Anton");
Testspieler sp2 = new Testspieler("Boris");
// Spieler 1 den Ball geben
sp1.hatBall = true;
while(sp1.hatBall && sp1.dauer < 10){
sp1.spielen();
}
// Wenn Spieler 1 den Ball abgegeben hat, soll Spieler 2 solange weiterspielen
// bis er wiederrum den Ball abgibt.
// Das funktioniert noch so weit, aber mein Gefühl sagt mir, dass diese Lösung
// schon unsauber ist
sp2.hatBall = true;
while(sp2.hatBall && sp2.dauer < 10){
sp2.spielen();
}
// sp1.hatBall = true;
// Hier soll jetzt Spieler 1 wieder spielen, wenn Spieler 2 den Ball abgibt;
// es soll also quasi wieder zu "while(sp1.hatBall)" gesprungen werden und
// so lange weiter gespielt werden, bis einer der Spieler 10 Zeiteinheiten am Ball war.
}
}
Testspieler.java
Java:
import javax.swing.JOptionPane;
public class Testspieler {
// Attribute
String name = "Nobody";
boolean hatBall = false;
int dauer = 0;
// Konstruktor
Testspieler(String name)
{
this.name = name;
}
// Methoden
public void spielen() {
int benutzereingabe;
benutzereingabe = JOptionPane.showConfirmDialog(null, "Willst du den Ball behalten?",
"Weiter?", JOptionPane.YES_NO_OPTION);
if(benutzereingabe == 1)
{
abgeben();
} else {
dauer += 1;
System.out.println(name + " behält den Ball. (Dauer: " + dauer + ")");
}
}
public void abgeben() {
System.out.println(name + " gibt den Ball ab.");
hatBall = false;
}
}
Meine theoretischen Ansätze (sortiert in der Reihenfolge, wie sie mir am sinnvollsten erscheinen):
- Die while-Schleife wird nur einmal in Test.java eingebaut und jeweils für das Objekt (den Spieler) aufgerufen, der den Ball hat (hatBall == true) ist. Nach einem Wechsel des aktiven Spielers, muss die while-Schleife erneut aufgerufen werden, für den jetzt aktiven Spieler usw.
- Nachdem Spieler 2 den Ball abgegeben hat, setze ich eine "Sprungmarke" oder Ähnliches, dass er wieder bei
Code:
while(sp1.hatBall ...
- Ich schreibe die
Code:
while(sp1.hat Ball ...
Code:while(sp2.hat Ball ...
Ich hoffe, ihr könnt mir zu Ansatz 1. und 2. ein paar Lösungsansätze geben.(?)
Freundliche Grüße
Kackfohgel