livro de tarefas do jogo python simples cobra incluindo código

 Índice

Capítulo Um Introdução

1.1 Antecedentes do desenvolvimento

1.2 Objetivo do desenvolvimento

1.3 A importância do desenvolvimento

1.4 Introdução às ferramentas de desenvolvimento

Capítulo 2 Análise de Requisitos

(1) Use as teclas de direção para mudar a direção de corrida da cobra.

(2) Gere alimentos em locais aleatórios.

(3) Ao comer, você se transformará em um novo corpo de cobra. Se você bater em uma parede ou em si mesmo, o jogo terminará. Caso contrário, ele funcionará normalmente.

Capítulo 3 Projeto do esboço do sistema

3.1 Objetivos de projeto

Capítulo 4 Projeto Detalhado e Implementação

4.1 Ideias de design

4.2. Design de estrutura de dados e instruções de uso

Quando o jogo termina, "GAME OVER" é exibido

4.3 Programação

Veja o apêndice para o código

Capítulo 5 Teste

5.1 Importância dos testes

5.2 Implementando testes

5.3 Capturas de tela de cada interface funcional e problemas encontrados e soluções

5.4 Resultados do teste

Conclusão

Agradecimentos


referências

apêndice

Avaliação de desempenho do desenho curricular

Capítulo Um Introdução

  1.1 Antecedentes do desenvolvimento  

Com o desenvolvimento da tecnologia, as funções dos telemóveis são agora mais do que simplesmente fazer e receber chamadas e enviar e receber mensagens de texto. Mais usuários de telefones celulares esperam usar dispositivos convenientes, inteligentes e portáteis para entretenimento depois do trabalho e dos estudos. Portanto, para atender às necessidades de muitos usuários e nos adaptar à escala dos telefones celulares atuais, desenvolvemos um conjunto de jogos de cobra altamente divertidos e interativos, adequados para pessoas de todas as esferas da vida.

A razão pela qual a cobra gananciosa recebeu esse nome é muito óbvia. A cobra gananciosa, na verdade, não é gananciosa. É um símbolo da busca contínua das pessoas por seguir em frente. Assim como as pessoas modernas só podem conseguir o que desejam trabalhando duro e constantemente. avançando. necessidade. E a comida também aparece de forma aleatória, assim como as oportunidades que existem na sociedade atual, e só teremos sucesso se encontrarmos os nossos próprios objetivos.

Embora existam várias versões de jogos no mercado atualmente, o mercado para Snake ainda é bastante grande. Porque é especial porque pode atrair as pessoas mais profundamente e torná-lo incapaz de largá-lo.À medida que a velocidade do jogo continua a aumentar, a sua excitação torna-se mais forte. Pode-se dizer que a vantagem deste jogo é que ele é simples e fácil de jogar, seja um telefone celular ou um pequeno console de jogos, ele pode funcionar de forma rápida e suave. Para pessoas que estão ocupadas fora de casa e não podem dedicar muito tempo ao entretenimento, jogos em grande escala não são viáveis. Um jogo tão pequeno atende às suas necessidades.

1.2 Objetivo do desenvolvimento  

Na sociedade de hoje, as pressões de trabalho e estudo das pessoas estão aumentando gradualmente e o ritmo de vida está gradualmente acelerando.A maioria das pessoas não tem tempo suficiente para lazer, entretenimento e relaxamento. Este pequeno jogo para celular nos permite desfrutar do jogo a qualquer hora e em qualquer lugar. Libertemo-nos da pesada vida quotidiana.

A interface principal do jogo deve se esforçar para ser bonita e agradável à vista, de forma a aumentar o interesse dos jogadores pelo jogo. O módulo de controle do jogo deve ser fácil de entender e operar para proporcionar aos jogadores um bom ambiente de jogo.

1.3 A importância do desenvolvimento

Através deste jogo, quem joga cobra pode se sentir relaxado e feliz. Relaxe seu humor e alivie o estresse no trabalho. Dê a todos um ambiente de jogo agradável.

