SPIEL

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
moh
User
Beiträge: 25
Registriert: Montag 15. April 2019, 21:53

Hallo zusammen,
ich habe folgende programmier aufgabe und brauche euere hilfe.
Die frage:

implimintieren ein wettelaufspiel.
Ein spielbrett bestehet aus viele feldern_ die Anzahl wird zum anfang des spiel festgelegt(INPUT).Aller spieler beginnen auf feld 1. ist der spieler am zug so würfelt er ein sechs seitigen würfel und rückt entsprechend viele Felder vor. wer zuerst das spiel erreicht , hat gewonnen.man muss das zielfeld genau treffen, über das ziel feld kann nicht hinausgezogen werden und der spieler zieht in diese runde nicht.
regeln:
wird 6 gewürfelt, darf der spieler nocheinmal werfen und ziehen.
endet der zug eines spieler auf einem feld, auf dem schon ein sieler steht , so wird dieser um zwei felder nach hinten gesetzt.
endet der zug eines spieler auf einem schnappszahl[11,22,33] so wird die figur 5 felder nach vorne gesetzt.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und was soll jetzt passieren? Moechtest du, dass wir fuer dich die Loesung einreichen? Dann fehlt noch die Email des Dozenten oder Lehrers. Und natuerlich dein richtiger Name, damit wir dem auch schreiben koennen, fuer wen wir das programmiert haben.

Falls das nicht der Fall sein sollte, dann solltest du uns mal zeigen, was du dir da bisher so gedacht hast, und was du schon fuer Code geschrieben hast. Und was genau du an der Aufgabe nicht verstehst.
moh
User
Beiträge: 25
Registriert: Montag 15. April 2019, 21:53

__deets__ hat geschrieben: Freitag 12. Juli 2019, 13:19 Und was soll jetzt passieren? Moechtest du, dass wir fuer dich die Loesung einreichen? Dann fehlt noch die Email des Dozenten oder Lehrers. Und natuerlich dein richtiger Name, damit wir dem auch schreiben koennen, fuer wen wir das programmiert haben.

Falls das nicht der Fall sein sollte, dann solltest du uns mal zeigen, was du dir da bisher so gedacht hast, und was du schon fuer Code geschrieben hast. Und was genau du an der Aufgabe nicht verstehst.
ich verlangere kein fertige lösung von euch .
ich habe die aufgabe bekommen und weiss halt nicht wo und wie ich anfange.
alles was ich bis jetzt gedacht habe , wie ich die zahl der spieler festlege mit input. würfel mit sechs seitige kann gemach werden mit random funktion oder forshleife
aber wie ich das feld erzeuge habe keine idee
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ein Zitat des Beitrags direkt drüber kann man sich sparen. Den kann man ja so direkt lesen.

Du brauchst kein Feld. Denn auf deinem Feld passiert ja nichts. Da gibt es keine Ressourcen. Es ist auch egal ob da ein oder hundert Spieler drauf stehen.

Aber Spieler - die brauchst du. Habt ihr schon Klassen gehabt? Wenn ja, das wäre der richtige Ansatz. Eine Spieler klasse.
OozeWithUzi
User
Beiträge: 9
Registriert: Montag 8. Juli 2019, 13:40

Wenn du so wirklich keine Ahnung hast, wo du anfangen sollst, zerlege dir doch das große Problem in kleine Teil.
Fange beispielsweise mit fix einem Spieler und einem Spielfeld der Länge 10 an. Der Spieler geht pro Runde genau 1 Feld, das Spiel wird beendet, wenn der Spieler Feld 10 erreicht hat.

Damit hast du schon einige Probleme gelöst. Danach kannst du würfeln hinzufügen, dann die Überprüfung auf Landung genau auf Feld 10, dann die variable Spielfeldgröße, etc.

Du kannst auch mit anderen Teilen anfangen, das ist nur eine Idee von mir, wie man vorgehen könnte.
Und wenn du dann konkrete Probleme hast, kannst du die auch viel besser hier vortragen bzw. man kann dir besser helfen.
moh
User
Beiträge: 25
Registriert: Montag 15. April 2019, 21:53

__deets__ hat geschrieben: Freitag 12. Juli 2019, 13:36 Ein Zitat des Beitrags direkt drüber kann man sich sparen. Den kann man ja so direkt lesen.

