在这个信息爆炸的时代,我们可能已经很少有机会去回忆那些简单却充满乐趣的岁月。今天,让我们一起回顾那些年我们一起在电脑上玩过的经典CMD游戏,那些伴随着我们成长的美好回忆。

1. 小游戏——猜数字

猜数字是一个简单却让人乐在其中的游戏。游戏规则非常简单:程序会随机生成一个数字,玩家需要猜测这个数字是多少。每猜一次,程序会告诉你猜高了还是猜低了。直到猜中为止。

import random

def guess_number():
    number = random.randint(1, 100)
    guess = -1
    while guess != number:
        guess = int(input("猜一个1到100之间的数字:"))
        if guess < number:
            print("太低了!")
        elif guess > number:
            print("太高了!")
        else:
            print("恭喜你,猜对了!")

guess_number()

2. 拼图游戏——扫雷

扫雷是一款考验玩家智慧和反应能力的游戏。游戏规则也很简单:在一个由若干个格子组成的棋盘上,有些格子下面埋着地雷,玩家需要通过点击格子来找出所有的安全格子,同时避免点击到地雷。

import random

def mine_sweeper():
    size = 5
    mine_positions = [(i, j) for i in range(size) for j in range(size) if random.random() < 0.2]
    board = [[' ' for _ in range(size)] for _ in range(size)]
    for i, j in mine_positions:
        for x, y in [(i-1, j-1), (i-1, j), (i-1, j+1), (i, j-1), (i, j+1), (i+1, j-1), (i+1, j), (i+1, j+1)]:
            if 0 <= x < size and 0 <= y < size:
                board[x][y] += 1

    while True:
        x, y = map(int, input("请输入你要点击的格子坐标(x y):").split())
        if (x, y) in mine_positions:
            print("游戏结束,你踩到地雷了!")
            break
        else:
            board[x][y] = 'X'
            for i in range(size):
                for j in range(size):
                    if board[i][j] == 'X' and sum(board[i][j-1:j+2] + board[i-1:i+2][j]) == 8:
                        board[i][j] = '8'
            print('\n'.join(' '.join(row) for row in board))
            if all(board[i][j] != ' ' for i in range(size) for j in range(size)):
                print("恭喜你,你赢了!")

mine_sweeper()

3. 贪吃蛇

贪吃蛇是一款经典的益智游戏。游戏规则也很简单:玩家控制一条蛇,在游戏中吃掉食物,同时避免撞到墙壁或自己的身体。

import random
import curses

def snake_game():
    screen = curses.initscr()
    curses.curs_set(0)
    sh, sw = screen.getmaxyx()
    w = curses.newwin(sh, sw, 0, 0)
    w.keypad(1)
    w.timeout(100)

    snk_x = sw//4
    snk_y = sh//2
    snake = [
        [snk_y, snk_x],
        [snk_y, snk_x-1],
        [snk_y, snk_x-2]
    ]

    food = [sh//2, sw//2]
    w.addch(int(food[0]), int(food[1]), curses.ACS_PI)

    key = curses.KEY_RIGHT

    while True:
        next_key = w.getch()
        key = key if next_key == -1 else next_key

        if snake[0][0] in [0, sh] or \
           snake[0][1]  in [0, sw] or \
           snake[0] in snake[1:]:
            curses.endwin()
            quit()

        new_head = [snake[0][0], snake[0][1]]

        if key == curses.KEY_DOWN:
            new_head[0] += 1
        if key == curses.KEY_UP:
            new_head[0] -= 1
        if key == curses.KEY_LEFT:
            new_head[1] -= 1
        if key == curses.KEY_RIGHT:
            new_head[1] += 1

        snake.insert(0, new_head)

        if snake[0] == food:
            food = None
            while food is None:
                nf = [
                    random.randint(1, sh-1),
                    random.randint(1, sw-1)
                ]
                food = nf if nf not in snake else None
            w.addch(food[0], food[1], curses.ACS_PI)
        else:
            tail = snake.pop()
            w.addch(int(tail[0]), int(tail[1]), ' ')

        w.addch(int(snake[0][0]), int(snake[0][1]), curses.ACS_CKBOARD)

snake_game()

4. 飞行射击游戏——太空侵略者

太空侵略者是一款经典的射击游戏。游戏规则很简单:玩家控制一艘太空船,在游戏中躲避敌人和射击敌人。

import pygame
import random

pygame.init()

screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("太空侵略者")

player = pygame.Rect(screen_width//2, screen_height-50, 50, 50)
player_speed = 5

bullets = []
bullet_speed = 10

aliens = []
alien_speed = 2
alien_spawn_time = 1000

alien_bullet = []
alien_bullet_speed = 2

font = pygame.font.Font(None, 36)

def create_alien():
    alien = pygame.Rect(random.randrange(0, screen_width-50), random.randrange(-100, -50), 50, 50)
    aliens.append(alien)

def draw():
    screen.fill((0, 0, 0))
    for alien in aliens:
        screen.blit(alien_image, alien)
    screen.blit(player_image, player)
    for bullet in bullets:
        screen.blit(bullet_image, bullet)
    for alien_bullet in alien_bullet:
        screen.blit(alien_bullet_image, alien_bullet)
    pygame.display.flip()

def check_collisions():
    global alien_spawn_time
    for bullet in bullets:
        for alien in aliens:
            if bullet.colliderect(alien):
                aliens.remove(alien)
                bullets.remove(bullet)
                return
    for alien_bullet in alien_bullet:
        if player.colliderect(alien_bullet):
            pygame.quit()
            quit()

def spawn_alien():
    global alien_spawn_time
    if random.randrange(alien_spawn_time) == 0:
        create_alien()
        alien_spawn_time = 1000

clock = pygame.time.Clock()

alien_image = pygame.Surface((50, 50))
alien_image.fill((255, 0, 0))

player_image = pygame.Surface((50, 50))
player_image.fill((0, 255, 0))

bullet_image = pygame.Surface((5, 10))
bullet_image.fill((0, 0, 255))

alien_bullet_image = pygame.Surface((5, 10))
alien_bullet_image.fill((255, 255, 0))

alien_spawn_time = 1000

while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            quit()
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                player.x -= player_speed
            if event.key == pygame.K_RIGHT:
                player.x += player_speed
            if event.key == pygame.K_UP:
                player.y -= player_speed
            if event.key == pygame.K_DOWN:
                player.y += player_speed
            if event.key == pygame.K_SPACE:
                bullets.append(pygame.Rect(player.x + 20, player.y, 5, 10))

    bullets = [bullet for bullet in bullets if bullet.y > 0]
    alien_bullet = [alien_bullet for alien_bullet in alien_bullet if alien_bullet.y < screen_height]

    for alien in aliens:
        alien.y += alien_speed
        if alien.y > screen_height:
            aliens.remove(alien)

    for alien_bullet in alien_bullet:
        alien_bullet.y += alien_bullet_speed

    check_collisions()
    spawn_alien()
    draw()
    clock.tick(60)

pygame.quit()

这些游戏虽然简单,但却承载着我们的青春回忆。让我们一起怀念那些年我们一起玩过的经典CMD游戏吧!