Skip to content
113 changes: 113 additions & 0 deletions Python/Car-Racing.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
import pygame
import random
import sys

# Initialize pygame
pygame.init()

# Screen dimensions
WIDTH, HEIGHT = 500, 700
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("🏎️ Top-Down Car Racing")

# Clock for controlling FPS
clock = pygame.time.Clock()
FPS = 60

# Colors
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (200, 0, 0)
GREEN = (0, 200, 0)

# Load player car image
PLAYER_CAR = pygame.Surface((50, 100))
PLAYER_CAR.fill(GREEN)

# Load enemy car image
ENEMY_CAR = pygame.Surface((50, 100))
ENEMY_CAR.fill(RED)

# Player car position
player_x = WIDTH // 2 - 25
player_y = HEIGHT - 120
player_speed = 5

# Enemy cars
enemy_speed = 5
enemy_list = []

def add_enemy():
x_pos = random.randint(50, WIDTH - 100)
y_pos = -100
enemy_list.append([x_pos, y_pos])

def draw_enemies():
for enemy in enemy_list:
screen.blit(ENEMY_CAR, (enemy[0], enemy[1]))

def move_enemies():
global enemy_list
for enemy in enemy_list:
enemy[1] += enemy_speed
# Remove enemies that have left the screen
enemy_list = [enemy for enemy in enemy_list if enemy[1] < HEIGHT]

def check_collision():
for enemy in enemy_list:
if (player_y < enemy[1] + 100 and player_y + 100 > enemy[1]) and \
(player_x < enemy[0] + 50 and player_x + 50 > enemy[0]):
return True
return False

# Score
score = 0
font = pygame.font.SysFont(None, 40)

def show_score():
text = font.render(f"Score: {score}", True, WHITE)
screen.blit(text, (10, 10))

# Main game loop
running = True
enemy_timer = 0 # Timer to add new enemies

while running:
screen.fill(BLACK)

for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

# Key presses
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT] and player_x > 0:
player_x -= player_speed
if keys[pygame.K_RIGHT] and player_x < WIDTH - 50:
player_x += player_speed

# Enemy logic
enemy_timer += 1
if enemy_timer > 50: # add new enemy every ~50 frames
add_enemy()
enemy_timer = 0

move_enemies()
draw_enemies()

# Draw player
screen.blit(PLAYER_CAR, (player_x, player_y))

# Collision check
if check_collision():
print("💥 Game Over! Your score:", score)
pygame.quit()
sys.exit()

# Update score
score += 1
show_score()

pygame.display.update()
clock.tick(FPS)
120 changes: 120 additions & 0 deletions Python/Flappy-Bird.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
import pygame
import random
import sys

# Initialize pygame
pygame.init()

# Screen dimensions
WIDTH, HEIGHT = 400, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("🐤 Flappy Bird Clone")

# Colors
WHITE = (255, 255, 255)
BLUE = (135, 206, 235)
GREEN = (0, 200, 0)
YELLOW = (255, 255, 0)

# Clock for FPS
clock = pygame.time.Clock()
FPS = 60

# Game variables
gravity = 0.5
bird_movement = 0
game_active = True
score = 0

# Bird setup
bird = pygame.Rect(100, HEIGHT // 2, 34, 24)

# Pipe setup
pipe_width = 70
pipe_height = random.randint(150, 400)
pipe_gap = 150
pipe_list = []

SPAWNPIPE = pygame.USEREVENT
pygame.time.set_timer(SPAWNPIPE, 1200)

# Fonts
font = pygame.font.SysFont(None, 50)

def draw_bird():
pygame.draw.ellipse(screen, YELLOW, bird)

def create_pipe():
random_pipe_pos = random.randint(150, 400)
bottom_pipe = pygame.Rect(WIDTH, random_pipe_pos, pipe_width, HEIGHT - random_pipe_pos)
top_pipe = pygame.Rect(WIDTH, random_pipe_pos - pipe_gap - pipe_height, pipe_width, pipe_height)
return bottom_pipe, top_pipe

def move_pipes(pipes):
for pipe in pipes:
pipe.centerx -= 4
return [pipe for pipe in pipes if pipe.right > 0]

def draw_pipes(pipes):
for pipe in pipes:
pygame.draw.rect(screen, GREEN, pipe)

def check_collision(pipes):
for pipe in pipes:
if bird.colliderect(pipe):
return False
if bird.top <= 0 or bird.bottom >= HEIGHT:
return False
return True

def show_score(current_score):
score_surface = font.render(f"Score: {current_score}", True, WHITE)
screen.blit(score_surface, (10, 10))

# Game Loop
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_SPACE and game_active:
bird_movement = 0
bird_movement -= 8 # Bird jumps
if event.key == pygame.K_SPACE and not game_active:
game_active = True
pipe_list.clear()
bird.center = (100, HEIGHT // 2)
bird_movement = 0
score = 0
if event.type == SPAWNPIPE:
pipe_list.extend(create_pipe())

screen.fill(BLUE)

if game_active:
# Bird
bird_movement += gravity
bird.centery += bird_movement
draw_bird()

# Pipes
pipe_list = move_pipes(pipe_list)
draw_pipes(pipe_list)

# Collision
game_active = check_collision(pipe_list)

# Score (increases when pipes move past bird)
for pipe in pipe_list:
if pipe.centerx == bird.centerx:
score += 0.5
show_score(int(score))
else:
game_over_text = font.render("💥 Game Over!", True, WHITE)
restart_text = font.render("Press SPACE to Restart", True, WHITE)
screen.blit(game_over_text, (80, 250))
screen.blit(restart_text, (30, 300))

pygame.display.update()
clock.tick(FPS)
45 changes: 45 additions & 0 deletions Python/Hangman-Python/Hangman.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import random

# List of words for the game
words = ["python", "developer", "hangman", "programming", "computer", "artificial", "intelligence", "keyboard", "science"]

# Choose a random word
word = random.choice(words)
word_letters = set(word) # unique letters in the word
alphabet = set("abcdefghijklmnopqrstuvwxyz")
used_letters = set() # letters guessed by the user

lives = 6 # total number of wrong guesses allowed

print("🎮 Welcome to Hangman!")
print("Guess the word, one letter at a time.")

while len(word_letters) > 0 and lives > 0:
# show current progress
print("\nYou have", lives, "lives left and you have used these letters: ", " ".join(sorted(used_letters)))

# show the word with guessed letters and underscores
word_display = [letter if letter in used_letters else "_" for letter in word]
print("Current word: ", " ".join(word_display))

# get user input
user_letter = input("Guess a letter: ").lower()

if user_letter in alphabet - used_letters:
used_letters.add(user_letter)
if user_letter in word_letters:
word_letters.remove(user_letter)
print("✅ Good guess!")
else:
lives -= 1
print("❌ Wrong guess! You lost a life.")
elif user_letter in used_letters:
print("⚠️ You already used that letter. Try again.")
else:
print("🚫 Invalid character. Please enter an alphabet letter.")

# end of game messages
if lives == 0:
print("\n💀 You died! The word was:", word)
else:
print("\n🎉 Congratulations! You guessed the word:", word)
12 changes: 12 additions & 0 deletions Python/Hangman-Python/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Hangman Game

## Game Details
- **Language:** Python
- **Description:** Hangman is a classic word-guessing game. The computer selects a secret word and the player tries to guess it one letter at a time. Each incorrect guess reduces the player's remaining
lives. The player wins by guessing all letters of the secret word before running out of lives.

## How to Run
1. Make sure Python 3.x is installed.
2. Open a terminal and navigate to the folder:
```bash
cd Python/Hangman-Python
45 changes: 45 additions & 0 deletions Python/Hangman/Hangman.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import random

# List of words for the game
words = ["python", "developer", "hangman", "programming", "computer", "artificial", "intelligence", "keyboard", "science"]

# Choose a random word
word = random.choice(words)
word_letters = set(word) # unique letters in the word
alphabet = set("abcdefghijklmnopqrstuvwxyz")
used_letters = set() # letters guessed by the user

lives = 6 # total number of wrong guesses allowed

print("🎮 Welcome to Hangman!")
print("Guess the word, one letter at a time.")

while len(word_letters) > 0 and lives > 0:
# show current progress
print("\nYou have", lives, "lives left and you have used these letters: ", " ".join(sorted(used_letters)))

# show the word with guessed letters and underscores
word_display = [letter if letter in used_letters else "_" for letter in word]
print("Current word: ", " ".join(word_display))

# get user input
user_letter = input("Guess a letter: ").lower()

if user_letter in alphabet - used_letters:
used_letters.add(user_letter)
if user_letter in word_letters:
word_letters.remove(user_letter)
print("✅ Good guess!")
else:
lives -= 1
print("❌ Wrong guess! You lost a life.")
elif user_letter in used_letters:
print("⚠️ You already used that letter. Try again.")
else:
print("🚫 Invalid character. Please enter an alphabet letter.")

# end of game messages
if lives == 0:
print("\n💀 You died! The word was:", word)
else:
print("\n🎉 Congratulations! You guessed the word:", word)
11 changes: 11 additions & 0 deletions Python/Hangman/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Hangman Game

## Game Details
- **Language:** Python
- **Description:** Hangman is a classic word-guessing game where the computer randomly selects a secret word, and the player tries to guess it one letter at a time.

## How to Run
1. Make sure Python 3.x is installed.
2. Open a terminal and navigate to the folder:
```bash
cd Python/Hangman
Loading