21 Zahlenspiel in Python
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():
(
"\n\nYOU LOSE !"
)
(
"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
:
(
"Enter 'F' to take the first chance."
)
(
"Enter 'S' to take the second chance."
)
chance
=
input
(
'> '
)
if
chance
=
=
"F"
:
while
True
:
if
last
=
=
20
:
lose1()
else
:
(
"\nYour Turn."
)
(
"\nHow many numbers do you wish to enter?"
)
inp
=
int
(
input
(
'> '
))
if
inp >
0
and
inp <
=
3
:
comp
=
4
-
inp
else
:
(
"Wrong input. You are disqualified from the game."
)
lose1()
i, j
=
1
,
1
(
"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
(
"Order of inputs after computer's turn is: "
)
(xyz)
last
=
xyz[
-
1
]
else
:
(
"\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
(
"Order of inputs after computer's turn is:"
)
(xyz)
if
xyz[
-
1
]
=
=
20
:
lose1()
else
:
(
"\nYour turn."
)
(
"\nHow many numbers do you wish to enter?"
)
inp
=
input
(
'> '
)
inp
=
int
(inp)
i
=
1
(
"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
:
(
"\nYou did not input consecutive integers."
)
lose1()
(
"\n\nCONGRATULATIONS !!!"
)
(
"YOU WON !"
)
exit(
0
)
else
:
(
"wrong choice"
)
game
=
True
while
game
=
=
True
:
(
"Player 2 is Computer."
)
(
"Do you want to play the 21 number game? (Yes / No)"
)
ans
=
input
(
'> '
)
if
ans
=
=
'Yes'
:
start1()
else
:
(
"Do you want quit the game?(yes / no)"
)
nex
=
input
(
'> '
)
if
nex
=
=
"yes"
:
(
"You are quitting the game..."
)
exit(
0
)
elif
nex
=
=
"no"
:
(
"Continuing..."
)
else
:
(
"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.