Hey,
Ich mache momentan ein Spiel mit meinen Freunden (Textspiel)
Ich wollte machen, dass wenn man "Info" eingibt, dass dort sofort kommt wieviel Schaden und Spielerhp mann hat.
Spielerhp = 100
Schaden = 10
Wie kann ich das machen?
Und wie kann ich machen, dass man später mehr Schaden bekommt?
Schaden = Schaden + 1?
LG,
Bin ein Anfänger, nur nebenbei
Eine Frage zu einem Spiel
Du erkundigst Dich hier nach Grundlagen - Basics, d. h. arbeite das Tutorial durch! Das Tutorial gibt es jetzt für Python 3.3 auch in Deutsch:
http://py-tutorial-de.readthedocs.io/de/python-3.3/
Zu Deiner Frage: Ich würde eine Klasse für die Spielerfiguren schreiben und dann dort Deine Werte reinpacken, die kann ich dann reduzieren oder durch einen Heiltrank wieder auffüllen. Das Abfragen ist dann sehr einfach machbar. Damit lässt sich m. E. auch ein Inventar erstellen usw. usf.
Konkret:
Das sollte eine Idee davon geben, was denkbar/machbar ist. Falls es Dich weitergehend interessiert: pygame.org
Ich würde aber aktuell ein Tutorial durcharbeiten. Du stellst einfache Fragen, d. h. die Grundlagen sind nicht da.
http://py-tutorial-de.readthedocs.io/de/python-3.3/
Zu Deiner Frage: Ich würde eine Klasse für die Spielerfiguren schreiben und dann dort Deine Werte reinpacken, die kann ich dann reduzieren oder durch einen Heiltrank wieder auffüllen. Das Abfragen ist dann sehr einfach machbar. Damit lässt sich m. E. auch ein Inventar erstellen usw. usf.
Konkret:
Code: Alles auswählen
class Held(object):
def __init__(self, hp, schaden):
self.hp = hp
self.schaden = schaden
def main():
spielerA = Held(100, 10) # DU
spielerB = Held(80, 5) # möglicher Gegner
while True:
print("\nFIGHT - Kampf, INFO - HP u. Schaden, EXIT - Beenden")
eingabe = input("Ihre Eingabe: ")
if eingabe == "INFO":
print("Spielerhp A = {}".format(spielerA.hp))
print("Schaden A = {}".format(spielerA.schaden))
elif eingabe == "EXIT":
print("Schade...")
break
elif eingabe == "FIGHT":
while spielerA.hp > 0 and spielerB.hp > 0:
spielerA.hp -= spielerB.schaden
spielerB.hp -= spielerA.schaden
print(spielerA.hp, spielerB.hp)
if spielerA.hp <= 0:
print("spielerA hat verloren.")
else:
print("spielerB hat verloren.")
else:
pass
if __name__ == "__main__":
main()Ich würde aber aktuell ein Tutorial durcharbeiten. Du stellst einfache Fragen, d. h. die Grundlagen sind nicht da.
-
BlackJack
@Vipaah: Man sollte bei Namen keine Abkürzungen verwenden. Was soll `Spielerhp` bedeuten? Steh `hp` für Homepage? Für Hitpoints? Falls Hitpoints, warum die Mischung aus Deutsch und Englisch innerhalb eines Namens?
Wenn es mehrere Werte gibt die den Zustand eines Spielers beschreiben, dann macht im Grunde objektorientierte Programmierung (OOP) Sinn. Oder von der anderen Seite betrachtet: ohne OOP wird das schnell unübersichtlich. An der Stelle auch gleich mal: keine Variablen auf Modulebene. Da gehört nur Code hin der Konstanten, Funktionen, und Klassen definiert.
Wenn es mehrere Werte gibt die den Zustand eines Spielers beschreiben, dann macht im Grunde objektorientierte Programmierung (OOP) Sinn. Oder von der anderen Seite betrachtet: ohne OOP wird das schnell unübersichtlich. An der Stelle auch gleich mal: keine Variablen auf Modulebene. Da gehört nur Code hin der Konstanten, Funktionen, und Klassen definiert.
-
BlackJack
@Vipaah: PyCharm wird von einigen Leuten benutzt die sehr zufrieden damit sind. Wenn die IDE für Dich funktioniert, dann spricht da IMHO nichts dagegen.
Es gibt allerdings einen ganzen Haufen IDEs und Editoren die von Python-Programmierern verwendet werden. Wenn Dir PyCharm also nicht zusagt, gibt es noch einiges an Alternativen zum ausprobieren.
Natürlich ist PyCharm anders als die normale Python-Shell, das ist aber auch ein Vergleich zwischen Äpfeln und Birnen. In der Python-Shell entwickelt man ja keine Programme. Zumindest nicht mit der Shell alleine.
Es gibt allerdings einen ganzen Haufen IDEs und Editoren die von Python-Programmierern verwendet werden. Wenn Dir PyCharm also nicht zusagt, gibt es noch einiges an Alternativen zum ausprobieren.
Natürlich ist PyCharm anders als die normale Python-Shell, das ist aber auch ein Vergleich zwischen Äpfeln und Birnen. In der Python-Shell entwickelt man ja keine Programme. Zumindest nicht mit der Shell alleine.
Könntest Du mal ein Beispiel machen, was man vermeidet und wie man das stattdessen macht? Was genau ist die Modulebene? Danke.keine Variablen auf Modulebene. Da gehört nur Code hin der Konstanten, Funktionen, und Klassen definiert.
Frage ist geklärt. Danke
Ich bin hier fündig geworden und komme damit gut zurecht.
Ich bin hier fündig geworden und komme damit gut zurecht.