1.4 Introdução às ferramentas de desenvolvimento  

PyCharm é um IDE (Ambiente de Desenvolvimento Integrado ) Python  que vem com um conjunto de ferramentas que podem ajudar os usuários a melhorar sua eficiência ao desenvolver na linguagem Python , como depuração, destaque de sintaxe , gerenciamento de projetos , salto de código e prompts inteligentes. conclusão , testes unitários , controle de versão . Além disso, o IDE fornece alguns recursos avançados para suportar o desenvolvimento web profissional na estrutura Django .

PyCharm possui as funções que os IDEs gerais possuem, como depuração, destaque de sintaxe, gerenciamento de projetos , saltos de código, prompts inteligentes, preenchimento automático, teste de unidade e controle de versão.

Além disso, o PyCharm também oferece ótimos recursos para o desenvolvimento do Django e oferece suporte ao Google App Engine . O que é ainda mais legal é que o PyCharm oferece suporte ao IronPython .

<Excerto> A linguagem Python é muito simples e você pode dominar conteúdo, procedimentos e testes mais rapidamente do que outras linguagens de programação, como Java e C. E cada vez que você inserir o ícone do programa correspondente, os resultados serão gerados, o que reduziu bastante o tempo de aprendizado da linguagem de programação Python para alguns cursos não relacionados a software.

Capítulo 2 Análise de Requisitos

  2.1 Análise de Requisitos Este jogo serve principalmente para completar as operações básicas do jogo Snake. Este jogo precisa atender aos seguintes requisitos:

   (1) Use as teclas de direção para mudar a direção de corrida da cobra.

   (2) Gere alimentos em locais aleatórios.

   (3) Ao comer, você se transformará em um novo corpo de cobra. Se você bater em uma parede ou em si mesmo, o jogo terminará. Caso contrário, ele funcionará normalmente.

2.2 Análise de viabilidade

  O jogo Snake é um jogo simples e popular. Desde a criação dos computadores, ele tem sido profundamente amado pela maioria dos jogadores de computador. Faça um jogo Snake simples.

    O algoritmo central do Snake é como se mover e comer comida. Quando a comida não é encontrada, o próximo nó na direção atual do movimento é enfileirado e, em seguida, o nó apontado pelo ponteiro principal é retirado da fila, para que o movimento possa ser alcançado. Efeito. Quando você come, você só precisa colocar a comida na fila. Perceba o movimento básico do corpo da cobra gananciosa, o crescimento do corpo após comer e a capacidade de parar e correr ao bater em uma parede ou morrer.

Este design é concluído principalmente usando a linguagem pycharm. Python é uma linguagem de programação de computador multiplataforma . É uma linguagem de script de alto nível que combina interpretação, compilação, interatividade e orientação a objetos . Ele foi originalmente projetado para escrever scripts automatizados (shells) e, à medida que sua versão é constantemente atualizada e novos recursos de linguagem são adicionados, ele é cada vez mais utilizado para o desenvolvimento de projetos independentes e de grande porte.

Capítulo 3 Projeto do esboço do sistema

3.1 Objetivos de projeto

Este é um programa py para o jogo Snake. Use a visualização de direção para mudar a direção de corrida da cobra. A barra de espaço pausa ou continua o jogo e gera comida em lugares aleatórios. Quando você come, ela se transforma em uma nova cobra corpo. Quando atinge a parede, ele se transforma em um novo corpo de cobra. ou em si mesmo, o jogo termina, caso contrário ele funciona normalmente.

Capítulo 4 Projeto Detalhado e Implementação

4.1 Ideias de design

