2017-12-21 2 views
0

Können Sie mir bitte ein paar Tipps geben oder mir helfen, einen Code auf Python zu schreiben, um den Startspieler auf der linken Seite immer zu zeigen? Manchmal startet char1 und manchmal char2 das Spiel, wie kann ich einen Code schreiben, um auf der linken Seite den Char zu zeigen, der das Spiel startet, bis das Spiel endet, hier in diesem Code zeigt es immer den char1, den ich versucht habe zu machen einige Änderungen durch Ändern der Anweisungen, aber dann änderte jede Runde die Reihenfolge der Zeichen, eigentlich möchte ich zum Beispiel bleiben, wenn das char2 das Spiel beginnt, das ich ihm auf der linken Seite zeigen möchte, bis das Spiel beendet ist. Am Ende des Codes steht die Ausgabe des eigentlichen Codes. Für das Beispiel hier wird der zweite Spieler auf der rechten Seite gezeigt, aber ich möchte, dass er auf der linken Seite angezeigt wird, bis das Spiel endet, weil er der Spieler ist, der das Spiel beginnt. Danke. mit Respekt-Marschall AlifePutting der erste Spieler auf der linken Seite Python 2.7

import random 

# --- 

def game(): 

    char1 = raw_input("Player One: ") 

    while char1 == "": 
     char1 = raw_input("Please enter your name: ") 

    char2 = raw_input("Player two: ") 
    while char2 == char1: 
     char2 = raw_input(char1 + " name is taken, please choose another name: ") 
    while char2 == "": 
     char2 = raw_input("Please enter your name: ") 
    print char1, "and", char2, "welcome to the game." 

    # --- 

    health1 = health2 =100 

    print char1,"[HP]"+"[%d]"%health1, '|' * (health1/2), 
    print char2,"[HP]"+"[%d]"%health2, '|' * (health2/2) 

    toss = random.randint(0, 1) 

    if toss == 0: 
     print char1, "will start the game" 
    else: 
     print char2, "will start the game" 

    # --- 

    while health1 > 0 and health2 > 0: 
     if toss == 0: 
      n = input(char1 + " select magnitude force between 1 and 50: ") 
      if 50>=n>=1: 
       if n > random.randint(1, 51): 
        print "you missed the chance" 
        print char1,"[HP]" + "[%d]" % health1, '|' * (health1/2), " " * (50 - health1/2), 
        print char2,"[HP]" + "[%d]" % health2, '|' * (health2/2), " " * (50 - health2/2) 
        toss= 1 
       else: 
        health2 -= n 
        print char1,"[HP]" + "[%d]" % health1, '|' * (health1/2), " " * (50-health1/2), 
        print char2,"[HP]" + "[%d]" % health2, '|' * (health2/2), " " * (50-health2/2) 
        toss = 1 # change player 
      else: 
       print "n should be between 1 and 50" 
     else: 
      n = input(char2 + " select magnitude force between 1 and 50: ") 
      if 50 >= n >= 1: 
       if n > random.randint(1, 51): 
        print "you missed the chance" 
        print char1,"[HP]" + "[%d]" % health1, '|' * (health1/2), " " * (50 - health1/2), 
        print char2,"[HP]" + "[%d]" % health2, '|' * (health2/2) 
        toss= 0 
       else: 
        health1 -= n 
        print char1,"[HP]" + "[%d]" % health1, '|' * (health1/2), " " * (50 - health1/2), 
        print char2,"[HP]" + "[%d]" % health2, '|' * (health2/2) 
        toss = 0 # change player 
      else: 
       print "n should be between 1 and 50" 
    # --- 

    if health1 > 0: 
     print char1, 'wins' 
    else: 
     print char2, 'wins' 

game() 

    # --- 

while True: 
    c=raw_input("Do you want to continue Yes or No: ") 
    if c=="Yes": 
     print "Welcome to the game again" 
     game() 
    elif c=="No": 
     print "Good bye" 
     break #return game() 

Player One: marshal 
Player two: alife 
marshal and alife welcome to the game. 
marshal [HP][100] |||||||||||||||||||||||||||||||||||||||||||||||||| alife [HP][100] |||||||||||||||||||||||||||||||||||||||||||||||||| 
alife will start the game 
alife select magnitude force between 1 and 50: 10 
you missed the chance 
marshal [HP][100] |||||||||||||||||||||||||||||||||||||||||||||||||| alife [HP][100] |||||||||||||||||||||||||||||||||||||||||||||||||| 
marshal select magnitude force between 1 and 50: 
+0

Sie sollten Ihre Frage eingrenzen und vielleicht etwas Ausgabe des Programms zur Verfügung stellen, wie es jetzt ist, sowie Ihre gewünschte Ausgabe. So wie es jetzt ist, müssen wir uns den gesamten Code ansehen. – Yohst

+0

@Yohst du gehst Bruder ich habe die Ausgabe hier eingegeben Sie können einen Blick haben ist unter dem Code –

+0

So scheint es, Sie wollen in dem Beispiel, das Sie zur Verfügung gestellt, 'Alife' von links unter/über 'Marshal' gedruckt werden? Wenn dies der Fall ist, brauchst du nur einen Zeilenumbruch am Ende zu drucken (\ n) – Yohst

Antwort

1

Ihrer ‚App‘ zur Zeit hartcodiert auf der char1/char2 Sequenz, wäre das Beste, was zu brechen. Eine Möglichkeit, dies zu tun, besteht darin, dass char1 und char2 Mitglieder einer Liste sind. z.B. characters= [char1, char2] So ist der Abschnitt um ‚Münzwurf‘ wird:

first = toss second = 1 - toss print characters[first], "will start the game"

die Abschnitte, in denen Sie die Statistiken tun Aufrechterhaltung und Druck müssen in ähnlicher Weise aktualisiert werden (so Ihre Gesundheit Partitur in eine Liste geht auch). Hoffe, das hilft ...

Verwandte Themen