Moin Moin,
ich bin neu hier im forum, hab schon mal nach dem thema gesucht, aber zu meinem fall nix gefunden.
also hier mein problem, ich bin medientechnik student und habe eine aufgabe im kurs java2 gestellt bekommen.
Aufgabe :
Abzählreime werden in Kinderspielen benutzt, um pseudozufällig ein Kind aus einer Gruppe auszuwählen. Daher ist ein Abzählreim auch eine Art vermeintlicher Zufallsgenerator. Bekannt ist z.B. der Abzählreim "Ene, mene, muh und raus bist du", der solange wiederholt wird, bis nur noch ein Spieler (Gewinner) übrig bleibt.
In dieser Aufgabe soll ein Programm entwickelt werden, mit dem man vorhersagen kann, welcher Spieler den Abzählreim gewinnt. Dazu soll eine Klasse Abzaehlreim mit folgenden Methoden implementiert werden:
Abzaehlreim(int anzahlSpieler, int anzahlSilben)
Der Konstruktor erwartet die Anzahl der Spieler und die Silbenanzahl des Abzählreims als Parameter.
int getSieger()
Diese Methode gibt die Nummer des Spielers zurück, der nach wiederholter Anwendung des Abzählreims übrigbleibt und somit gewinnt. Zu beachten ist, dass der erste Spieler die Nummer 0 hat.
Die Aufgabe muss mit einer Klasse Spieler gelöst werden, die eine Objektvariable next enthält, die jeweils auf den nachfolgenden Spieler verweist. Durch diese Verkettung wird ein "Ring" der Mitspieler erzeugt, aus dem entsprechend dem Abzählreim nach und nach Spieler entfernt werden:
Für dieses Beispiel müsste das Programm mit dem Abzählreim "Ene mene muh ..." (9 Silben) als Sieger die Nummer 2 (somit Spieler 3) ermitteln:
Abzaehlreim azr = new Abzaehlreim(4,9);
System.out.println("Sieger: "+azr.getSieger());
Beispielhafte Ausgabe:
Spieler 0 entfernt
Spieler 3 entfernt
Spieler 1 entfernt
Sieger: 2
Folgender Programmcode könnte hilfreich sein (Spieler sp; sp ist Variable vom Typ Spieler). Überlegen Sie selbst, was die Programmzeilen bewirken und wozu Sie diese nutzen können:
sp = sp.next;
sp.next = sp.next.next;
soweit die Aufgabe...
Mein Ansatz ist bisher nur folgender code :
das ist also quasi mein constructor...
ja und nun brauche ich einen Denkanstoß wie ich das problem lösen könnte !
Vielen Dank schon mal im Vorraus für Hilfe
Mfg
ich bin neu hier im forum, hab schon mal nach dem thema gesucht, aber zu meinem fall nix gefunden.
also hier mein problem, ich bin medientechnik student und habe eine aufgabe im kurs java2 gestellt bekommen.
Aufgabe :
Abzählreime werden in Kinderspielen benutzt, um pseudozufällig ein Kind aus einer Gruppe auszuwählen. Daher ist ein Abzählreim auch eine Art vermeintlicher Zufallsgenerator. Bekannt ist z.B. der Abzählreim "Ene, mene, muh und raus bist du", der solange wiederholt wird, bis nur noch ein Spieler (Gewinner) übrig bleibt.
In dieser Aufgabe soll ein Programm entwickelt werden, mit dem man vorhersagen kann, welcher Spieler den Abzählreim gewinnt. Dazu soll eine Klasse Abzaehlreim mit folgenden Methoden implementiert werden:
Abzaehlreim(int anzahlSpieler, int anzahlSilben)
Der Konstruktor erwartet die Anzahl der Spieler und die Silbenanzahl des Abzählreims als Parameter.
int getSieger()
Diese Methode gibt die Nummer des Spielers zurück, der nach wiederholter Anwendung des Abzählreims übrigbleibt und somit gewinnt. Zu beachten ist, dass der erste Spieler die Nummer 0 hat.
Die Aufgabe muss mit einer Klasse Spieler gelöst werden, die eine Objektvariable next enthält, die jeweils auf den nachfolgenden Spieler verweist. Durch diese Verkettung wird ein "Ring" der Mitspieler erzeugt, aus dem entsprechend dem Abzählreim nach und nach Spieler entfernt werden:
Für dieses Beispiel müsste das Programm mit dem Abzählreim "Ene mene muh ..." (9 Silben) als Sieger die Nummer 2 (somit Spieler 3) ermitteln:
Abzaehlreim azr = new Abzaehlreim(4,9);
System.out.println("Sieger: "+azr.getSieger());
Beispielhafte Ausgabe:
Spieler 0 entfernt
Spieler 3 entfernt
Spieler 1 entfernt
Sieger: 2
Folgender Programmcode könnte hilfreich sein (Spieler sp; sp ist Variable vom Typ Spieler). Überlegen Sie selbst, was die Programmzeilen bewirken und wozu Sie diese nutzen können:
sp = sp.next;
sp.next = sp.next.next;
soweit die Aufgabe...
Mein Ansatz ist bisher nur folgender code :
Java:
public class Abzaehlreim {
int spieler;
int silben;
Abzaehlreim(int anzahlSpieler, int anzahlSilben){
if(anzahlSpieler>0 && anzahlSilben>0){
spieler=anzahlSpieler;
silben=anzahlSilben;
}
else{
System.out.println("zu wenig silben oder spieler");
}
}
}
das ist also quasi mein constructor...
ja und nun brauche ich einen Denkanstoß wie ich das problem lösen könnte !
Vielen Dank schon mal im Vorraus für Hilfe
Mfg