在这个信息爆炸的时代,我们可能已经很少有机会去回忆那些简单却充满乐趣的岁月。今天,让我们一起回顾那些年我们一起在电脑上玩过的经典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游戏吧!
