21, Bagram oder Twenty plus One ist ein Spiel, das durch Zählen von 1 bis 21 fortschreitet, wobei der Spieler, der "21" ruft, eliminiert wird. Es kann zwischen einer beliebigen Anzahl von Spielern gespielt werden.

Implementierung
Dies ist ein einfaches 21-Zahlen-Spiel mit der Programmiersprache Python. Das hier abgebildete Spiel befindet sich zwischen dem Spieler und dem Computer. Es kann viele Variationen im Spiel geben.

  • Der Spieler kann wählen, ob er zuerst oder zweitens starten möchte.
  • Die Liste der Zahlen wird angezeigt, bevor der Spieler an die Reihe kommt, damit es bequem wird.
  • Wenn bei der Eingabe keine fortlaufenden Nummern angegeben werden, wird der Spieler automatisch disqualifiziert.
  • Der Spieler verliert, wenn er die Chance bekommt, 21 zu callen, und gewinnt ansonsten.

Sie können gegen den Computer gewinnen, indem Sie als Zweiter spielen. Die Strategie besteht darin, Nummern bis zum Vielfachen von 4 anzurufen, was schließlich zu 21 auf dem Computer führen würde, wodurch der Spieler zum Gewinner wird.

  
def nearestMultiple(num): 
    if num >= 4: 
        near = num + (4 - (num % 4)) 
    else: 
        near = 4
    return near 
  
def lose1(): 
    print ("\n\nYOU LOSE !") 
    print("Better luck next time !") 
    exit(0) 
      
def check(xyz): 
    i = 1
    while i<len(xyz): 
        if (xyz[i]-xyz[i-1])!= 1: 
            return False
        i = i + 1
    return True
  
def start1(): 
    xyz = [] 
    last = 0
    while True: 
        print ("Enter 'F' to take the first chance.") 
        print("Enter 'S' to take the second chance.") 
        chance = input('> ') 
          
        
        if chance == "F": 
            while True: 
                if last == 20: 
                    lose1() 
                else: 
                    print ("\nYour Turn.") 
                    print ("\nHow many numbers do you wish to enter?") 
                    inp = int(input('> ')) 
                      
                    if inp > 0 and inp <= 3: 
                        comp = 4 - inp 
                    else: 
                        print ("Wrong input. You are disqualified from the game.") 
                        lose1() 
              
                    i, j = 1, 1
  
                    print ("Now enter the values") 
                    while i <= inp: 
                        a = input('> ') 
                        a = int(a) 
                        xyz.append(a) 
                        i = i + 1
                      
                    
                    last = xyz[-1
                      
                    
                    
                    if check(xyz) == True
                        if last == 21: 
                            lose1() 
                              
                        else: 
                            
                            while j <= comp: 
                                xyz.append(last + j) 
                                j = j + 1
                            print ("Order of inputs after computer's turn is: ") 
                            print (xyz) 
                            last = xyz[-1] 
                    else: 
                        print ("\nYou did not input consecutive integers.") 
                        lose1() 
                          
        
        elif chance == "S": 
            comp = 1
            last = 0
            while last < 20: 
                
                j = 1
                while j <= comp: 
                    xyz.append(last + j) 
                    j = j + 1
                print ("Order of inputs after computer's turn is:") 
                print (xyz) 
                if xyz[-1] == 20: 
                    lose1() 
                      
                else: 
                    print ("\nYour turn.") 
                    print ("\nHow many numbers do you wish to enter?") 
                    inp = input('> ') 
                    inp = int(inp) 
                    i = 1
                    print ("Enter your values") 
                    while i <= inp: 
                        xyz.append(int(input('> '))) 
                        i = i + 1
                    last = xyz[-1] 
                    if check(xyz) == True: 
                        
                        near = nearestMultiple(last) 
                        comp = near - last 
                        if comp == 4: 
                            comp = 3
                        else: 
                            comp = comp 
                    else: 
                        
                        
                        print ("\nYou did not input consecutive integers.") 
                        
                        lose1() 
            print ("\n\nCONGRATULATIONS !!!") 
            print ("YOU WON !") 
            exit(0) 
              
        else: 
            print ("wrong choice") 
                          
          
game = True    
while game == True: 
        print ("Player 2 is Computer.") 
        print("Do you want to play the 21 number game? (Yes / No)") 
        ans = input('> ') 
        if ans =='Yes': 
            start1() 
        else: 
            print ("Do you want quit the game?(yes / no)") 
            nex = input('> ') 
            if nex == "yes": 
                print ("You are quitting the game...") 
                exit(0) 
            elif nex == "no": 
                print ("Continuing...") 
            else: 
                print ("Wrong choice") 
                 

Ausgabe:

Spieler 2 ist Computer.
Willst du das Spiel starten? (Ja Nein)
> Ja
Geben Sie 'F' ein, um die erste Chance zu nutzen.
Geben Sie 'S' ein, um die zweite Chance zu nutzen.
> S.
Die Reihenfolge der Eingaben nach dem Einschalten des Computers lautet:
[1]
Du bist dran.
Wie viele Nummern möchten Sie eingeben?
> 3
Geben Sie Ihre Werte ein
> 2
> 3
> 4
Die Reihenfolge der Eingaben nach dem Einschalten des Computers lautet:
[1, 2, 3, 4, 5, 6, 7]
Du bist dran.
Wie viele Nummern möchten Sie eingeben?
> 1
Geben Sie Ihre Werte ein
> 8
Die Reihenfolge der Eingaben nach dem Einschalten des Computers lautet:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
Du bist dran.
Wie viele Nummern möchten Sie eingeben?
> 1
Geben Sie Ihre Werte ein
> 12
Die Reihenfolge der Eingaben nach dem Einschalten des Computers lautet:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
Du bist dran.
Wie viele Nummern möchten Sie eingeben?
> 1
Geben Sie Ihre Werte ein
> 16
Die Reihenfolge der Eingaben nach dem Einschalten des Computers lautet:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
Du bist dran.
Wie viele Nummern möchten Sie eingeben?
> 1
Geben Sie Ihre Werte ein
> 20
HERZLICHE GLÜCKWÜNSCHE!!!
DU HAST GEWONNEN!

Probieren Sie es selbst als Übung aus:

  • Sie können das Programm weiter verbessern, indem Sie die Anzahl der Spieler erhöhen.
  • Sie können auch nur gerade / ungerade Zahlen verwenden.
  • Sie können die Zahlen durch ein Binärzahlensystem ersetzen.
  • Sie können Levels mit Variationen im Spiel hinzufügen.