目次
1. 設計目的 3
2. 設計タスクと要件 3
III. 全体デザイン 4
4.設計実現 6
(1)最終実現結果:6
(2)実現結果評価 7
V.詳細設計 7
(1) pygame イベント 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 などの開発プラットフォームを選択して開発効率を向上させ、データのレビューと学習を通じて 1 つ以上の統合開発環境を可能な限り習得できます。
(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