Pythonはスネークゲームのソースコードを実装しています

この記事の例では、参考のためにヘビを食べることを実現するためのpythonの特定のコードを共有しています。具体的な内容は次のとおりです。

import pygame
import sys
import random
SCREEN_X=600
SCREEN_Y=600classSnake(object):
def __init__(self):
self.direction=pygame.K_RIGHT
self.body =[]for i inrange(5):
self.addnode()
def addnode(self):
left, top =(0,0)if self.body:
left, top =(self.body[0].left,self.body[0].top)
node = pygame.Rect(left,top,25,25)if self.direction == pygame.K_RIGHT:
node.left +=25
elif self.direction == pygame.K_LEFT:
node.left -=25
elif self.direction == pygame.K_UP:
node.top -=25
elif self.direction == pygame.K_DOWN:
node.top +=25
self.body.insert(0,node)
def delnode(self):
self.body.pop()
def isdead(self):if self.body[0].x not inrange(SCREEN_X):return True
if self.body[0].y not inrange(SCREEN_Y):return True
if self.body[0]in self.body[1:]:print('in body')return True
return False
def move(self):
self.addnode()
self.delnode()
def changeddirection(self,curkey):
LR =[pygame.K_LEFT,pygame.K_RIGHT]
UD =[pygame.K_DOWN,pygame.K_UP]if curkey in LR+UD:if(curkey in LR)and(self.direction in LR):returnif(curkey in UD)and(self.direction in UD):return
self.direction = curkey
classFood(object):
def __init__(self):
self.rect = pygame.Rect(-25,0,25,25)
def remove(self):
self.rect.x =-25
def set(self):if self.rect.x ==-25:
allpos =[]for pos inrange(25,SCREEN_X-25,25):
allpos.append(pos)
self.rect.left = random.choice(allpos)
self.rect.top = random.choice(allpos)print(self.rect)
def show_text(screen,pos,text,color,font_bold = False,font_size =60,font_italic = False):
cur_font=pygame.font.SysFont('ソンティ',font_size)
cur_font.set_bold(font_bold)
cur_font.set_italic(font_italic)
text_fmt = cur_font.render(text,1,color)
screen.blit(text_fmt,pos)
def main():
pygame.init()
screen_size =(SCREEN_X,SCREEN_Y)
screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption('Snake')
clock=pygame.time.Clock()
scores=0
isdead=False
snake=Snake()
food=Food()while True:for event in pygame.event.get():if event.type == pygame.QUIT:
sys.exit()if event.type == pygame.KEYDOWN:
# print(event)
# pressed_keys = pygame.key.get_pressed()
# if pressed_keys.count(1)1:
# continueprint(event.key)
snake.changeddirection(event.key)if event.key == pygame.K_SPACE and isdead:returnmain()
screen.fill((255,255,255))if not isdead:
scores +=1
snake.move()for rect in snake.body:
pygame.draw.rect(screen,(20,220,39),rect,0)
isdead=snake.isdead()if isdead:show_text(screen,(100,200),'you dead!',(227,29,18),False,100)show_text(screen,(150,260),'press space to try again...',(0,0,22),False,30)if food.rect == snake.body[0]:
scores +=50
food.remove()
snake.addnode()
food.set()
pygame.draw.rect(screen,(136,0,21),food.rect,0)show_text(screen,(50,500),'Scores:'+str(scores),(223,223,223))
pygame.display.update()
clock.tick(5)if __name__ =="__main__":main()

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

Pythonはスネークゲームのソースコードを実装しています
Pythonは実店舗のゲームを実装しています
PythonはTowerofHanoiゲームを解決します
Pythonは分数シーケンスの合計を実装します
ヘビを実現するための200行のPythonコード
Pythonはtic-tac-toeゲームを実装しています
PythonはDoudizhuでカードのシャッフルを実装します
PythonはTetrisゲームを実装しています
Pythonはminesweeperゲームを実装しています
Pythonは釣りマスターのゲーム実装を書きます
Pythonは推測ゲームを実装しています
Pythonの基盤を統合する(4)
pythonはゲームという言葉を推測します
PythonはWeChat飛行機ゲームを実装しています
Pythonは単語推測ゲームを実装しています
Python(6)の基盤を統合する
Pythonは推測ゲームを実装しています
Pythonは推測ゲームを実現します
Pythonは単純なtic-tac-toeゲームを実装しています
Python(5)の基盤を統合する
Pythonはコードブロックフォールディングを実装します
Pythonは検証コード認識を実装します
Pythonの基盤を統合する(3)
ミニマリズムはPythonの魂です|バグを見つけるためのPythonコード(10)
pythonでのwheelの使用法
Pythonがメール機能を実装する方法
Pythonは中国語の4つの車輪を処理します
Python3はシングルトンデザインパターンを実装しています
地主取引のPythonシミュレーション
Pythonの用途は何ですか
Pythonは最も急な降下方法を実装します
Pythonは実際の銀行システムを実装しています
Pythonはデジタル爆弾ゲームプログラムを実装しています
Python文字列プーリングの前提
Python3.8の新機能の秘密
Pythonがタイマー機能を実装する方法
Pythonは航空機戦争プロジェクトを実装します
Pythonの父がMicrosoftに加わる
Pythonは写真の水平ステッチを実装しています
python accesshdfsの操作
pythonでのタプルの使用法
pythonを実行するメソッドを終了します
pythonでのrbの意味を理解する
Pythonはスタックの構造を実装できますか?
pythonインタラクティブモードの基本を学ぶ
pythonの必須パラメーターは何ですか
Pythonは2つのスレッドの代替実行を実装します
pythonの下部にあるロジスティック回帰
Python3クローラーでのAjaxの使用
pythonの複数のバージョンの競合を解決します
python変数の範囲は何ですか
Pythonの基礎を学ぶ2日間
pythonのid関数は何ですか
Pythonの基本的な実際の戦闘-年齢ゲームを推測する
python3のピップパスはどこにありますか
Python言語の本質:Itertoolsライブラリ
pythonは勾配メソッドを実装しますpython最速の降下メソッド
python言語の利点は何ですか
pythonインスタンス化オブジェクトの特定のメソッド
python3はマスク描画の機能を実現します
python開発の見通しは何ですか