Seite 1 von 1

Eine Frage zu einem Spiel

Verfasst: Dienstag 29. November 2016, 15:33
von Vipaah
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

Re: Eine Frage zu einem Spiel

Verfasst: Dienstag 29. November 2016, 15:39
von Sirius3
@Vipaah: Aus Deiner Frage versteh ich nicht, was Du willst. Ganz generell: Eingaben fragt man mit input ab, vergleichen tut man mit if und ausgeben mit print.

Re: Eine Frage zu einem Spiel

Verfasst: Dienstag 29. November 2016, 16:04
von pixewakb
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:

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()
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.

Re: Eine Frage zu einem Spiel

Verfasst: Dienstag 29. November 2016, 16:07
von 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.

Re: Eine Frage zu einem Spiel

Verfasst: Dienstag 29. November 2016, 17:18
von Vipaah
Gut, danke für die Antworten.
Außerdem wollte ich fragen, ob PyCharm eine gude IDE ist.
Kann sie jemand empfehlen? Ist sie anders als die normale Python Shell?
LG

Re: Eine Frage zu einem Spiel

Verfasst: Dienstag 29. November 2016, 17:34
von 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.

Re: Eine Frage zu einem Spiel

Verfasst: Dienstag 29. November 2016, 20:52
von pixewakb
keine Variablen auf Modulebene. Da gehört nur Code hin der Konstanten, Funktionen, und Klassen definiert.
Könntest Du mal ein Beispiel machen, was man vermeidet und wie man das stattdessen macht? Was genau ist die Modulebene? Danke.

Re: Eine Frage zu einem Spiel

Verfasst: Dienstag 29. November 2016, 21:27
von pixewakb
Frage ist geklärt. Danke
Ich bin hier fündig geworden und komme damit gut zurecht.