Differences
This shows you the differences between the selected revisions of the page.
| 2025-05-29 | 2025-06-09 | ||
| Restored revision 1707995892. Undoing revision 1748453398. (martin) (hidden) | no summary (94.203.124.235) (hidden) (untrusted) | ||
| Line 2: | Line 2: | ||
| [[task_upload|Uploads]] one or more files from local directory to remote directory. | [[task_upload|Uploads]] one or more files from local directory to remote directory. | ||
| - | ===== Syntax ===== | + | import pygame |
| + | import time | ||
| + | import random | ||
| - | ··put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ] | + | # Initialize pygame |
| + | pygame.init() | ||
| + | |||
| + | # Colors | ||
| + | white = (255, 255, 255) | ||
| + | yellow = (255, 255, 102) | ||
| + | black = (0, 0, 0) | ||
| + | red = (213, 50, 80) | ||
| + | green = (0, 255, 0) | ||
| + | blue = (50, 153, 213) | ||
| + | |||
| + | # Display dimensions | ||
| + | width = 600 | ||
| + | height = 400 | ||
| + | |||
| + | # Create the display | ||
| + | win = pygame.display.set_mode((width, height)) | ||
| + | pygame.display.set_caption('Snake Game') | ||
| + | |||
| + | # Clock and font | ||
| + | clock = pygame.time.Clock() | ||
| + | snake_block = 10 | ||
| + | snake_speed = 15 | ||
| + | |||
| + | font_style = pygame.font.SysFont("bahnschrift", 25) | ||
| + | score_font = pygame.font.SysFont("comicsansms", 35) | ||
| + | |||
| + | |||
| + | def your_score(score): | ||
| + | value = score_font.render("Score: " + str(score), True, black) | ||
| + | win.blit(value, [0, 0]) | ||
| + | |||
| + | |||
| + | def draw_snake(snake_block, snake_list): | ||
| + | for x in snake_list: | ||
| + | pygame.draw.rect(win, green, [x[0], x[1], snake_block, snake_block]) | ||
| + | |||
| + | |||
| + | def message(msg, color): | ||
| + | mesg = font_style.render(msg, True, color) | ||
| + | win.blit(mesg, [width / 6, height / 3]) | ||
| + | |||
| + | |||
| + | def gameLoop(): | ||
| + | game_over = False | ||
| + | game_close = False | ||
| + | |||
| + | # Snake starting position | ||
| + | x1 = width / 2 | ||
| + | y1 = height / 2 | ||
| + | |||
| + | # Movement | ||
| + | x1_change = 0 | ||
| + | y1_change = 0 | ||
| + | |||
| + | # Snake body list | ||
| + | snake_List = [] | ||
| + | Length_of_snake = 1 | ||
| + | |||
| + | # Food | ||
| + | foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0 | ||
| + | foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0 | ||
| + | |||
| + | while not game_over: | ||
| + | |||
| + | while game_close: | ||
| + | win.fill(blue) | ||
| + | message("You lost! Press Q-Quit or C-Play Again", red) | ||
| + | your_score(Length_of_snake - 1) | ||
| + | pygame.display.update() | ||
| + | |||
| + | for event in pygame.event.get(): | ||
| + | if event.type == pygame.KEYDOWN: | ||
| + | if event.key == pygame.K_q: | ||
| + | game_over = True | ||
| + | game_close = False | ||
| + | if event.key == pygame.K_c: | ||
| + | gameLoop() | ||
| + | |||
| + | for event in pygame.event.get(): | ||
| + | if event.type == pygame.QUIT: | ||
| + | game_over = True | ||
| + | if event.type == pygame.KEYDOWN: | ||
| + | if event.key == pygame.K_LEFT and x1_change == 0: | ||
| + | x1_change = -snake_block | ||
| + | y1_change = 0 | ||
| + | elif event.key == pygame.K_RIGHT and x1_change == 0: | ||
| + | x1_change = snake_block | ||
| + | y1_change = 0 | ||
| + | elif event.key == pygame.K_UP and y1_change == 0: | ||
| + | y1_change = -snake_block | ||
| + | x1_change = 0 | ||
| + | elif event.key == pygame.K_DOWN and y1_change == 0: | ||
| + | y1_change = snake_block | ||
| + | x1_change = 0 | ||
| + | |||
| + | # Check boundaries | ||
| + | if x1 >= width or x1 < 0 or y1 >= height or y1 < 0: | ||
| + | game_close = True | ||
| + | |||
| + | # Move snake | ||
| + | x1 += x1_change | ||
| + | y1 += y1_change | ||
| + | win.fill(blue) | ||
| + | pygame.draw.rect(win, yellow, [foodx, foody, snake_block, snake_block]) | ||
| + | |||
| + | # Update snake list | ||
| + | snake_Head = [x1, y1] | ||
| + | snake_List.append(snake_Head) | ||
| + | if len(snake_List) > Length_of_snake: | ||
| + | del snake_List[0] | ||
| + | |||
| + | # Check collision with self | ||
| + | for x in snake_List[:-1]: | ||
| + | if x == snake_Head: | ||
| + | game_close = True | ||
| + | |||
| + | draw_snake(snake_block, snake_List) | ||
| + | your_score(Length_of_snake - 1) | ||
| + | |||
| + | pygame.display.update() | ||
| + | |||
| + | # Check if snake eats food | ||
| + | if x1 == foodx and y1 == foody: | ||
| + | foodx = round(random.randrange(0, width - snake_block) / 10.0) * 10.0 | ||
| + | foody = round(random.randrange(0, height - snake_block) / 10.0) * 10.0 | ||
| + | Length_of_snake += 1 | ||
| + | |||
| + | clock.tick(snake_speed) | ||
| + | |||
| + | pygame.quit() | ||
| + | quit() | ||
| + | |||
| + | |||
| + | # Run the game | ||
| + | gameLoop() | ||
| ===== [[remarks]] Remarks ===== | ===== [[remarks]] Remarks ===== | ||