python + pygameの書かれたスネークゲームを使用して

Pythonの構文は、Pythonで少し外にゲームを書くことができるようにしたい二日前に、シンプルで使いやすいですので、インターネット検索で、私はpygameのは、この2Dゲームライブラリを作成しました。日のカップルを学び、その後、蛇のいくつかの情報を参照してください、この小さなゲームを書き始めました。結局のところ、このプロジェクトの始まりは、それがのpython3チュートリアル遼雪峰のこの練習の手emmmmpython勧告、ブログのpygameのダウンロードpygameのチュートリアルをお勧め目と思われ、pygameのダウンロードは、2Dゲーム開発ライブラリです。Pythonの+ pygameのプロジェクトの概要を始めることができた後。

 

一般的な考え方:

1、ゲーム情報表示の開始

2、マップの初期化

3、ヘビの初期化

4、ランダムな食べ物

図5に示すように、単純なユーザ入力を達成するためには、スネークの変化の方向を制御します

6は、食品(同じ食品座標とヘッドの座標)、+1蛇自体の長さを食べる場合蛇ランダム新しい食品が、食品を食べるか否かが判定されます。それ以外の場合は変更されません。

7、あなたが死亡情報とスコアを育てるために境界が発生した場合、ヘビは、遭遇した境界であるかどうかを判断します。

 

(1)全体としてゲームを定義します。

cell_sizeはウィンドウサイズで割り切れるするヘビ、注意cell_sizeのサイズです。

 

全幅の地図:

INT = map_width(windows_width / cell_size)
map_height = INT(windows_height / cell_size)
定義され、全体的な色と方向:

白=(255、255、255)
=黒(0、0、0)
グレー=(230、230、230)
dark_gray =(40、40、40)
DarkGreen =(0、155、0)
0(=緑、 255、0)
赤=(255、0、0)
ブルー=(0、0、255)
dark_blue =(0,0、139)


BG_COLORゲームの背景色は=ブラック#1

位の方向定義
UPを1 =
DOWN = 2
LEFT。3 =
4 = RIGHT

ヘッドスネークヘッド#0 =添字
主な機能:

1.スネークの初期化:

snake_coords = [{ 'X': startxと、 'Y':startYと}、# 初期ヘビ
{ 'X':startxと- 1、 'Y':startYと}、
{ 'X':startxと- 2、 'Y' :startYと}]
2絵蛇。

DEF(スクリーン、snake_coords)draw_snake:
snake_coordsでCOORDのために:
X = COORD [ 'X'] * cell_sizeの
Y = COORD [ 'Y'] * cell_size
wormSegmentRect = pygame.Rect(X、Y、cell_size、cell_size)
pygame.draw .rect(スクリーン、dark_blue、wormSegmentRect)
wormInnerSegmentRect = pygame.Rect(#蛇身子里面的第二层亮绿色
X + 4、Y + 4、cell_size - 8、cell_size - 8)
pygame.draw.rect(スクリーン、青いです、wormInnerSegmentRect)
3.移动贪吃蛇:

:DEF(方向、snake_coords)move_snake
UP ==方向場合:
newHead = { 'X':snake_coords [HEAD] [ 'X']、 'Y':snake_coords [HEAD] [ 'Y'] - 1}
のelif方向= = DOWN:
newHead = { 'X':snake_coords [HEAD] [ 'X']、 'Y':snake_coords [HEAD] [ 'Y'] + 1}
のelif方向== LEFT:
newHead = { 'X':snake_coords [HEAD] [ 'X'] - 1、 'Y':snake_coords [HEAD] [ 'Y']}
のelif方向== RIGHT:
newHead = { 'X':snake_coords [HEAD] [X ''] + 1、 'Y':snake_coords [HEAD] [ 'Y']}

snake_coords.insert(0、newHead)
4.判断蛇是否死亡。

DEF snake_is_alive(snake_coords):
タグ= Trueの
場合snake_coords [HEAD] [X ''] == -1又はsnake_coords [HEAD] [X ''] == map_width又はsnake_coords [HEAD] [ 'Y'] == -1または\
snake_coords [HEAD] [ 'Y'] == map_height:
タグ= Falseの#蛇碰壁啦
snake_coordsでsnake_body [1:]:
もしsnake_body [ 'X'] == snake_coords [HEAD] [X '']とsnake_body [ 'Y'] == snake_coords [HEAD] [ 'Y']:
タグ= Falseの#蛇碰到自己身体啦
戻りタグ
5食物的初始化。

get_random_location DEF():
戻り{ 'X':random.randint - 、 'Y'(0、map_width 1):(0、map_height - 1)random.randint}
6.蛇は食品を食べるか否かが判定されます。

デフ(snake_coords、食べ物を)snake_is_eat_food: #それはリストや辞書である場合、関数内のコンテンツのパラメータを変更するには、in vitroでのオブジェクトの機能に影響を与えます。
snake_coords [HEAD] [ 'X'] IF ==フード[ 'X']とsnake_coords [HEAD] [ 'Y'] ==フード[ 'Y']:
フード[ 'X'] random.randintを=(0、 map_width - 1)。
フード[ 'Y'] = random.randint(0、map_height - 1)物理的な位置#リセット。
他:
、前方セルの[-1]、尾部を移動させる物理ない場合デルsnake_coords#食べます削除
それについて話をするために具体的なアイデアの後ろに、ここでの主な機能を、初めてCSDNに精通していません。
--------------------- 

おすすめ

転載: www.cnblogs.com/ly570/p/10989732.html