Du brauchst kein Feld. Denn auf deinem Feld passiert ja nichts. Da gibt es keine Ressourcen. Es ist auch egal ob da ein oder hundert Spieler drauf stehen.

Aber Spieler - die brauchst du. Habt ihr schon Klassen gehabt? Wenn ja, das wäre der richtige Ansatz. Eine Spieler klasse.
nein, keine klassen, kein objektorientierung.
alles was wir nis jetzt gehabt, ist listen, struckturierte programmierung also if abfrage und schleifen.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Und schon wieder der full-quote. Warum?

Und wenn ihr keine Klassen hattet, ist das IMHO ein schlechtes Vorgehen. Aber dafuer kannst du natuerlich nix.

Die Denkweise bleibt aber gleich: was macht einen Spieler aus?
moh
User
Beiträge: 25
Registriert: Montag 15. April 2019, 21:53

__deets__ hat geschrieben: Freitag 12. Juli 2019, 13:42 Und schon wieder der full-quote. Warum?

Und wenn ihr keine Klassen hattet, ist das IMHO ein schlechtes Vorgehen. Aber dafuer kannst du natuerlich nix.

Die Denkweise bleibt aber gleich: was macht einen Spieler aus?
Hier ist die frage nochmal :
schreiebn sie in python ein programm, das ein wettelaufspiel implimentiert. Ein spielbrett besteht aus variable viele feldern_ die Anzahl wird zu beginn des spiel festgelegt.
Die spieler beginnen auf feld eins . ist ein Spieler am zug so würfelt er eien sechs seitigen würfel und rückt entsprechend viele felder vor. wer zuerst das siel erreicht, hat gewonnen . man muss das ziel feld genau treffen, über das ziel feld kann nicht hinausgezogen werden und dder spieler ziht in dieser rund e nicht-
sonderrktionen
1 wir sechs geürfelt, darf der spieler sofort noch einmal würfeln und ziehen.
2 endet der zug eines spieler auf ein schnapszahl 11,22,33,... so wird den figur fünf felder nach vorne gesetzt.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@moh: Die Regeln hat hier jeder verstanden. Mit Spieler-Klassen wäre es eine schöne Aufgabe. Wenn ihr bislang nur Listen hattet, muss Du eben Spielernamen darin rumschubsen. Das eher unschön und IMHO eine schlechte Übungsaufgabe, wofür Du aber, wie schon erwähnt, nichts kannst. Aber vielleicht weisst Du nun, wie Du anfangen könntest.
Benutzeravatar
__blackjack__
User
Beiträge: 13102
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@moh: Die Frage was einen Spieler ausmacht noch mal mit der kompletten Beschreibung des Spielverlaufs zu beantworten ist wenig hilfreich. Du musst Dir überlegen wie Du den aktuellen Zustand des Spiels als Daten beschreiben kannst. Und wie immer beim Programmieren gilt es ein Problem in Teilprobleme zu zerlegen. Denn der komplette aktuelle Zustand des Spiels besteht ja auch aus dem aktuellen Zustand von jedem einzelnen Mitspieler. Und da war die Frage von __deets__ jetzt was den Zustand von einem einzelnen Spieler ausmacht. Welche Daten muss man sich merken? Zum beispiel wenn man das im realen Leben spielt und abbrechen muss, sich aber auf einem Blatt Papier alles aufschreiben will, was man braucht um das Spiel nächstes Jahr genau an der Stelle fortzusetzen an der man aufgehört hat. Welche Informationen braucht man dazu für jeden einzelnen Spieler? Und welche darüber hinaus noch? Genau das ist es ja was Du im Rechner speichern und verarbeiten musst.

