Python을 기반으로 한 먹기 게임 디자인

목차
1. 디자인 목적 3
2. 설계 작업 및 요구 사항 3
III. 전체 디자인 4
4. 디자인 구현 6
(1) 최종 구현 결과 : 6
(2) 구현 결과 평가 7
V. 세부설계 7
(1) 파이게임 이벤트 7
(2) 마우스 이벤트 8
(3) 폴링 키보드 8
(4) 게임 종료 처리 9(
5) 게임 레벨 설정 및 난이도 설정 9
(6) 게임 중 도입 10
6 .디버깅 및 테스트 12
(1) 예외 처리 12
(2) 디버깅 12
VII. 설계 요약 12
이 과정 설계의 구체적인 목적:
(1) Python 기술의 역사, 현재 상황 및 개발 동향에 대한 포괄적인 이해를 기반으로 합니다. , Python의 기본 개념인 프로그래밍 사고와 프로그래밍 기술을 능숙하게 숙달하고 능숙한 Python 프로그래밍 기술과 객체지향적 소프트웨어 설계 기술 사고를 체계적으로 습득합니다.
(2) 전체 프레임워크를 통해 페이지 디자인, 코드 구현에 이르는 Python 디자인의 일반적인 단계를 이해하고 Python의 디자인 아이디어를 능숙하게 마스터합니다.
(3) 이 주제는 주로 논리적 사고와 Python 문법을 훈련하고, 큰 것에서 작은 것으로, 전체에서 모듈로 코드 작성의 기본 논리를 마스터하고, 논리적 사고를 형성하기 위해 미래 디자인에 대한 추론을 그릴 수 있습니다.
둘. 디자인 작업 및 요구 사항
코스 디자인 교육 작업 및 요구 사항:
이 코스 디자인의 주요 작업은 Python을 개발 언어로 사용하여 약 100~300줄 규모의 프로그램 프로젝트 개발을 완료하는 것입니다. 설계 참조 항목은 부록 1을 참조하십시오.
코스 설계의 기본 요구 사항은 전체 계획 보고서, 세부 설계 보고서, 기능 설명, 데이터 구조 설명, 알고리즘 설명, 프로그램 설계 블록 다이어그램, 범례 및 소스 프로그램과 같은 코스 설계의 각 단계에서 관련 문서를 엄격하고 표준적으로 작성하는 것입니다. 등. 서면 문서에는 합리적인 구조, 완전한 내용 및 명확한 설명이 있어야 합니다. 프로그램의 소스 코드에는 자세한 주석이 있어야 하며 가독성이 좋습니다. 더 높은 요구 사항은 창의적이고 아름다운 시스템 인터페이스입니다.
이 과정 설계의 특정 작업 및 요구 사항:
(1) 페이지가 완벽하고 논리가 명확합니다.
(2) 코드 작성은 가능한 한 간결하고 가독성이 높아야 합니다.
(3) PyCharm 및 Python IDLE과 같은 개발 플랫폼을 선택하여 개발 효율성을 높이고 데이터 검토 및 학습을 통해 하나 이상의 통합 개발 환경을 최대한 마스터할 수 있습니다.
(4) 코드 연결, 게임의 전체 프레임워크 및 논리 구현을 공동으로 완료합니다. 분업은 설계 목적, 설계 요구 사항, 전체 설계, 세부 설계, 디버깅 및 테스트, 설계 요약의 총 6개 부분을 포함하는 과정 설계 보고서를 작성합니다.

# -*-coding:utf-8-*- s = '
#AoDaMiao Like Eating Fish
import sys, random, time, pygame
from pygame.locals import *

def print_text(font, x, y, text, color=(255,255,255)):
    imgText = font.render(text, True, color)
    screen.blit(imgText, (x,y))
    

#main program begins
pygame.init()
screen = pygame.display.set_mode((600,500))
pygame.display.set_caption("嗷大喵爱吃鱼!")
font1 = pygame.font.Font(None, 24)
font2 = pygame.font.Font(None, 18)
font3 = pygame.font.Font(None, 34)
pygame.mouse.set_visible(False)
white = 255,255,255
red = 220, 50, 50
yellow = 230,230,50
black = 0,0,0
cat=pygame.image.load("aodamiao_2.png")
width,height=cat.get_size()
pic=pygame.transform.scale(cat,(width,height))
fish=pygame.image.load("fish.png")
width,height=fish.get_size()
fish=pygame.transform.smoothscale(fish,(width//3,height//3))
init=pygame.image.load("init.png")
lives = 10
score = 0
clock_start = 0
game_over = 1
mouse_x = mouse_y = 0
Round =1
mine=0
mine_png=pygame.image.load("mine.png")
cat2=pygame.image.load("aodamiao_3.png")
flag=0

pos_x = 300
pos_y = 410-40

bomb_x = random.randint(0,500)
mine_x=random.randint(0,500)
bomb_y = -50
vel_y = 0.4
vel_yy=0.6
mine_y=-100

#无限循环
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            #sys.exit()
            pygame.quit()
            exit()
        elif event.type == MOUSEMOTION:
            mouse_x,mouse_y = event.pos
            move_x,move_y = event.rel
        elif event.type == MOUSEBUTTONUP:
            if game_over:
                game_over = False
                lives = 10
                score = 0
                Round =1
                vel_y=0.4
                mine=0
                flag=0
                pic=cat
                bomb_y = -50

    keys = pygame.key.get_pressed()
    if keys[K_ESCAPE]:
        sys.exit()

    screen.fill((0,0,100))

    if game_over:
        screen.blit(init,(60, 60))
        print_text(font3, 200, 400,"Clicked To Play!")
        print_text(font2, 310, 480,"Copyright@2015 developed by xiaoxiami")
    else:
        #等级设置
        if score >300 and score <600:
             Round=2
        elif score >600 and score <900:
             Round =3
        elif score >900 and score <1200:
             Round=4
        elif score >1200 and score <1500:
             Round =5
        elif score >=1500:
             Round =6
        #难度设置
        print_text(font1, 280, 0, "Round: " + str(Round))
        if Round ==1:
            vel_y=0.4
        elif Round ==2:
            vel_y=0.6
        elif Round ==3:
            vel_y=0.8
        elif Round ==4:
            vel_y=1.0
        elif Round ==5:
            vel_y=1.2
        #mine number setting
        #move the fish
        bomb_y += vel_y
        mine_y+=vel_yy

여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입

Supongo que te gusta

Origin blog.csdn.net/newlw/article/details/130698922
Recomendado
Clasificación