Crea un juego simple para dos jugadores usando Turtle en Python

Prerrequisitos: Programación Turtle en Python

El juego TurtleMove es básicamente un juego basado en la suerte. En este juego, dos jugadores (rojo y azul), usando su propia Turtle (objeto) juegan el juego.

Cómo jugar

El juego se juega en la cuadrícula predefinida que tiene algunos límites.

  • Ambos jugadores mueven la Turtle una unidad de distancia.
  • Ahora ambos jugadores lanzan la moneda:
  • si es HEAD, gire a la derecha
  • de lo contrario, gire a la izquierda
  • 3) Ahora repita 1 y 2, hasta que ambas turtle se encuentren en el límite.

Implementación en Turtle Python

  • Primero, se crea un objeto de pantalla de Turtle para el límite de la cuadrícula.
  • Ahora se crean dos turtle (Roja y Azul), una para cada jugador.
  • Ambas turtle se mueven una unidad de distancia usando el método turtle_obj.forward(50) .
  • Se decide el turno, utilizando random.randrange(0, 2), es decir, 0 para la izquierda y 1 para la derecha.
  • Después de cada movimiento, se verifica la posición de cada Turtle, si alguna Turtle cruza el límite, entonces esa Turtle pierde el juego.

A continuación se muestra la implementación.

Python3

import random
import turtle
 
# function to check whether turtle
# is in Screen or not
def isInScreen(win, turt):
     
    # getting the end points of turtle screen
    leftBound = -win.window_width() / 2
    rightBound = win.window_width() / 2
    topBound = win.window_height() / 2
    bottomBound = -win.window_height() / 2
 
    # getting the current position of the turtle
    turtleX = turt.xcor()
    turtleY = turt.ycor()
 
    # variable to store whether in screen or not
    stillIn = True
 
    # condition to check whether in screen or not
    if turtleX > rightBound or turtleX < leftBound:
        stillIn = False
    if turtleY > topBound or turtleY < bottomBound:
        stillIn = False
 
    # returning the result
    return stillIn
 
 
# function to check whether both turtle have
# different position or not
def sameposition(Red, Blue):
    if Red.pos() == Blue.pos():
        return False
    else:
        return True
 
#   main function
def main():
 
    # screen initialization for turtle
    wn = turtle.Screen()
 
    # Turtle Red initialization
    # instantiate a new turtle object
    # called 'Red'
    Red = turtle.Turtle()
     
    # set pencolor as red
    Red.pencolor("red")
     
    # set pensize as 5
    Red.pensize(5)
     
    # set turtleshape as turtle
    Red.shape('turtle')
    pos = Red.pos()
 
    # Turtle Blue initialization
    # instantiate a new turtle object
    # called 'Blue'
    Blue = turtle.Turtle()
     
    # set pencolor as blue
    Blue.pencolor("blue")
     
    # set pensize as 5
    Blue.pensize(5)
     
    # set turtleshape as turtle
    Blue.shape('turtle')
     
    # make the turtle invisible
    Blue.hideturtle()
     
    # don't draw when turtle moves
    Blue.penup()
     
    # move the turtle to a location 50
    # units away from Red
    Blue.goto(pos[0]+50, pos[1])
     
    # make the turtle visible
    Blue.showturtle()
     
    # draw when the turtle moves
    Blue.pendown()
 
    # variable to store whether turtles
    # are in screen or not
    mT = True
    jT = True
 
    # loop for the game
    while mT and jT and sameposition(Red, Blue):
 
        # coin flip for Red
        coinRed = random.randrange(0, 2)
 
        # angle for Red
        # random.randrange(0, 180)
        angleRed = 90
 
        # condition for left or right
        # based on coin
        if coinRed == 0:
            Red.left(angleRed)
        else:
            Red.right(angleRed)
 
        # coin flip for Blue
        coinBlue = random.randrange(0, 2)
 
        # angle for Blue
        # random.randrange(0, 180)
        angleBlue = 90
 
        # condition for left or right based
        # on coin
        if coinBlue == 0:
            Blue.left(angleBlue)
        else:
            Blue.right(angleBlue)
 
        # draw for Red
        Red.forward(50)
 
        # draw for Blue
        Blue.forward(50)
 
        # checking whether turtles are in the
        # screen or not
        mT = isInScreen(wn, Blue)
        jT = isInScreen(wn, Red)
 
    # set pencolor for Blue and Red as black
    Red.pencolor("black")
    Blue.pencolor("black")
 
    # condition check for draw or win
    if jT == True and mT == False:
        # writing results
        Red.write("Red Won", True, align="center",
                  font=("arial", 15, "bold"))
     
    elif mT == True and jT == False:
         
        # writing results
        Blue.write("Blue Won", True, align="center",
                   font=("arial", 15, "bold"))
    else:
        # writing results
        Red.write("Draw", True, align="center",
                  font=("arial", 15, "bold"))
        Blue.write("Draw", True, align="center",
                   font=("arial", 15, "bold"))
 
    # exit on close
    wn.exitonclick()
 
 
# Calling main function
main()

Producción: 

Publicación traducida automáticamente

Artículo escrito por iamjpsonkar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *