Prerequisites: Turtle Programming in Python
TurtleMove game is basically a luck-based game. In this game two-players (Red & Blue), using their own turtle (object) play the game.
How to play
The game is played in the predefined grid having some boundaries.
- Both players move the turtle for a unit distance.
- Now both players flip the coin:
- if HEAD, then take a right turn
- else take a left turn
- 3) Now repeat 1 & 2, till both turtles lie in the boundary
Implementation in Turtle Python
- First, a turtle screen object is created for the grid boundary.
- Now two turtles (Red & Blue) are created, one for each player.
- Both turtles are moved a unit distance using turtle_obj.forward(50) method.
- Turn is decided, Using random.randrange(0, 2) i.e. 0 for left and 1 for the right.
- After every move, the position of each turtle is checked, if any turtle crosses the boundary, then that turtle loses the game.
Below is the implementation
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() |
Output:
Complexity :
The time complexity of the game is O(n), where n is the number of iterations in the while loop. The while loop continues to run as long as both turtles are in the screen and have different positions.
The space complexity of the game is O(1), as the number of variables and data structures used is constant and does not depend on the size of the input. The variables used are two turtle objects, a screen object, some integer variables, and a few boolean variables.