Erstellen Sie ein einfaches Zwei-Spieler-Spiel mit Turtle in Python
Voraussetzungen: Turtle-Programmierung in Python
Das TurtleMove- Spiel ist im Grunde ein Glücksspiel. In diesem Spiel spielen zwei Spieler (Rot & Blau) mit ihrer eigenen Schildkröte (Objekt) das Spiel.
Spielanleitung
Das Spiel wird in einem vordefinierten Raster mit einigen Grenzen gespielt.
- Beide Spieler bewegen die Schildkröte um eine Einheitsentfernung.
- Jetzt werfen beide Spieler die Münze:
- Wenn HEAD, dann biegen Sie rechts ab
- sonst biegen Sie links ab
- 3) Wiederholen Sie nun 1 & 2, bis beide Schildkröten in der Grenze liegen
Implementierung in Turtle Python
- Zunächst wird ein Schildkrötenbildschirmobjekt für die Gittergrenze erstellt.
- Jetzt werden zwei Schildkröten (Rot & Blau) erstellt, eine für jeden Spieler.
- Beide Schildkröten werden mit der Methode turtle_obj.forward (50) um eine Einheitsstrecke bewegt .
- Die Drehung wird mit random.randrange (0, 2) festgelegt, dh 0 für links und 1 für rechts.
- Nach jeder Bewegung wird die Position jeder Schildkröte überprüft. Wenn eine Schildkröte die Grenze überschreitet, verliert diese Schildkröte das Spiel.
Unten ist die Implementierung
import
random
import
turtle
def
isInScreen(win, turt):
leftBound
=
-
win.window_width()
/
2
rightBound
=
win.window_width()
/
2
topBound
=
win.window_height()
/
2
bottomBound
=
-
win.window_height()
/
2
turtleX
=
turt.xcor()
turtleY
=
turt.ycor()
stillIn
=
True
if
turtleX > rightBound
or
turtleX < leftBound:
stillIn
=
False
if
turtleY > topBound
or
turtleY < bottomBound:
stillIn
=
False
return
stillIn
def
sameposition(Red, Blue):
if
Red.pos()
=
=
Blue.pos():
return
False
else
:
return
True
def
main():
wn
=
turtle.Screen()
Red
=
turtle.Turtle()
Red.pencolor(
"red"
)
Red.pensize(
5
)
Red.shape(
'turtle'
)
pos
=
Red.pos()
Blue
=
turtle.Turtle()
Blue.pencolor(
"blue"
)
Blue.pensize(
5
)
Blue.shape(
'turtle'
)
Blue.hideturtle()
Blue.penup()
Blue.goto(pos[
0
]
+
50
, pos[
1
])
Blue.showturtle()
Blue.pendown()
mT
=
True
jT
=
True
while
mT
and
jT
and
sameposition(Red, Blue):
coinRed
=
random.randrange(
0
,
2
)
angleRed
=
90
if
coinRed
=
=
0
:
Red.left(angleRed)
else
:
Red.right(angleRed)
coinBlue
=
random.randrange(
0
,
2
)
angleBlue
=
90
if
coinBlue
=
=
0
:
Blue.left(angleBlue)
else
:
Blue.right(angleBlue)
Red.forward(
50
)
Blue.forward(
50
)
mT
=
isInScreen(wn, Blue)
jT
=
isInScreen(wn, Red)
Red.pencolor(
"black"
)
Blue.pencolor(
"black"
)
if
jT
=
=
True
and
mT
=
=
False
:
Red.write(
"Red Won"
,
True
, align
=
"center"
,
font
=
(
"arial"
,
15
,
"bold"
))
elif
mT
=
=
True
and
jT
=
=
False
:
Blue.write(
"Blue Won"
,
True
, align
=
"center"
,
font
=
(
"arial"
,
15
,
"bold"
))
else
:
Red.write(
"Draw"
,
True
, align
=
"center"
,
font
=
(
"arial"
,
15
,
"bold"
))
Blue.write(
"Draw"
,
True
, align
=
"center"
,
font
=
(
"arial"
,
15
,
"bold"
))
wn.exitonclick()
main()
Ausgabe: