Created
October 25, 2025 05:08
-
-
Save vtu27619/13871b8935ec404500ae21248de1bf11 to your computer and use it in GitHub Desktop.
Likitha
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Task12a | |
| # importing libraries | |
| import pygame | |
| import time | |
| import random | |
| snake_speed = 15 | |
| # Window size | |
| window_x = 720 | |
| window_y = 480 | |
| # defining colors | |
| black = pygame.Color(0, 0, 0) | |
| white = pygame.Color(255, 255, 255) | |
| red = pygame.Color(255, 0, 0) | |
| green = pygame.Color(0, 255, 0) | |
| blue = pygame.Color(0, 0, 255) | |
| # Initialising pygame | |
| pygame.init() | |
| # Initialise game window | |
| pygame.display.set_caption('GeeksforGeeks Snakes') | |
| game_window = pygame.display.set_mode((window_x, window_y)) | |
| # FPS (frames per second) controller | |
| fps = pygame.time.Clock() | |
| # defining snake default position | |
| snake_position = [100, 50] | |
| # defining first 4 blocks of snake body | |
| snake_body = [[100, 50], | |
| [90, 50], | |
| [80, 50], | |
| [70, 50] | |
| ] | |
| # fruit position | |
| fruit_position = [random.randrange(1, (window_x//10)) * 10, | |
| random.randrange(1, (window_y//10)) * 10] | |
| fruit_spawn = True | |
| # setting default snake direction towards | |
| # right | |
| direction = 'RIGHT' | |
| change_to = direction | |
| # initial score | |
| score = 0 | |
| # displaying Score function | |
| def show_score(choice, color, font, size): | |
| # creating font object score_font | |
| score_font = pygame.font.SysFont(font, size) | |
| # create the display surface object | |
| # score_surface | |
| score_surface = score_font.render('Score : ' + str(score), True, color) | |
| # create a rectangular object for the text | |
| # surface object | |
| score_rect = score_surface.get_rect() | |
| # displaying text | |
| game_window.blit(score_surface, score_rect) | |
| # game over function | |
| def game_over(): | |
| # creating font object my_font | |
| my_font = pygame.font.SysFont('times new roman', 50) | |
| # creating a text surface on which text | |
| # will be drawn | |
| game_over_surface = my_font.render( | |
| 'Your Score is : ' + str(score), True, red) | |
| # create a rectangular object for the text | |
| # surface object | |
| game_over_rect = game_over_surface.get_rect() | |
| # setting position of the text | |
| game_over_rect.midtop = (window_x/2, window_y/4) | |
| # blit will draw the text on screen | |
| game_window.blit(game_over_surface, game_over_rect) | |
| pygame.display.flip() | |
| # after 2 seconds we will quit the program | |
| time.sleep(2) | |
| # deactivating pygame library | |
| pygame.quit() | |
| # quit the program | |
| quit() | |
| # Main Function | |
| while True: | |
| # handling key events | |
| for event in pygame.event.get(): | |
| if event.type == pygame.KEYDOWN: | |
| if event.key == pygame.K_UP: | |
| change_to = 'UP' | |
| if event.key == pygame.K_DOWN: | |
| change_to = 'DOWN' | |
| if event.key == pygame.K_LEFT: | |
| change_to = 'LEFT' | |
| if event.key == pygame.K_RIGHT: | |
| change_to = 'RIGHT' | |
| # If two keys pressed simultaneously | |
| # we don't want snake to move into two | |
| # directions simultaneously | |
| if change_to == 'UP' and direction != 'DOWN': | |
| direction = 'UP' | |
| if change_to == 'DOWN' and direction != 'UP': | |
| direction = 'DOWN' | |
| if change_to == 'LEFT' and direction != 'RIGHT': | |
| direction = 'LEFT' | |
| if change_to == 'RIGHT' and direction != 'LEFT': | |
| direction = 'RIGHT' | |
| # Moving the snake | |
| if direction == 'UP': | |
| snake_position[1] -= 10 | |
| if direction == 'DOWN': | |
| snake_position[1] += 10 | |
| if direction == 'LEFT': | |
| snake_position[0] -= 10 | |
| if direction == 'RIGHT': | |
| snake_position[0] += 10 | |
| # Snake body growing mechanism | |
| # if fruits and snakes collide then scores | |
| # will be incremented by 10 | |
| snake_body.insert(0, list(snake_position)) | |
| if snake_position[0] == fruit_position[0] and snake_position[1] == fruit_position[1]: | |
| score += 10 | |
| fruit_spawn = False | |
| else: | |
| snake_body.pop() | |
| if not fruit_spawn: | |
| fruit_position = [random.randrange(1, (window_x//10)) * 10, | |
| random.randrange(1, (window_y//10)) * 10] | |
| fruit_spawn = True | |
| game_window.fill(black) | |
| for pos in snake_body: | |
| pygame.draw.rect(game_window, green, | |
| pygame.Rect(pos[0], pos[1], 10, 10)) | |
| pygame.draw.rect(game_window, white, pygame.Rect( | |
| fruit_position[0], fruit_position[1], 10, 10)) | |
| # Game Over conditions | |
| if snake_position[0] < 0 or snake_position[0] > window_x-10: | |
| game_over() | |
| if snake_position[1] < 0 or snake_position[1] > window_y-10: | |
| game_over() | |
| # Touching the snake body | |
| for block in snake_body[1:]: | |
| if snake_position[0] == block[0] and snake_position[1] == block[1]: | |
| game_over() | |
| # displaying score continuously | |
| show_score(1, white, 'times new roman', 20) | |
| # Refresh game screen | |
| pygame.display.update() | |
| # Frame Per Second /Refresh Rate | |
| fps.tick(snake_speed) | |
| Task12b | |
| import pygame | |
| # Initialize pygame | |
| pygame.init() | |
| # Set screen size and title | |
| screen_size = (640, 640) | |
| screen = pygame.display.set_mode(screen_size) | |
| pygame.display.set_caption('Chess Board') | |
| # Define colors | |
| black = (0, 0, 0) | |
| white = (255, 255, 255) | |
| brown = (153, 76, 0) | |
| # Define function to draw the board | |
| def draw_board(): | |
| for row in range(8): | |
| for col in range(8): | |
| square_color = white if (row + col) % 2 == 0 else brown | |
| square_rect = pygame.Rect(col * 80, row * 80, 80, 80) | |
| pygame.draw.rect(screen, square_color, square_rect) | |
| # Define function to draw the pieces | |
| def draw_pieces(board): | |
| SQUARE_SIZE = 80 # or whatever your square size is | |
| piece_images = { | |
| 'p': pygame.transform.scale(pygame.image.load('E:/SUMMER 25_26/PYTHON/lab/New folder/pawn.png'), (SQUARE_SIZE, SQUARE_SIZE)), | |
| 'r': pygame.transform.scale(pygame.image.load('E:/SUMMER 25_26/PYTHON/lab/New folder/rook.jpg'), (SQUARE_SIZE, SQUARE_SIZE)), | |
| 'n': pygame.transform.scale(pygame.image.load('E:/SUMMER 25_26/PYTHON/lab/New folder/knight.png'), (SQUARE_SIZE, SQUARE_SIZE)), | |
| 'b': pygame.transform.scale(pygame.image.load('E:/SUMMER 25_26/PYTHON/lab/New folder/bishop.png'), (SQUARE_SIZE, SQUARE_SIZE)), | |
| 'q': pygame.transform.scale(pygame.image.load('E:/SUMMER 25_26/PYTHON/lab/New folder/queen.png'), (SQUARE_SIZE, SQUARE_SIZE)), | |
| 'k': pygame.transform.scale(pygame.image.load('E:/SUMMER 25_26/PYTHON/lab/New folder/king.png'), (SQUARE_SIZE, SQUARE_SIZE)) | |
| } | |
| for row in range(8): | |
| for col in range(8): | |
| piece = board[row][col] | |
| if piece != '.': | |
| piece_image = piece_images[piece] | |
| piece_rect = pygame.Rect(col * 80, row * 80, 80, 80) | |
| screen.blit(piece_image, piece_rect) | |
| # Define initial state of the board | |
| board = [ | |
| ['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r'], | |
| ['p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'], | |
| ['.', '.', '.', '.', '.', '.', '.', '.'], | |
| ['.', '.', '.', '.', '.', '.', '.', '.'], | |
| ['.', '.', '.', '.', '.', '.', '.', '.'], | |
| ['.', '.', '.', '.', '.', '.', '.', '.'], | |
| ['p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'], | |
| ['r', 'n', 'b', 'q', 'k', 'b', 'n', 'r'] | |
| ] | |
| # Draw board and pieces | |
| draw_board() | |
| draw_pieces(board) | |
| # Start game loop | |
| while True: | |
| for event in pygame.event.get(): | |
| if event.type == pygame.QUIT: | |
| pygame.quit() | |
| quit() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment