You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pxpimous2 2343785564
Update README.md
3 years ago
README.md Update README.md 3 years ago

README.md

123

import pygame import random import pymysql

单重循环

for i in range(1, 21): print(i)

双重循环

for i in range(1, 6): for j in range(1, 6): print(i, "", j, "=", ij)

面向对象方法

class Plane: def init(self, x, y, speed=5): self.x = x self.y = y self.speed = speed

def move(self):
    self.x += self.speed

def fire(self):
    bullet = Bullet(self.x, self.y)

class Bullet: def init(self, x, y, speed=10): self.x = x self.y = y self.speed = speed

def move(self):
    self.y -= self.speed
def hit(self, enemy):
    if self.x > enemy.x and self.x < enemy.x+50 and self.y > enemy.y and self.y < enemy.y+50:
        return True
    else:
        return False

函数

def create_enemies(): enemies = [] for i in range(6): x = random.randint(0, 400) y = random.randint(0, 200) enemy = Enemy(x, y) enemies.append(enemy) return enemies def check_collision(enemies, bullets): for enemy in enemies: for bullet in bullets: if bullet.hit(enemy): enemies.remove(enemy) bullets.remove(bullet) score += 1 return score

数据库操作

def connect_db(): conn = pymysql.connect(host='localhost', user='root', password='123456', database='game') cursor = conn.cursor() return conn, cursor

def create_table(cursor): cursor.execute('CREATE TABLE IF NOT EXISTS players (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), score INT)')

def insert_player(cursor, name, score): sql = 'INSERT INTO players (name, score) VALUES (%s, %s)' cursor.execute(sql, (name, score)) def select_players(cursor): cursor.execute('SELECT * FROM players') players = cursor.fetchall() for player in players: print(player)

创建敌机类

class Enemy: def init(self, x, y, speed=1): self.x = x self.y = y self.speed = speed

def move(self):
    self.y += self.speed

主程序

def main(): pygame.init() screen = pygame.display.set_mode((400, 300)) pygame.display.set_caption("打飞机游戏") clock = pygame.time.Clock() running = True

# 创建玩家飞机
player = Plane(200, 250)

# 创建敌机列表
enemies = create_enemies()

# 创建子弹列表
bullets = []

# 创建数据库连接
conn, cursor = connect_db()

# 创建玩家信息表
create_table(cursor)

# 游戏循环
while running:
    # 控制游戏帧率
    clock.tick(60)

    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_SPACE:
                player.fire()
                bullet = Bullet(player.x, player.y)
                bullets.append(bullet)

    # 移动玩家飞机
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player.x -= player.speed
    elif keys[pygame.K_RIGHT]:
        player.x += player.speed

    # 移动敌机
    for enemy in enemies:
        enemy.move()

    # 移动子弹
    for bullet in bullets:
        bullet.move()

    # 检测碰撞
    score = check_collision(enemies, bullets)

    # 绘制游戏元素
    screen.fill((255, 255, 255))
    pygame.draw.rect(screen, (0, 255, 0), (player.x, player.y, 50, 50))
    for enemy in enemies:
        pygame.draw.rect(screen, (255, 0, 0), (enemy.x, enemy.y, 50, 50))
    for bullet in bullets:
        pygame.draw.rect(screen, (0, 0, 255), (bullet.x, bullet.y, 10, 10))
    pygame.display.flip()

    # 插入玩家分数记录
    name = input("请输入您的名字:")
    insert_player(cursor, name, score)
    conn.commit()

    # 查询所有玩家记录
    select_players(cursor)

# 关闭数据库连接
cursor.close()
conn.close()

if name == 'main': main()