Brettspiel Mühle implementieren

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
Fakelaaz
User
Beiträge: 6
Registriert: Montag 4. März 2019, 00:22

Hallo liebes Python Forum.
Ich melde mich hier, da ich ein Problem habe.
Ich muss in meinem Informatik Kurs Mühle in Python implementieren mit den Klassen : Spielberg, Spieler und Spielstein . Doch ich habe absolut keine Ahnung und ein Anfang einer Programmierung falls einer sowas haben sollte wäre super !
Dankeschön
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Fakelaaz: was hast Du bereits über Klasse in Python gelernt? Welche Gedanken hast Du Dir schon gemacht, wie ein Spielstein oder ein Spieler oder das Spielbrett als Klasse modeliert werden sollte, also welche Eigenschaften/Zustand und welche Aktionen/Methoden diese jeweils haben müssen?

Wenn das eine Aufgabe ist, dann besteht die ja aus mehreren Teilaufgaben, die hoffentlich so genau beschrieben sind, dass Du damit Stück für Stück zur Gesamtlösung kommst.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Fakelaaz: Spielberg? Sollte das eventuell Spielbrett heissen? Und sind die Klassen vorgegeben? Denn ich sehe so auf den ersten Blick keinen Grund die Spielsteine als Klasse zu modellieren. Vielleicht als `enum.Enum` für die Spielfeldbelegung, aber eben nicht so das jeder Spielstein ein eigenes Objekt ist. Das ist ab und zu bei Anfängern ein Missverständnis, dass die jedes physikalisch vorhandene Objekt auch als eigenes Objekt im Programm umsetzen wollen. Die Beschreibung der Wirklichkeit innerhalb eines Programms muss nicht 1:1 alles beschreiben. Man abstrahiert soweit, dass nur das für das Programm auch tatsächlich notwendige modelliert wird.

Anfang einer Programmierung:

Code: Alles auswählen

#!/usr/bin/env python3


def main():
    pass


if __name__ == '__main__':
    main()
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Fakelaaz
User
Beiträge: 6
Registriert: Montag 4. März 2019, 00:22

Ja natürlich Spielbrett.. und es ist nichts vorgegeben, aber leider habe ich nicht sooo viel Ahnung vom programmieren, da ich in Informatik nicht gerade ein Held bin. Dass heißt es ist egal welche Klassen ich benutze, hautpsache man kann am Ende iwie Mühle spielen :/ aber dankeschön erstmal
Fakelaaz
User
Beiträge: 6
Registriert: Montag 4. März 2019, 00:22

Und zu modelierung der klassen.. ich bin einfach ein wenig überfragt.. bei spieler vllt (Spielsteinanzahl, usw.) , Spielbrett( da sollte man halt die bestimmten Felder anklicken können aber ich weiss nicht wie das geht :( ), und spielsteine kann man vllt weglassen da ja vieles auf dem Spielbrett geregelt wird.. vor allem mit dem Spielsteine bewegen/setzen hab ich schwierigkeiten...
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Fakelaaz: irgendwelche genaueren Angaben müssen ja in der Aufgabenstellung stehen. Erster Schritt ist immer, noch gar nichts mit Anklicken zu programmieren, sondern nur Funktionen, die einen Spielstein setzen, bzw. verschieben und prüfen, ob es eine Mühle gab, ob ein Spieler gewonnen hat, etc.

Beantworte konkret die Frage: wie würdest Du Steine auf dem Spielfeld als Datenstruktur beschreiben? Welche verschiedenen Spielzüge gibt es bei Mühle, und was heißt das für das Spielfeld?
ArtooDetoo
User
Beiträge: 60
Registriert: Dienstag 4. Dezember 2018, 16:57

Fakelaaz hat geschrieben: Montag 4. März 2019, 15:30leider habe ich nicht sooo viel Ahnung vom programmieren, da ich in Informatik nicht gerade ein Held bin.
Natürlich nicht, ansonsten bräuchtest du den Kurs ja auch nicht :-) Erstmal geht es auch gar nicht ums Programmieren (das kommt danach), sondern ums Modellieren.
Dazu solltest du dir erstmal für den Spieler und das Spielbrett zwei Fragen stellen:
1. Welche Eigenschaften hat ein Spieler/ein Spielbrett, mit denen es beschrieben werden kann? Das kann beim Spieler z. B. der Name sein oder beim Spielbrett die Belegung.
2. Welche Aktionen/Aktivitäten können ausgeführt werden? Beispiele hier sind Spielzüge.

Wenn du das beantworten kannst, kannst du langsam zum Programmieren übergehen.
Fakelaaz
User
Beiträge: 6
Registriert: Montag 4. März 2019, 00:22

Also klassse spieler: name, anzahl spielsteine, anzahl mühlen, position von spielsteinen, spielsteinfarbe(entweder weiß oder schwarz)
ja und bei klasse Spielbrett: äh auch anzahl spielsteine, position von steinen, und wo steine hingesetzt werden (also immer auf den eckpunkten) und das spielsteine immer nur auf ein freies benachbartes feld bewegt werden können.
so
2. Spielzüge: spielsteine können nur auf ein freies benachbartes Feld bewegt werden. 3 spielsteine, die eine 3er Reihe bilden also nebeneinander liegen und die gleiche farbe besitzen bilden eine mühle. Ab 3 Spielsteinen kann man seine Spielsteine beliebig auf ein freies Feld setzen also nicht nur die benachtbarten.
Zur aufgabenstellung: Wir sollen ein beliebiges kleines Spiel programmieren.. das wars
ArtooDetoo
User
Beiträge: 60
Registriert: Dienstag 4. Dezember 2018, 16:57

Das klingt doch schon mal nicht übel. Ein paar Eigenschaften kommen doppelt vor:
- Anzahl Spielsteine
- Positionen der Spielsteine

Anzahl der Spielsteine würde ich den Spielern zuordnen. Sie wird ja nur gebraucht bis alle Steine auf dem Brett liegen, oder?
Positionen der Spielsteine ist meiner Ansicht nach eine Eigenschaft des Bretts und kann, wie Sirius schon angedeutet hat, in einer passenden Datenstruktur repräsentiert werden.
Fakelaaz
User
Beiträge: 6
Registriert: Montag 4. März 2019, 00:22

ok so könnten wir das machen, habe bereits mit einer turrtle das spielfeld programmiert :D sollte auch alles passen aber bräcuhte hilfe für die klassen
ArtooDetoo
User
Beiträge: 60
Registriert: Dienstag 4. Dezember 2018, 16:57

Kannst du die Frage etwas konkretisieren? Wobei genau brauchst du noch Hilfe?
Fakelaaz
User
Beiträge: 6
Registriert: Montag 4. März 2019, 00:22

Allgemein beim programmieren von Mühle ... ich brauche ein Python Programm mit Klassen mit welchem man dann Mühle spielen kann
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du wirst dieses Programm hier nicht bekommen. Was du bekommst ist Hilfestellung bei konkreten Fragen, Kritik und Anregungen. Programmierservice fuer Schueler und Stundenten sind wir nicht.

Zeig, was du hast. Zeig, was du versuchst. Was macht ein Muehle-Spielfeld aus? Welche Eigenschaften muss also eine Klasse haben, die ein solches Spielfeld repraesentieren soll?
Antworten