Easy Games in Python
Today we’re going to learn how to code some easy games in Python using a few common Python modules.
Why are we using Python?
Python is a well-known programming language. Python is very easy to understand and code. It is believed to be developer-friendly. Any beginner can learn to code in python within a short span of time.
Some of most interesting features of this language are as follows :
- Python is open source and free
- Portable and dynamic
- Super easy to understand etc.
Creating Easy Games in Python
Let’s now implement some easy games in Python that you can build as a beginner to get a headstart in your learning curve!
1. A Quiz Game in Python
This is a very simple text-based game in python. It a small quiz which you can make for yourself as well or your friends. We do not need to import any modules for this game which makes it easier! Try it yourself 😉
print('Welcome to AskPython Quiz') answer=input('Are you ready to play the Quiz ? (yes/no) :') score=0 total_questions=3 if answer.lower()=='yes': answer=input('Question 1: What is your Favourite programming language?') if answer.lower()=='python': score += 1 print('correct') else: print('Wrong Answer :(') answer=input('Question 2: Do you follow any author on AskPython? ') if answer.lower()=='yes': score += 1 print('correct') else: print('Wrong Answer :(') answer=input('Question 3: What is the name of your favourite website for learning Python?') if answer.lower()=='askpython': score += 1 print('correct') else: print('Wrong Answer :(') print('Thankyou for Playing this small quiz game, you attempted',score,"questions correctly!") mark=(score/total_questions)*100 print('Marks obtained:',mark) print('BYE!')
Welcome to AskPython Quiz Are you ready to play the Quiz ? (yes/no) :yes Question 1: What is your Favourite programming language?python correct Question 2: Do you follow any author on AskPython? yes correct Question 3: What is the name of your favourite website for learning Python?askpython correct Thankyou for Playing this small quiz game, you attempted 3 questions correctly! Marks obtained: 100.0 BYE!
2. Pong Game in Python
Most of us have heard about the famous pong game. Many of us love playing it. Today lets learn how to code this classic game using the python programming language!
Before starting with the coding part we first need to install the turtle module. The turtle module is a Python library that enables users to create pictures and shapes by providing them with a virtual canvas.
If you don’t already have it, you can install the library using pip.
C:\Users\Admin>pip install turtle
Read more about the turtle library in their official documentation.
import turtle as t playerAscore=0 playerBscore=0 #create a window and declare a variable called window and call the screen() window=t.Screen() window.title("The Pong Game") window.bgcolor("green") window.setup(width=800,height=600) window.tracer(0) #Creating the left paddle leftpaddle=t.Turtle() leftpaddle.speed(0) leftpaddle.shape("square") leftpaddle.color("white") leftpaddle.shapesize(stretch_wid=5,stretch_len=1) leftpaddle.penup() leftpaddle.goto(-350,0) #Creating the right paddle rightpaddle=t.Turtle() rightpaddle.speed(0) rightpaddle.shape("square") rightpaddle.color("white") rightpaddle.shapesize(stretch_wid=5,stretch_len=1) rightpaddle.penup() rightpaddle.goto(-350,0) #Code for creating the ball ball=t.Turtle() ball.speed(0) ball.shape("circle") ball.color("red") ball.penup() ball.goto(5,5) ballxdirection=0.2 ballydirection=0.2 #Code for creating pen for scorecard update pen=t.Turtle() pen.speed(0) pen.color("Blue") pen.penup() pen.hideturtle() pen.goto(0,260) pen.write("score",align="center",font=('Arial',24,'normal')) #code for moving the leftpaddle def leftpaddleup(): y=leftpaddle.ycor() y=y+90 leftpaddle.sety(y) def leftpaddledown(): y=leftpaddle.ycor() y=y+90 leftpaddle.sety(y) #code for moving the rightpaddle def rightpaddleup(): y=rightpaddle.ycor() y=y+90 rightpaddle.sety(y) def rightpaddledown(): y=rightpaddle.ycor() y=y+90 rightpaddle.sety(y) #Assign keys to play window.listen() window.onkeypress(leftpaddleup,'w') window.onkeypress(leftpaddledown,'s') window.onkeypress(rightpaddleup,'Up') window.onkeypress(rightpaddledown,'Down') while True: window.update() #moving the ball ball.setx(ball.xcor()+ballxdirection) ball.sety(ball.ycor()+ballxdirection) #border set up if ball.ycor()>290: ball.sety(290) ballydirection=ballydirection*-1 if ball.ycor() 390: ball.goto(0,0) ball_dx = ball_dx * -1 player_a_score = player_a_score + 1 pen.clear() pen.write("Player A: <> Player B: <> ".format(player_a_score,player_b_score),align="center",font=('Monaco',24,"normal")) os.system("afplay wallhit.wav&") if(ball.xcor()) < -390: # Left width paddle Border ball.goto(0,0) ball_dx = ball_dx * -1 player_b_score = player_b_score + 1 pen.clear() pen.write("Player A: <>Player B: <> ".format(player_a_score,player_b_score),align="center",font=('Monaco',24,"normal")) os.system("afplay wallhit.wav&") # Handling the collisions with paddles. if(ball.xcor() > 340) and (ball.xcor() < 350) and (ball.ycor() < rightpaddle.ycor() + 40 and ball.ycor() >rightpaddle.ycor() - 40): ball.setx(340) ball_dx = ball_dx * -1 os.system("afplay paddle.wav&") if(ball.xcor() < -340) and (ball.xcor() >-350) and (ball.ycor() < leftpaddle.ycor() + 40 and ball.ycor() >leftpaddle.ycor() - 40): ball.setx(-340) ball_dx = ball_dx * -1 os.system("afplay paddle.wav&")
3. Hungry Snake Game in Python
This was most of our favorite game when we were kids. We can actually code this game in python by importing just two modules! How cool is that!
Firstly, we need to install turtle. If you don’t have it already installed, open your cmd and type in the following command.
C:\Users\Admin>pip install turtle
Now we will install the random module. The random module is used to generate random numbers. In your cmd type in the following command.
C:\Users\Admin>pip install random2
Code and Try it yourself and enjoy the game!
import turtle import random w = 500 h = 500 food_size = 10 delay = 100 offsets = < "up": (0, 20), "down": (0, -20), "left": (-20, 0), "right": (20, 0) >def reset(): global snake, snake_dir, food_position, pen snake = [[0, 0], [0, 20], [0, 40], [0, 60], [0, 80]] snake_dir = "up" food_position = get_random_food_position() food.goto(food_position) move_snake() def move_snake(): global snake_dir new_head = snake[-1].copy() new_head[0] = snake[-1][0] + offsets[snake_dir][0] new_head[1] = snake[-1][1] + offsets[snake_dir][1] if new_head in snake[:-1]: reset() else: snake.append(new_head) if not food_collision(): snake.pop(0) if snake[-1][0] > w / 2: snake[-1][0] -= w elif snake[-1][0] < - w / 2: snake[-1][0] += w elif snake[-1][1] >h / 2: snake[-1][1] -= h elif snake[-1][1] < -h / 2: snake[-1][1] += h pen.clearstamps() for segment in snake: pen.goto(segment[0], segment[1]) pen.stamp() screen.update() turtle.ontimer(move_snake, delay) def food_collision(): global food_position if get_distance(snake[-1], food_position) < 20: food_position = get_random_food_position() food.goto(food_position) return True return False def get_random_food_position(): x = random.randint(- w / 2 + food_size, w / 2 - food_size) y = random.randint(- h / 2 + food_size, h / 2 - food_size) return (x, y) def get_distance(pos1, pos2): x1, y1 = pos1 x2, y2 = pos2 distance = ((y2 - y1) ** 2 + (x2 - x1) ** 2) ** 0.5 return distance def go_up(): global snake_dir if snake_dir != "down": snake_dir = "up" def go_right(): global snake_dir if snake_dir != "left": snake_dir = "right" def go_down(): global snake_dir if snake_dir!= "up": snake_dir = "down" def go_left(): global snake_dir if snake_dir != "right": snake_dir = "left" screen = turtle.Screen() screen.setup(w, h) screen.title("Snake") screen.bgcolor("blue") screen.setup(500, 500) screen.tracer(0) pen = turtle.Turtle("square") pen.penup() food = turtle.Turtle() food.shape("square") food.color("yellow") food.shapesize(food_size / 20) food.penup() screen.listen() screen.onkey(go_up, "Up") screen.onkey(go_right, "Right") screen.onkey(go_down, "Down") screen.onkey(go_left, "Left") reset() turtle.done()
Conclusion
And that’s it! These are some of the easy games in Python that you can create as a beginner and have some fun! We loved building these projects and we hope you do too!
Python Game projects with source code
If you follow the link to the main project page, you’ll find an entire tutorial on that game with step by step explanations, images, videos and a download link for the source code and materials used in the project.
1# Side Scrolling Car Game
This is a simple side scroller game involving cars. It’s like one of those old fashioned games where you’re moving a character sideways to avoid the incoming obstacles. Another version of this you’ll see commonly is a space game where you’re moving a space ship sideways and dodging incoming boulders.
Included Concepts
- Collision Detection
- Player movement (in all 4 directions)
- Enemy spawning
- Increasing Enemy difficulty as time passes
- Creating a Score counter
Follow the link to the full tutorial and source code!
2# Platformer Game
A fully fledged game, complete with advanced concepts and features. The tutorial series for this game is considered to be at the “intermediate” level.
Chances are you’ve played a platformer game before. It’s a simple game where you keep moving your character upwards by jumping on the available platforms. If you miss a platform and fall to your doom, it’s game over. You earn a point for every platform you cross. See how high a score you can get!
Included Concepts
- Advanced Collision Detection
- Player movement (realistic sideways movement)
- Jump mechanics
- Gravity and Friction
- Random Level Generation
- Warpable screen movement
- Scrolling the screen (creating an infinite height)
- Creating a Score counter
Follow the link to the full tutorial and source code!
3# Dungeon Game
The most advanced and complex game we’ve built here on our site, an RPG Fighter game. As you can guess, it’s recommended for those who already have some prior experience in pygame.
The tutorials should be easy enough to follow since each concept is given it’s own dedicated tutorial. The entire game currently has about a dozen tutorials, with more planned for the future.
The game has a rather simple concept. You control your character and a travel through dungeons in order to battle your enemies and clear the stages by defeating all the existing enemies. The number of available dungeons and number of stages per dungeon are all easily controllable.
As you progress through the game, you will gain experience which you can use to level your character up. You will also gain mana from killing enemies which you can use to activate special attacks like magic fireballs and invulnerability. All of your progress is auto-saved and can be reloaded at any time.
Included Concepts
- Advanced Collision Detection
- Running Animations
- Attacking Animations
- Random Enemy Generation
- Creating Different Stages and Dungeons
- Load and Save features
- Log File
- Creating Special Attacks and Moves
- Player Experience and leveling
- FPS counter
- Status Bar
Follow the link to the full tutorial and source code!
If you have a pygame game project that you think is worth sharing, contact us at [email protected]. If it meets all our requirements, we’ll add it here along with your contributor name.
This marks the end of the Python game projects with source code article. Any suggestions or contributions for Coderslegacy are more than welcome. Questions regarding the article content can be asked in the comments section below.
Follow us