@kbr: Ich habe ein bisschen den Verdacht, das Du zu sehr am physikalischen Modell eines Spielbretts hängst. Man braucht keine Liste wo jedes Element ein Feld repräsentiert! Das kann man natürlich machen, aber das macht das ganze eher komplizierter.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nicht schlecht. Dreimal gesagt bekommen man soll nicht zitieren, aber dafuer gestellte Fragen ignorieren. Laeuft bei dir.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@__deets__: Meinst Du man bräuchte hier zwingend OOP für die Spieler? Über die Spieler ist ja nichts gesagt worden; ergo "reicht" doch auch einfach irgend ein String oder numerische Id, oder? Für die Organisation des gesamten Spielzustands wäre eine Klasse natürlich hilfreich...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@__blackjack__: Der TE hatte nach eigener Aussage noch keine Klassen, sondern nur Listen und if-Vergleiche. Daher nehme ich an, dass die Aufgabenstellung auf die Modellierung des Spielbretts hinausläuft. In Bezug auf den originalen Aufgabensteller hast Du mit Deinem Verdacht möglicherweise recht.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich denke nicht, dass es auf ein Spielbrett hinauslaeuft. Es geht nur darum, wo der Spieler ist. Keine in der Aufgabe genannten Operationen beziehen sich auf etwas, das mit etwas anderem umgehen muesste.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hyperion hat geschrieben: Freitag 12. Juli 2019, 14:41 @__deets__: Meinst Du man bräuchte hier zwingend OOP für die Spieler? Über die Spieler ist ja nichts gesagt worden; ergo "reicht" doch auch einfach irgend ein String oder numerische Id, oder? Für die Organisation des gesamten Spielzustands wäre eine Klasse natürlich hilfreich...
Na "zwingend" ist so eine Sache. Fuer eine gute Implementierung ja. Irgendwie rumgeroedelt mit globalen Variablen (was anderes bleibt dann ja nicht wirklich) geht aber natuerlich auch.
Benutzeravatar
__blackjack__
User
Beiträge: 13102
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@kbr: Ich gehe da jetzt auch von einer Version ohne Klassen aus, das ändert ja nichts daran wie man vorgeht, sondern nur mit welchen Mitteln man das ausdrücken kann. Wie Hyperion schon sagte wissen wir fast nichts über den einzelnen Spieler. Wahrscheinlich kann man seinen Zustand mit einem einzigen skalaren Wert beschreiben, und seine ”Identität” aus der Position in einer Liste ableiten (Spieler 1, Spieler 2, …). Falls ein skalarer Wert nicht reicht, legt man die Daten für einen Spieler in einer Liste ab. Eigentlich besser ein Tupel, aber das wurde bisher ja nicht erwähnt.

Was auch nicht erwähnt wurde sind Funktionen, aber die setze ich jetzt mal voraus, denn ohne wird das eine Übung in „wie man es nicht macht, und auch gar nicht erst lernen sollte“. 🙂

@__deets__: Also man kann das schon mit Funktionen ordentlich und ohne globale Variablen machen würde ich sagen. Das wird dann halt ein wirklich eher funktionaler Ansatz.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

@__blackjack__: hmja, das wird sehr dialektisch. Klar kann ich allen Zustand auch immer reingeben. Und den zB auch auf Ebene der main-Funktion deklarieren, statt wirklich Modul-global. Aber das es nun ein empfehlenswertes und signifikant besserer Ansatz waere bei diesem Problem finde ich nicht. Es ist Zustand + ein Sack Funktionen die darauf arbeite, und den zB auch modifizieren. Das ist nun wirklich marginal besser als globale Variablen und konzeptionell wenn man OO haette auch nicht der Ansatz, den man waehlen wuerde. Voll funktional geht natuerlich auch, aber dann wird es schon etwas sehr abgefahren, und ohne tail-Rekursion auch immer ein bisschen gelogen.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@__blackjack__: Sicher, wenn ein Spieler über ein Tupel modelliert wird, geht es auch ohne Spielfeldliste. Für diese Lösung hilft es aber, wenn bereits in Objekten und Eigenschaften gedacht wird – und ich bezweifle, dass der Kurs so weit ist. Aber das ist geraten, denn in der Tat wissen wir einfach zu wenig über den Kenntnisstand, der für die Aufgabe vorausgesetzt wird.
Benutzeravatar
__blackjack__
User
Beiträge: 13102
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@kbr: Ich hab's nicht bis zum Ende durchgedacht, aber braucht man für einen Spieler zwingend mehr als eine Zahl die den aktuellen Zustand widerspiegelt?
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@__blackjack__: Mmmh, wenn ich so drüber nachdenke ... das müsste eigentlich genügen ... 8)
Antworten