Close Menu
    Facebook LinkedIn YouTube WhatsApp X (Twitter) Pinterest
    Trending
    • Best Chromebooks (2026): Most Are Bad, but These Aren’t
    • Appeals court revives Comanche challenge to Oklahoma tribal casino lawsuit
    • Dinnerly Meal Kits Start at $6 a Serving. We Tested the Budget-Friendly Service in 2026
    • How to Run OpenClaw with Open-Source Models
    • AI needs a strong data fabric to deliver business value
    • Urban Gable Park tiny house offers extra-wide single-level layout and spacious interior
    • From PhD to pitch: How games studio Mental Jam won the Growth Summit pitch competition
    • Dinnerly Meal Kit Review (2026): Hearty Meals on a Budget
    Facebook LinkedIn WhatsApp
    Times FeaturedTimes Featured
    Wednesday, April 22
    • Home
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    • More
      • AI
      • Robotics
      • Industries
      • Global
    Times FeaturedTimes Featured
    Home»Artificial Intelligence»Implementing the Snake Game in Python
    Artificial Intelligence

    Implementing the Snake Game in Python

    Editor Times FeaturedBy Editor Times FeaturedFebruary 12, 2026No Comments18 Mins Read
    Facebook Twitter Pinterest Telegram LinkedIn Tumblr WhatsApp Email
    Share
    Facebook Twitter LinkedIn Pinterest Telegram Email WhatsApp Copy Link


    cellphone my mom had is carefully associated to the sport it had. Sure, the classical snake recreation, so easy but so addicting. I bear in mind taking part in this recreation on finish on my mom’s cellphone, shedding after which making an attempt many times!

    On this article, we’ll be taught to construct a easy Snake Recreation. We are going to use Python’s turtle module with a view to generate this recreation. Observe that it is a newbies to intermediate degree Python tutorial, and expects the reader to be acquainted with Python fundamentals equivalent to capabilities and loops, importing and accessing modules, and utilizing conditional statements. It additionally requires one to have a surface-level understanding of Object Oriented Programming, particularly creating objects situations from lessons. For the sake of simplicity, I’ll clarify every line of code. Let’s get began!

    Photograph by Alfonso Castro on Unsplash

    Understanding the Recreation

    The classical Snake recreation includes a small snake with a plain background. Meals is supplied on the display screen. Because the snake eats the meals, it grows in measurement, and the rating will increase. As quickly because the snake collides with the boundary wall or itself, the sport ends, and one loses.

    With the intention to code this recreation in Python, we might want to handle the next factors:

    1. Establishing the Recreation Display – within the classical Snake recreation, the background is a uninteresting neon yellow-green display screen
    2. Creating the Snake physique – the sport begins with a small black snake, which progressively will increase in measurement because it eats the meals
    3. Shifting the Snake – the snake can transfer within the 4 instructions: up, down, left, and proper by way of the arrow keys on the keyboard or corresponding buttons on the cellphone
    4. Creating the Meals – the meals for the snake seems at random places on the display screen
    5. The Snake consuming the Meals – because the snake’s physique collides with the meals created, the rating is elevated in addition to the size of the snake, and new meals is generated randomly, and the sport continues.
    6. The Snake Colliding with itself or the Boundary Wall – if the snake’s physique collides with itself or the boundary of the sport display screen, the sport ends.

    Allow us to begin coding.

    Establishing the Recreation Display

    First issues first, we’ll create a brand new venture in our IDE, let’s name it “Snake Recreation”. I’m utilizing PyCharm to code. Subsequent, we’ll create a brand new “snake recreation.py” file. Initially, we’ll import the Turtle module, particularly its Display and Turtle lessons.

    from turtle import Display, Turtle

    The Turtle Module is a built-in Python package deal that enables one to attract shapes, traces, patterns, and animations on a display screen by way of code. The module works as if there’s a turtle with a brush on its again, and no matter you command it to go to, it would go there, thereby creating drawings. You’ll be able to ask the turtle to maneuver ahead, to show left by a sure angle, draw a circle and so forth. The turtle will draw precisely that, and it’s a straightforward software to visualise one’s code. It helps practising variables, loops, capabilities, coordinates, and fundamental animation logic with prompt visible outputs.

    You’ll be able to try the Turtle Official Documentation here.

    As may be seen within the line of code above, we’ve imported two components: Display and Turtle. These are lessons which might be outlined within the module. In Python, a category is a blueprint used to create objects. Turtle and Display are lessons which might be used to create corresponding objects. These objects may have attributes (variables) and strategies (capabilities) as outlined of their blueprint, with the supply of customization.

    Allow us to first create the background for our recreation. We are going to use the Display class for this objective and customise it in keeping with our necessities. For reference, test the Display strategies from the official documentation here.

    #Establishing the Recreation Display
    display screen = Display()
    display screen.setup(width=600, top=600)
    display screen.bgcolor("inexperienced yellow")
    display screen.title("Snake Recreation")
    display screen.tracer(0)
    
    display screen.exitonclick()

    As may be seen within the code above, we first created the display screen object from the Display Class. Subsequent, we’ve used the setup() technique of the Display class and set the width of the Recreation Display to 600×600. We’ve got custom-made the background coloration to “inexperienced yellow” utilizing the bgcolor() technique. The title of the colour may be discovered by way of this hyperlink. I chosen the colour that carefully resembled the colour within the authentic recreation. After that, we’ve named the display screen “Snake Recreation” utilizing the title() technique. The tracer() technique from the Turtle class lets us management the animation. By giving an argument of “0”, we’ve turned it off. This might be higher understood after we create the snake and meals. Lastly, we’ve used the exitonclick() technique to set the window to shut solely after we click on on it. In any other case, the window closes as quickly because it pops up and executes the entire code.

    Working the code above would output the next:

    The Recreation Display (Picture by Writer)

    Creating the Snake Physique

    As soon as we’ve created the Recreation Display, the following activity is to create the snake. The snake may also be created utilizing the Turtle class. We are going to create 3 turtle objects that received’t resemble a turtle in any respect. Reasonably, they are going to be sq. segments, and when positioned collectively, will resemble a snake’s physique, identical to within the recreation. For this objective, we’ll use a for loop to create the three segments. Every section might be positioned at a specified place. Allow us to code this:

    #Creating the Snake
    segments = []
    starting_positions = [(0,0), (-20,0), (-40,0)]
    for place in starting_positions:
        new_segment = Turtle("sq.")
        new_segment.coloration("black")
        new_segment.penup()
        new_segment.shapesize(1,1)
        new_segment.goto(place)
        segments.append(new_segment)
    
    display screen.replace()

    Within the code above, we first created an empty checklist of segments. This checklist will comprise the snake segments. As soon as the snake segments are created, it would consist of three segments, and each time the snake eats its meals, the variety of segments will enhance. We’ve got created a tuple starting_positions. This may comprise 3 positions specified when it comes to their x and y coordinates, and would be the positions the place the snake segments might be created. We are going to create the primary section at (0,0), the second at (-20,0), and the third section at (-40,0). Utilizing the for loop, we’ve created 3 segments from the variable new_segment as a turtle object, of sq. form and normal measurement 20×20. The arguments to shapesize() technique is given as 1×1 because it stretches the scale of the drawing cursor relative to its default 20×20 pixel measurement. The penup() technique permits us to cover the pen, and simply output the form of the turtle object. The goto() technique permits us to create the form ranging from that place. Lastly, we’ve appended the newly created section to the empty checklist we created to start with of this code block. On this manner, 2 extra segments might be created as there are 2 extra positions within the starting_positions tuple.

    In the long run, we’ll replace our display screen in order that it now reveals each the custom-made display screen and the newly created snake. This would be the output:

    Creating the Snake Physique (Picture by Writer)

    Discover that we’ve created the segments utilizing simply the for loop. As we go forward in our program, we might want to enhance the snake’s segments because it eats the meals. With the intention to make this addition handy to us, allow us to modify the code block and add a perform known as add_segments, to create the snake in addition to use it later when including segments to the snake when it eats the meals. This might be a greater strategy to programming within the present state of affairs:

    #Creating the Snake
    segments = []
    starting_positions = [(0,0), (-20,0), (-40,0)]
    
    #Including Segments Perform
    def add_segments(place):
        new_segment = Turtle("sq.")
        new_segment.coloration("black")
        new_segment.penup()
        new_segment.goto(place)
        segments.append(new_segment)
    
    for place in starting_positions:
        add_segments(place)
    
    display screen.replace()

    Within the above code block, we’ve performed precisely what we had been beforehand doing, that’s, creating the snake physique, besides that we’ve used a Python perform to take action. We’ve got outlined a perform known as add_segments, whose objective is simply so as to add the segments to the snake’s physique, and the segments checklist. Furthermore, now’s the place the display screen’s tracer() technique comes to make use of. If you happen to remark out the display screen.tracer() line that we added within the begining you will notice the animation of the snake’s physique being created one section at a time (and we don’t need that in our recreation!). This could higher be visualized by first importing the time module and utilizing the sleep() perform. The animation might be extra seen.

    import time
    
    #Maintain the remainder of the code similar
    
    for place in starting_positions:
        add_segments(place)
        time.sleep(1)
    display screen.replace()

    Snake Motion

    The subsequent activity is to code the snake’s motion. To start with, allow us to simply make the snake transfer ahead. We are going to first create a variable game_is_on that might be True so long as the sport is operating, and might be switched to False as soon as we lose or the sport ends. This variable might be used within the whereas loop. So long as the sport is on, the snake will proceed shifting, and we’ll solely be capable of change its path utilizing the arrow keys. That is going to be the a part of our program that may maintain the sport on.

    Now comes the complicated half. To maneuver the snake ahead, we have to transfer all of its segments forward. The best way to make the whole snake physique transfer ahead is by making every section, aside from the primary one, to maneuver to the one earlier than it. Which means that in the beginning, when the snake is barely 3 segments lengthy, section 3 will transfer to the place of section 2, and section 2 will transfer to the place of section 1, and section 1 will transfer ahead utilizing the turtle ahead() technique. This may be coded within the for loop, by giving it a beginning worth of the final aspect of the checklist, which is the aspect on the 2nd place (checklist components begin from 0, thus 0, 1, 2) when the snake is created (having 3 segments) or in any other case calculated because the size of the segments, minus 1. The for loop will finish at place 0, and as it’s shifting in reverse, we’ll give it a step measurement of -1. This entire state of affairs is coded as beneath:

    game_is_on = True
    whereas game_is_on:
        display screen.replace()
        time.sleep(0.1)
        for seg_num in vary(len(segments)-1, 0, -1):
            new_x = segments[seg_num - 1].xcor()
            new_y = segments[seg_num - 1].ycor()
            segments[seg_num].goto(new_x, new_y)
        segments[0].ahead(20)

    Discover that we’ve added the display screen’s replace() technique, in addition to outlined the velocity of the snake utilizing the time module’s sleep() perform. By giving it an argument of 0.1, the snake segments will transfer ahead with a time delay of 0.1 seconds, and this velocity may be adjusted. If given an argument of 1, the time delay might be 1 second, and the velocity of the snake might be sluggish. You’ll be able to experiment with the snake’s velocity by altering the values given to the sleep() perform.

    The within of the for loop elaborates how the segments will transfer to the earlier segments’ place utilizing its coordinates. And on the finish, we’ve the primary section of our snake shifting forward by 20 utilizing the turtle’s ahead() technique. Working our code would output a shifting snake:

    Snake Shifting Ahead (Picture by Writer)

    Controlling the Snake

    Now that we’ve seen easy methods to make the snake transfer, the following factor is to regulate the up/down/left/proper actions of the snake. For this, we’ll use the display screen listeners. We are going to code this system in order that on urgent the up, down, left, and proper keys, the snake will transfer accordingly by altering its head.

    Another characteristic that we have to add, taking it from the unique snake recreation, is that when the snake is shifting left, it can not immediately flip proper, when it’s shifting up, it cannot immediately flip downwards. Briefly, the snake can not flip 180 levels from the place it’s shifting. Allow us to add this characteristic to our code. Be certain that so as to add these traces of code earlier than the sport’s whereas loop we coded earlier.

    
    #Controlling the Snake
    display screen.hear()
    def turn_up():
        if segments[0].heading() != 270:
            segments[0].setheading(90)
    def turn_down():
        if segments[0].heading() != 90:
            segments[0].setheading(270)
    def turn_left():
        if segments[0].heading() != 0:
            segments[0].setheading(180)
    def turn_right():
        if segments[0].heading() != 180:
            segments[0].setheading(0)
    
    display screen.onkey(turn_up, "Up")
    display screen.onkey(turn_down, "Down")
    display screen.onkey(turn_left, "Left")
    display screen.onkey(turn_right, "Proper")

    As may be seen above, we first used the display screen’s hear() technique that lets us hearken to the display screen’s enter keys. Subsequent, we’ve outlined capabilities which might be known as later within the display screen’s onkey() technique, which calls a perform primarily based on a keyboard key pressed. We’ve got outlined 4 capabilities, every to show to a path aside from the exact opposite, utilizing the turtle’s technique setheading(). This technique units the pinnacle of the turtle, which is the primary section or section[0] to 0, 90, 180, or 270, that’s, proper, up, left, or down. The if conditional statements in every perform ensure that the snake doesn’t flip in its other way, as we will see within the authentic recreation.

    Working the whole code with this code block addition will allow us to transfer our snake:

    Controlling Snake’s Motion with Arrow Keys (Picture by Writer)

    Meals Creation

    As soon as the snake has been created and programmed to maneuver utilizing the arrow keys, the following activity is to create the meals which the snake will eat and develop. This meals may also be created as a turtle object in a round form, in pink. We are going to set the shapesize to 0.5 so the meals is 10×10 pixels on the display screen. We’ve got additionally set the velocity() to “quickest” so the animation is quick, and there’s no delay in meals creation. Right here, we’ll import Python’s random module to create the meals at random positions on the sport display screen. We’ve got set the boundary of meals as -275 to 275 on each the x and y axes. That is in order that it’s simpler for the snake to eat its meals with out colliding with the outer display screen boundary.

    Furthermore, each time the snake eats its meals, new meals must be generated. For this objective, we’ll outline a perform refresh() and generate new random coordinates the place the turtle object known as meals will transfer to. Try the code beneath:

    #Creating the Meals
    import random
    meals = Turtle()
    meals.coloration("pink")
    meals.form("circle")
    meals.penup()
    meals.shapesize(stretch_len=0.5, stretch_wid=0.5)
    meals.velocity("quickest")
    random_x = random.randint(-275, 275)
    random_y = random.randint(-275, 275)
    meals.goto(random_x, random_y)
    
    def refresh():
        random_x = random.randint(-275, 275)
        random_y = random.randint(-275, 275)
        meals.goto(random_x, random_y)
    Meals Creation (Picture by Writer)

    Detect Collision with Meals

    As soon as we’ve created the meals, we now must create a mechanism whereby the snake eats the meals. Which means that each time the snake touches the meals, the meals vanishes, and the snake grows by one section. We are going to code this state of affairs such that each time the snake and meals are in shut proximity, in order that their distance is lower than 15, it means the snake has eaten the meals. We are going to make use of the turtle module’s distance() technique that calculates the space between a turtle and a selected level or one other turtle object. If this distance is lower than 15 (by way of trial and error), it could imply the snake has touched or eaten its meals, and the meals ought to now transfer to a brand new location for recreation continuity. Therefore, we’ll now name the refresh() perform that we outlined earlier to maneuver the meals object to a brand new location. Consuming the meals ought to enhance the snake’s measurement by a section. For this, we’ll outline a perform known as lengthen() exterior the whereas loop and name it contained in the if conditional assertion when the snake eats the meals.

    #Snake extending
    def lengthen():
        add_segments(segments[-1].place())

    As may be seen, the lengthen() perform will add a brand new section to the final section of the snake’s physique. Now shifting on to the primary recreation’s loop:

    
    game_is_on = True
    whereas game_is_on:
        ...
        #Retain the unique code right here
        ...
        #Detect Collision with Meals
        if segments[0].distance(meals) < 15:
            refresh()
            lengthen()
    Snake Consuming Meals and Extending (Picture by Writer)

    Scoreboard and Rating Updation

    Subsequent is to create a scoreboard that might show the rating. To do that, we’ll code exterior the whereas loop. We are going to create this scoreboard and the rating as 2 turtle objects utilizing turtle’s write() technique, which permits us to show textual content on display screen. First, we’ll initialize a variable known as rating as 0. Because the snake eats its meals, the rating variable might be elevated by 1 every time. Subsequent, we’ll create 2 turtle situations, scoreboard and my_score. The scoreboard object will show the textual content on display screen “Rating = “, whereas the my_score object will show the rating variable, which is able to change because the snake eats its meals. As may be seen within the code beneath, each of those turtle objects have been custom-made for the display screen textual content show in keeping with the necessity.

    #Creating the Scoreboard & Rating
    rating = 0
    
    scoreboard = Turtle()
    scoreboard.coloration("black")
    scoreboard.penup()
    scoreboard.hideturtle()
    scoreboard.goto(0,250)
    scoreboard.write("Rating = ", True, align="heart", font=("Arial", 12, "regular"))
    
    my_score = Turtle()
    my_score.coloration("black")
    my_score.penup()
    my_score.hideturtle()
    

    As soon as we’ve created the above, we’ll now proceed so as to add the supply of fixing the core throughout the whereas loop of the sport, contained in the if conditional assertion when the snake collides with the meals. Test the code beneath and replace the precise traces of code:

    game_is_on = True
    whereas game_is_on:
        ...
        #Retain the unique code right here
        ...
        #Detect Collision with Meals
        if segments[0].distance(meals) < 20:
            refresh()
            lengthen()
            rating = rating + 1
            my_score.goto(40, 250)
            my_score.clear()
            my_score.write(rating, True, align="heart", font=("Arial", 12, "regular"))

    The next is displayed on the display screen after operating this system with the above additions:

    Scoreboard and Rating Show (Picture by Writer)

    Recreation Ending

    When the sport ends, we have to inform the consumer that the sport is over, relatively than simply closing the show display screen. For this we’ll outline a perform and name it each time the sport ends: both by collision with a wall or by collision with tail. We are going to use the turtle object for this as effectively. That is the perform, and will probably be known as when game_is_on variable turns to False.

    #Recreation Over Pop Up
    def game_over():
        game_over = Turtle()
        game_over.coloration("black")
        game_over.penup()
        game_over.hideturtle()
        game_over.write("GAME OVER", True, align="heart", font=("Arial", 40, "regular"))
    

    Detect Collision with Wall

    One other situation of the sport’s continuity is to ensure the snake doesn’t collide with the boundary wall of the display screen. With the intention to code this, and figuring out that the sport’s display screen is 600×600, we’ll think about the boundary wall a sq. with its corners to be at these factors: (290, 290), (290, -290), (-290, -290) and (-290, 290). The wall detection block might be throughout the recreation loop in a separate if conditional assertion as follows:

    game_is_on = True
    whereas game_is_on:
        ...
        #Retain the unique code right here
        ... 
        # Detect Collision with Wall
        if segments[0].xcor() > 290 or segments[0].xcor() < -290 or segments[0].ycor() > 290 or segments[0].ycor() < -290:
            game_is_on = False
            game_over()
     

    Within the above traces of code, we’ve accessed the x and y coordinates of the primary section of the snake and checked whether or not it falls inside or exterior of the boundary wall.

    Detect Collision with Tail

    Lastly, we’ll finish this program with one other situation of the sport, which is that if the snake’s head collides with itself, that’s, the primary section collides with another section, the sport ends. We are going to use the for loop to code this state of affairs:

    game_is_on = True
    whereas game_is_on:
        ...
        #Retain the unique code right here
        ...   
        # Detect Tail Collision
        for section in segments[1:]:
            if segments[0].distance(section) < 10:
                game_is_on = False
                game_over()
     

    When the sport ends, we have to inform the consumer that the sport is over, relatively than simply closing the show display screen. For this, we’ll name the game_over perform we outlined earlier.

    Recreation Over (Picture by Writer)

    Conclusion

    On this tutorial, we’ve efficiently carried out the snake recreation in Python. We’ve got used our understanding of Python fundamentals, equivalent to defining and calling capabilities, utilizing lists and tuples, utilizing for and whereas loops in addition to conditional statements. We’ve got additionally carried out our fundamental understanding of Object Oriented Programming to create objects from a module’s lessons. If in case you have any queries relating to any piece of code or a suggestion to make the code extra strong and environment friendly, be happy to remark and share your concepts. Till then, code, play, and problem your pals to the Snake Recreation you could have designed!



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Editor Times Featured
    • Website

    Related Posts

    How to Run OpenClaw with Open-Source Models

    April 22, 2026

    I Replaced GPT-4 with a Local SLM and My CI/CD Pipeline Stopped Failing

    April 22, 2026

    How to Call Rust from Python

    April 22, 2026

    Inside the AI Power Move That Could Redefine Finance

    April 22, 2026

    Git UNDO : How to Rewrite Git History with Confidence

    April 22, 2026

    DIY AI & ML: Solving The Multi-Armed Bandit Problem with Thompson Sampling

    April 21, 2026

    Comments are closed.

    Editors Picks

    Best Chromebooks (2026): Most Are Bad, but These Aren’t

    April 22, 2026

    Appeals court revives Comanche challenge to Oklahoma tribal casino lawsuit

    April 22, 2026

    Dinnerly Meal Kits Start at $6 a Serving. We Tested the Budget-Friendly Service in 2026

    April 22, 2026

    How to Run OpenClaw with Open-Source Models

    April 22, 2026
    Categories
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    About Us
    About Us

    Welcome to Times Featured, an AI-driven entrepreneurship growth engine that is transforming the future of work, bridging the digital divide and encouraging younger community inclusion in the 4th Industrial Revolution, and nurturing new market leaders.

    Empowering the growth of profiles, leaders, entrepreneurs businesses, and startups on international landscape.

    Asia-Middle East-Europe-North America-Australia-Africa

    Facebook LinkedIn WhatsApp
    Featured Picks

    ADHD brain stimulation device efficacy questioned by new study

    January 21, 2026

    The coolest new tech unveiled at CES 2026

    January 14, 2026

    Goparity acquires Spain’s Bolsa Social to expand equity crowdfunding and strengthen Iberian presence

    January 14, 2026
    Categories
    • Founders
    • Startups
    • Technology
    • Profiles
    • Entrepreneurs
    • Leaders
    • Students
    • VC Funds
    Copyright © 2024 Timesfeatured.com IP Limited. All Rights.
    • Privacy Policy
    • Disclaimer
    • Terms and Conditions
    • About us
    • Contact us

    Type above and press Enter to search. Press Esc to cancel.