1. A chave deste programa é representar a forma e o movimento da cobra. Use um pequeno retângulo para representar uma seção do corpo da cobra. Para cada seção do corpo, adicione um bloco retangular e use duas seções para representar a cabeça da cobra. Ao se mover, você deve começar pela cabeça da cobra, para que a cobra não possa se mover na direção oposta, ou seja, a cauda da cobra não pode ser trocada pela cabeça da cobra. Se nenhuma tecla for pressionada, a cobra avançará sozinha na direção atual. Quando o jogador pressiona uma tecla de direção válida, a cabeça da cobra se moverá na direção especificada, movendo uma seção de seu corpo em um passo. Portanto, quando uma tecla de direção válida é pressionada, a cabeça da cobra se moverá na direção especificada. Primeiro determine a posição da cabeça da cobra e, em seguida, o corpo da cobra se moverá com a cabeça da cobra. Os gráficos são realizados desenhando a cobra a partir da nova posição da cabeça da cobra. Neste momento, devido à falta de Qingping, a posição da cobra original é uma unidade diferente da posição da nova cobra. Portanto, parece que a sociedade tem mais uma seção do corpo, então a última seção da cobra é coberta com a cor de fundo. O aparecimento e desaparecimento dos alimentos também são desenhados e cobertos por blocos retangulares.

4.2. Design de estrutura de dados e instruções de uso 

1. Parte inicial:

O jogo está rodando em modo gráfico, então o primeiro passo deve ser inicializar o modo gráfico, e depois deve haver uma interface inicial. Assim como na capa do jogo, defini uma tela de título para o jogo. Além da tela de título do jogo, eu também configurei Uma tela de boas-vindas aparece. Após a tela de título, a parte de execução do jogo deve ser inicializada, incluindo o desenho do plano de fundo quando o jogo está rodando e a inicialização de algumas variáveis ​​importantes do jogo.

2. Parte de operação:

Como parte central do jogo, existem muitas funções, ou seja, muitos módulos. Primeiro, deixe-me simular o primeiro ciclo do modo de jogo Snake: na primeira etapa, a comida aparece; na segunda etapa, a cobra continua se movendo . ;O terceiro passo, verifique se a cobra bateu

Você mesmo ou a parede; a partir da quarta etapa, o jogo tem dois ramos (A, B):

R: O quarto passo, a cobra não toca em si mesmo ou na parede, a cobra continua a se mover para frente, desenhe os movimentos da cobra; o quinto passo, determine se a cobra comeu comida, se a cobra come comida, seu corpo fica mais longo , e a comida original desaparece; Etapa seis, deixe o jogador inserir instruções de controle para deixar a cobra mudar a direção do movimento na segunda etapa do próximo ciclo; etapa sete, a segunda rodada do ciclo

Para o primeiro passo, repita os passos da primeira rodada;

B: Na quarta etapa, a cobra toca nela mesma ou na parede e o jogo termina.

3. Parte final:

Quando o jogo termina, "GAME OVER" é exibido

Descrição do programa Cobra:

Descrição básica: comprimento, cor, localização.

Dados e tipos de dados correspondentes: comprimento - embora possa ser expresso por coordenadas, mas neste caso a quantidade de cálculo será muito grande, por isso é convertido em uma unidade maior - o número de seções, e é descrito por cada seção de comprimento fixo; coordenadas - inteiro; cor -

Inteiro; posição - coordenadas X, Y.

Descrição adicionada: direção do movimento da cobra, vida da cobra.

Dados e tipos de dados correspondentes: Essas descrições são projetadas para conectar a parte principal de entrada do programa e a parte de julgamento final do jogo. Existem apenas quatro direções: para cima, para baixo, para a esquerda e para a direita. Você pode definir quatro números inteiros correspondentes

Digite o número: 3, 4, 2, 1. Existem apenas duas situações na vida: morte ou vida, correspondendo a 0 ou 1. comida:

Descrição básica: cor, localização.

Dados e tipos de dados correspondentes: Como a cor está definida para ser fixa, ela não será discutida novamente. Posição - coordenadas X, Y.

Descrição adicionada: Presença de comida.

Dados e tipo de dados correspondentes: é definido para evitar ocorrências repetidas de alimentos e está relacionado à função de extrair alimentos. Existem apenas dois valores: 0 ou 1 (sem comida ou presença de comida)

Outros elementos: Parede, por existir como fundo no display, não há explicação de que a própria parede seja uma moldura composta por quatro linhas retas, descritas por coordenadas.

Variáveis ​​​​também necessárias: valores-chave inseridos no teclado (como variáveis ​​​​globais, inteiros); variáveis ​​​​de loop usadas com frequência; padrões de preenchimento personalizados; matrizes de caracteres para texto explicativo; pontuações de jogos; velocidade do jogo (velocidade da cobra).

4.3 Programação

(0) Instale e importe a biblioteca pygame

<1>O primeiro método: baixei o pacote de recursos pipi e a biblioteca pygame que são compatíveis com as versões de computador e python no site oficial, usei o comando pip install pygame na linha de comando cmd para instalá-lo e, finalmente, usei import pygame no pycharm para importá-lo.

<2> Segundo método: clique em configurações no pycharm, clique em projeto, em seguida, clique em interpretador python, clique no sinal + acima do pacote de software, procure por pycharm, clique em baixar e instalar e, em seguida, use import pygame para importá-lo no pycharm.

  1. Defina parâmetros relacionados, como tamanho e título da janela do jogo

Inicialização: após importar a biblioteca pygame, primeiro faça referência à função init() na biblioteca pygame para inicialização.

Título: Em seguida, use o módulo de exibição na biblioteca pygame para criar o título da janela através de pygame.display.set_caption("title").O título que digitei é "Snake Game".

Crie uma janela: Use a função pygame.display.set_mode(width,height) para criar uma janela e inserir a largura e a altura.

Cor de fundo da tela: Use a função fill(color) para preencher a cor (Nota: a cor é preenchida com o código de cor) e coloque a instrução no loop principal.

Frequência de atualização da tela: primeiro crie um objeto de relógio e implemente-o com pygame.time.Clock() no módulo de tempo da biblioteca pygame, em seguida, defina a variável do número do quadro e, finalmente, na parte da tela de atualização do loop principal, escreva um instrução indicando a velocidade da tela de atualização, usando a implementação da função Clock object.tick (número do quadro).

  1. Defina o loop principal do jogo

Estrutura principal do loop:

 Use a função while para fazer um loop e use variáveis ​​definidas como True como condições. O uso de variáveis ​​facilita o encerramento do loop infinito. Dividi o loop principal em três módulos, ou seja, controle do usuário, atualização de dados e tela de atualização.

Controles do usuário:

Aqui o usuário precisa controlar o movimento da cobra, ou seja, quando o teclado é pressionado, a direção do movimento da cobra muda. Veja o apendice

atualizar dados:

Os dados precisam ser atualizados para atualizar o status da cobra gananciosa, e o corpo da cobra é definido (veja o apêndice para implementação usando uma lista) de modo que enquanto o corpo da cobra aumenta um espaço à frente, a cauda diminui um espaço; é também é necessário atualizar os dados de localização onde a comida aparece., a comida precisa usar uma função de número aleatório para definir as coordenadas da comida, para que a comida possa aparecer em locais aleatórios na tela. Veja o apendice

Tela de atualização:

É necessário atualizar várias imagens da imagem, preencher a cor de fundo, desenhar a grade de fundo, desenhar a cabeça e o corpo da cobra e desenhar a comida. Controle sua cor, tamanho e outros parâmetros. Nesta posição, as funções pygame.draw.rect() e fill() são usadas principalmente.

  1. Defina o estado inicial do Snake

Drawing Snake: Use o módulo draw da biblioteca pygame para desenhar uma função de retângulo, pygame.draw.rect(), onde você pode definir a tela, cor, posição inicial e tamanho.

  1. Defina a posição inicial do alimento

Sou diretamente aleatório, portanto o valor inicial não é fixo.

  1. Defina os parâmetros de movimento do Snake
  2. Defina a função de detecção de limite para determinar se a cobra atinge a parede
  3. Defina a função de geração de alimento para determinar se o alimento se sobrepõe ao da cobra gananciosa
  4. Defina a função final do jogo para determinar se a cobra gananciosa atinge a si mesma
  5. Defina a função de evento do teclado para controlar a direção do movimento da cobra.

Veja o apêndice para o código acima

Capítulo 5 Teste

5.1 Importância dos testes

O teste do sistema é o processo de execução de programas para encontrar erros. Testes bem-sucedidos são testes que encontram erros que ainda não foram descobertos. O objetivo do teste é descobrir possíveis erros e defeitos com o mínimo de mão de obra e tempo. Os casos de teste devem ser cuidadosamente projetados com base nos requisitos e documentos de design em cada estágio de desenvolvimento ou na estrutura interna do programa, e essas instâncias devem ser usadas para executar o programa em busca de erros. O teste do sistema é uma etapa fundamental para garantir a qualidade e a confiabilidade do sistema e é a revisão final do projeto do sistema e a implementação da análise do sistema durante o desenvolvimento do sistema. De acordo com o conceito e a finalidade dos testes, os princípios básicos devem ser seguidos na realização de testes de sistemas de informação.

5.2 Implementando testes

Faça um teste do programa do jogo e concentre-se em testar módulos complexos e propensos a erros.

5.3 Capturas de tela de cada interface funcional e problemas encontrados e soluções

(1) Problemas que ocorrem ao instalar a biblioteca pygame

No início, digitei diretamente as instruções para instalar o pygame na linha de comando do cmd, mas erros foram relatados com frequência, dizendo que nenhuma versão correspondente ao pygame e aos erros de distribuição do pygame foi encontrada. Depois disso, segui as etapas de um artigo do blog Zhihu [2] e descobri que havia erros ao verificar se o pip e a biblioteca pygame subsequente estavam instalados e atualizados, então baixei os recursos relevantes do site oficial e atualizei. Então tentei importá-lo no pycharm, mas encontrei um erro dizendo que o pygame não foi encontrado. Não sei por que o pycharm não detectou automaticamente o arquivo da biblioteca do pygame. Então tentei o segundo método e resolvi o problema.

  1. Problemas encontrados ao definir as cores do plano de fundo e da cobra

Ao definir a cor, o parâmetro de cor que inseri foi a palavra em inglês correspondente à cor. Mais tarde descobri que havia um código correspondente à cor. Depois de usar o código como parâmetro, ele foi executado com sucesso.

5.4 Resultados do teste

No final, o programa funcionou normalmente, nenhum erro foi encontrado e funcionou livremente.

Conclusão

O design do curso está quase terminando. Acho que não aprendi bem python. Em toda a programação, acho que o jogo Snake deveria ser o mais simples.

   Por meio do design deste curso, tenho uma compreensão mais profunda de python. Também tenho um amor mais profundo por isso e decidi trabalhar duro para aprender bem Python e aplicá-lo melhor em trabalhos futuros.

Desta vez, o design do Snake não foi perfeito, nem tão bom quanto eu imaginava, mas também ganhei muita experiência valiosa:

  1. Antes de projetar um programa, você deve ter uma compreensão sistemática e geral dos tópicos e conteúdos que deseja criar e saber quais recursos os tópicos e conteúdos que você cria incluem. (2) Não é muito importante qual linguagem de programação é usada para projetar o programa. A chave é ter uma ideia clara e um fluxograma completo do programa. Portanto, você deve primeiro entender os princípios e ideias de design e, em seguida, desenhar o fluxo gráfico. Design assim É muito mais fácil se levantar.

(3) Ao projetar um programa, você não pode imaginar que todo o programa será projetado de uma só vez. "Melhoria repetida e contínua" é a única maneira de projetar um programa, e descobrir erros também é a única maneira de alcançar resultados e conquistas .

(4) É necessário desenvolver um bom hábito de anotar programas. A perfeição de um programa não se trata apenas de sua função, mas também de permitir que as pessoas entendam suas ideias rapidamente. Isso também facilita o armazenamento e a troca de dados. Em trabalhos futuros, espero poder aplicar essas experiências. Para o bom andamento dos trabalhos futuros, também permite adquirir certas habilidades e poder ter um bom emprego.

(5) Resumindo, programar é uma coisa muito chata e chata, mas fora da pressão de fazer a lição de casa e ganhar créditos, você deve se forçar a perseverar e escrevê-la em partes de acordo com a ideia modular mencionada pelo professor. Além disso, a programação é uma questão padronizada e de alta precisão.Um leve descuido afetará a situação geral, ou um pequeno erro em um local pode fazer com que todo o programa não seja executado. Então é muito importante ter cuidado. No início, eu realmente achava que programar era uma coisa muito chata, mas quando um programa é executado com sucesso, a alegria vai além das palavras e a sensação de realização é incomparável. Depois de vários dias de trabalho duro, finalmente concluí o programa. Embora o programa ainda tenha muitos erros e lacunas, ainda estou muito feliz. Em qualquer caso, é fruto do seu próprio trabalho e dos resultados obtidos com o seu trabalho árduo.É também um trabalho prático para aprender a linguagem Python e uma prova do seu progresso.

Através deste design de curso, tenho uma melhor compreensão da linguagem Python. Para aprendê-la bem, preciso me concentrar na prática. Somente através da operação contínua do computador posso aprendê-la melhor. Também descobri que tenho muitas deficiências. Em primeiro lugar , não sou bom em dedilhar, muitas vezes pressiono as letras erradas e melhorei com o aprendizado; em segundo lugar, não sei muito sobre algumas funções da biblioteca padrão da linguagem python e não estou familiarizado com o uso correto de chamadas de função, e também não entendo os erros que muitas vezes ocorrem na linguagem python. Através do aprendizado prático, percebi que aprender bem computadores requer atenção às operações práticas. Não é apenas aprender a linguagem python, mas também outras linguagens ​​​​e outros conhecimentos de informática. Pratique, portanto, no processo de aprendizagem, prestarei mais atenção às operações práticas para poder aprender bem a informática.

 apêndice

# 贪吃蛇游戏

# 导入模块
import random
import sys
import pygame
from tkinter import *


pygame.init()   # pygame库初始化 #如果用print()输出,会返回一个元组。例(5,0)表示有5个模块被载入而且成功,没有失败的。
pygame.display.set_caption("贪吃蛇游戏") # 更改窗口的标题
game_screen_width, game_screen_height = 640, 480    # 定义屏幕宽和高
game_screen = pygame.display.set_mode((game_screen_width, game_screen_height)) # 创建一个窗口对象(宽高)
game_clock = pygame.time.Clock()    # 创建一个时钟对象
game_speed = 3 # 定义帧数
game_screen_color = 00, 00, 00  # 定义屏幕背景颜色
game_linecolor = 33, 33, 33  # 格子线条的颜色

square_color = 33, 255, 33  # 贪吃蛇颜色
square_color2 = 33, 195, 33 # 贪吃蛇颜色
square_color3 = 255, 95, 33 # 贪吃蛇头的颜色
square_x, square_y = 0, 0   # 贪吃蛇初始位置
square_size = 20    # 贪吃蛇尺寸
square_speed = 20    # 贪吃蛇的速度
square_become = 0   # 贪吃蛇速度变化参数
square_speed_x, square_speed_y = square_speed, 0    # 控制速度的关键中间变量
square_body = [pygame.Rect(0, 0, 0, 0)] * 3    # 蛇的身体
game_field = game_screen.get_rect()     # <rect (0, 0, 640, 480),用于判断是否出墙的变量
square_rect = pygame.draw.rect(game_screen, square_color, (square_x, square_y, square_size, square_size))   # 蛇头
# food
food_color = 255, 255, 255  # 食物的颜色
m = 0 # 吃掉的食物个数
x = random.randrange(0, 640, 20)    # 食物位置参数x
y = random.randrange(0, 480, 20)    # 食物位置参数y
game_food = pygame.draw.rect(game_screen, square_color, (x, y, square_size, square_size))   # 食物位置以及大小

