2016-03-24 2 views
0

Also meine Freunde und ich sind alle derzeit in einer Python-Klasse und wir haben durch ein Buch mit dem Titel "Invent Your Own Computer Spiele mit Python". Wir haben ein Beispiel gefunden, in dem das Buch erklärt, wie man ein Zahlenspiel erraten kann und sich entschieden hat, damit umzugehen.Erhöhung der Schwierigkeit der Rate das Zahlenspiel jedes Mal, wenn der Benutzer gewinnt (Python)

Wir möchten eine Funktion erstellen, die den Schwierigkeitsgrad jedes Mal erhöht, wenn der Benutzer die korrekte vom Computer generierte Nummer erfolgreich errät.

Ich dachte, dass wir vielleicht einen Zähler benötigen, um zu verfolgen, wie oft der Benutzer erfolgreich eine Runde gewinnt und dann (wenn sie gewonnen haben) steigt der Zahlenbereich. Zum Beispiel: einfach = (1, 5) mittel = (1, 10) hart = (1, 20)

Hier ist, was ich getan habe:

# This is a guess the number game. 
import random 

# create function for level difficulty 
# The difficulty will be multiplied by 2 each time the user passes a level 

def puzzle(difficulty): 
    while counter <= 3: 
     return difficulty * 2 

counter = 0 
guessestaken = 0 

while guessestaken < 3: 

    while counter < 3: 
     level = puzzle(3) 
     number = random.randint(1, level) 
     print("I am thinking of a number between 1 and " + str(level)) 

     print("Take a guess.") 
     guess = input() 
     guess = int(guess) 

     guessestaken += 1 
     if guess < number: 
      print("Your guess is too low.") 

     if guess > number: 
     print("Your guess is too high.") 

     if guess == number: 
      break 
     counter += 1 

    if guess == number: 
     guessestaken = str(guessestaken) 
     print ("Fantastic! You guessed my number in " + guessestaken + " guesses!") 

    if guess != number: 
     number = str(number) 
     print("Sorry, The number I was thinking of was " + number) 

Ich bin neu zu Python und gerade über Funktionen wie vor zwei Tagen gelernt. Jede Art von Hilfe ist willkommen.

+1

Sie nähern sich im Allgemeinen klingt richtig, aber gibt es eine bestimmte Frage hier? Sie können in Erwägung ziehen, auf http://codereview.stackexchange.com/ zu posten, wenn es sich um eine Codeüberprüfung handelt, nach der Sie suchen. – dwjohnston

+0

Sorry ich war nicht klar auf meine Frage. Meine Fragen sind: Wie würde ich mein Konzept der Verwendung eines Zählers genau ausführen? Und warum steigt mein Zahlenbereich nicht, wenn der Spieler ein Level gewinnt? Danke für den Ratschlag! Ich werde diese Website definitiv überprüfen. –

Antwort

0

arbeiten Dies könnte:

  1. Machen Sie eine Variable mit dem Namen, sagen wir, times_won am Anfang. Jedes Mal, wenn die Person gewinnt, times_won += 1

BONUS: Machen Sie dasselbe, aber mit einer Variablen namens times_lost und dass tick jedes Mal auf sie verlieren.

  1. Jetzt liegt es an Ihnen. Man könnte die Schwierigkeit wie folgt ändern:

    level = puzzle(times_won+1*2)

    Dies würde es machen, so dass es automatisch die mehr der Spieler gewinnt nach oben geht. Oder wie wäre es diese:

    curr_dificulty = 5 if #player_won: curr_dificulty += 4

    Diese und andere Variationen es auch auf Gewinnen basiert erhöhen würde, aber in einer anderen Art und Weise. Sie können es auch so machen, dass der Verlust die Schwierigkeit verringert. Dieser Teil liegt wirklich bei Ihnen.

P.S. Das von Ihnen verwendete Tag "pygame" bezieht sich auf Spiele, die mit einer herunterladbaren Bibliothek erstellt wurden, die Sie in Ihren Code importieren können, und nicht mit Python-Spielen. Es macht Spiele mit echten Grafiken, du solltest es ausprobieren!

P.P.S. falls du es nicht wusstest, die seltsame Syntax, die ich oben mit dem #player_won gemacht habe, und die Tatsache, dass die Zuweisung von curr_dificulty fehl am Platz ist, ist, weil ich Pseudocode verwendet habe. Es gibt im Grunde die Idee, aber Sie müssen den eigentlichen Code selbst tun.

+0

Vielen Dank für Ihre Antwort! Ja, es fiel mir schwer herauszufinden, warum meine Theke nicht funktionieren würde oder wie ich sie zur Arbeit bringen könnte. Ich schätze deinen Pseudocode und werde ihn sicher testen. Ich habe definitiv eine bessere Vorstellung davon, was ich jetzt tun soll. –

+0

P.S. Haha, danke, dass du mir das erzählt hast! Würde diese Bibliothek mit Pycharm arbeiten? Ich bin so ein Neuling, aber hey, wir fangen alle irgendwo an, richtig? –

+0

P.P.S Ja, das wusste ich, aber ich weiß es zu schätzen, dass Sie sich die Zeit genommen haben, es mir zu sagen. –

Verwandte Themen