game_running = True
game_playing = True
while game_running: # 主循环
    # 用户控制
    for event in pygame.event.get():    # 从队列中获取事件  在后续获取鼠标键盘操作时可以得到应用
        if event.type == pygame.QUIT:   # 此时结束循环
            game_running = False
        elif event.type == pygame.KEYDOWN:  # 按下键盘时,贪吃蛇的移动控制
            if square_speed_y == 0:
                if event.key == pygame.K_UP and square_x % 20 == 0:
                    square_speed_x = 0
                    square_speed_y = -square_speed
                elif event.key == pygame.K_DOWN and square_x % 20 == 0:
                    square_speed_x = 0
                    square_speed_y = square_speed
            if square_speed_x == 0:
                if event.key == pygame.K_LEFT and square_y % 20 == 0:
                    square_speed_x = -square_speed
                    square_speed_y = 0
                elif event.key == pygame.K_RIGHT and square_y % 20 == 0:
                    square_speed_x = square_speed
                    square_speed_y = 0

    # 更新数据
        # 蛇的移动
    square_x += square_speed_x  # 贪吃蛇位置数据
    square_y += square_speed_y
    square_body.insert(0, square_rect)  # 增加一节身体
    square_body.pop()  # 尾部减少一节

        # Food

    if square_rect == game_food:
        x = random.randrange(0, 640, 20)
        y = random.randrange(0, 480, 20)
        game_food = pygame.draw.rect(game_screen, square_color, (x, y, square_size, square_size))
        square_body.append(pygame.Rect(0, 0, 0, 0))
        m += 1

    if len(square_body) != square_become:
        if len(square_body) % 5 == 0:
            game_speed += 2
            square_become = len(square_body)
    # 更新画面
    if game_playing:
        game_screen.fill(game_screen_color) # 填充背景颜色
            # 画格子
        for i in range(square_size, game_screen_width, square_size):
            pygame.draw.line(game_screen, game_linecolor, (i, 0), (i, game_screen_height))
        for i in range(square_size, game_screen_height, square_size):
            pygame.draw.line(game_screen, game_linecolor, (0, i), (game_screen_width, i))

            # 绘制蛇
                # 蛇头
        square_rect = pygame.draw.rect(game_screen, square_color, (square_x, square_y, square_size, square_size)) # 绘制蛇头,square_size这里表示长和宽
        game_screen.fill(square_color3, square_rect.inflate(-5, -5))    # 丰富蛇头色彩
                # 身体
        # pygame_Rect = pygame.draw.rect(game_screen, square_color,(square_x-20, square_y, square_size, square_size))
        for cell in square_body:    # 利用循环,绘制身体
            game_screen.fill(square_color, cell)
            game_screen.fill(square_color2, cell.inflate(-5, -5))
                # 食物
        game_food = pygame.draw.rect(game_screen, food_color, (x, y, square_size, square_size))

        # game over
        if game_playing:
            # 撞墙
            if not game_field.contains((square_x, square_y, square_size, square_size)):
                game_playing = False
                # 撞身体
            for cell in square_body:
                if square_rect == cell:
                    game_playing = False
            # 得分
            if not game_playing:
                print("GAME OVER")
                win = Tk()  # 创建根窗口
                win.title("游戏结果")   # 窗口的标题
                win.geometry("400x100+600+300")  # 窗口的大小和出现的位置
                win.configure(bg="white")   # 窗口颜色
                a = Label(win, text='您一共吃到了{0}食物\n蛇的长度为{1}\n您的最终得分为{2}'.format(m, len(square_body)+1, m*100*(len(square_body)+4))) #显示数据
                a.grid()    # 显示文字
                win.mainloop()  # 显示窗口
                game_running = False


        # 更新窗口内容
    pygame.display.flip()   # 更新整个待显示的 Surface 对象到屏幕上。(一般来说第一次更新用flip,后续更新使用update)
    game_clock.tick(game_speed)     # 更新画面速度



pygame.quit()    # 取消初始化

Nota: Baixe as bibliotecas de terceiros relevantes com antecedência, caso contrário, um erro será relatado.

Acho que você gosta

Origin blog.csdn.net/qq_74349936/article/details/129679621
Recomendado
Clasificación