Pythonは単にスネークゲームを実装します

記事ディレクトリ###

1. pygameライブラリの紹介###

PyPoiceは、SDLマルチメディアライブラリのPythonラッパーモジュールです。これには、SDLがCDROM、オーディオおよびビデオ出力、キーボード、マウス、およびジョイスティック入力をサポートできるようにするPython関数とクラスが含まれています。
Pygameは、SDLライブラリを使用して作成されたゲームライブラリであり、ゲームソフトウェアの開発に使用されるPythonプログラムモジュールのセットです。 Simple DirectMedia LayerのフルネームであるSDLはCで記述されていますが、C ++で開発することもできます。もちろん、他にも多くの言語があります。PygameはPythonで使用するライブラリです。 pygameを使用すると、Pythonプログラムで機能豊富なゲームやマルチメディアプログラムを作成できます。これは、複数のオペレーティングシステムをサポートできる、移植性の高いモジュールです。小さなゲームの開発に非常に適しています。

2. pygameライブラリのインストール###

コマンドラインピップのインストール、国内ソースの変更

pip install pygame -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

3. 貪欲なヘビゲームを実現するためのPythonコード###

pythonのpygameサードパーティライブラリとオブジェクト指向のプログラミングメソッドを使用して、単純なスネークゲームを実装します。また、pyinstallerを使用してexeにパッケージ化して、プレイしたいときに開いたり、他の人と共有したりすることもできます。

import pygame
import sys
import random
from pygame.locals import*classSnake(object):

 # ヘビと果物の背景と色を作る,0-255,0,0,0,黒用、255、255、255白用
 def __init__(self):
  self.black = pygame.Color(0,0,0)
  self.red = pygame.Color(255,0,0)
  self.white = pygame.Color(255,255,255)

 def gameover(self):
  pygame.quit()
  sys.exit()

 def initialize(self):
  pygame.init()
  # ヘビの動きの速度を定義する
  clock = pygame.time.Clock()
  # ゲームインターフェイスを定義する
  playSurface = pygame.display.set_mode((800,600))
  # インターフェイス名を設定する
  pygame.display.set_caption('パイソン貪欲なヘビゲーム')
  # 変数を初期化する
  snakePosition =[80,80]  #貪欲なヘビの開始位置、最初のパラメータは水平方向の距離、後者のパラメータは垂直方向の距離です
  # 蛇の長さは300マスに設定されており、各マスの長さは25です。
  snakebody =[[80,80],[60,80],[40,80]]
  targetPosition =[200,400]  #ブロックの初期位置
  targetflag =1       #果物が食べられたかどうかを判断するためのマークを定義します
  direction ='right'  #移動方向を初期化する
  changeDirection = direction  #方向変数を変更します
  self.main(snakebody, targetPosition, targetflag, direction, changeDirection, snakePosition, playSurface, clock)

 def main(self, snakebody, targetPosition, targetflag, direction, changeDirection, snakePosition, playSurface, clock):while True:
   # ループを使用して、pygameのすべてのイベントを取得します
   for event in pygame.event.get():if event.type == QUIT:
     pygame.quit()
     sys.exit()
    # キーボードイベントを作成する
    elif event.type == KEYDOWN:
     # キーボードの方向を決定します
     if event.key == K_RIGHT:
      changeDirection ='right'print('右の方へ')if event.key == K_LEFT:
      changeDirection ='left'print("左")if event.key == K_DOWN:print('ダウン')
      changeDirection ='down'if event.key == K_UP:print('アップ')
      changeDirection ='up'
     # escキーが押されているかどうかを確認します
     if event.key == K_ESCAPE:
      pygame.event.post(pygame.event.Event(QUIT))

   # ヘビの方向を決定します
   if changeDirection =='left' and not direction =='right':
    direction = changeDirection
   if changeDirection =='right' and not direction =='left':
    direction = changeDirection
   if changeDirection =='down' and not direction =='up':
    direction = changeDirection
   if changeDirection =='up' and not direction =='down':
    direction = changeDirection
   # 方向に従ってスネークヘッドの位置を移動します
   if direction =='right':
    snakePosition[0]+=20if direction =='left':
    snakePosition[0]-=20if direction =='up':
    snakePosition[1]-=20if direction =='down':
    snakePosition[1]+=20

   # ヘビの長さを増やす
   # ヘビが果物を食べたかどうかを判断する
   snakebody.insert(0,list(snakePosition))if snakePosition[0]== targetPosition[0] and snakePosition[1]== targetPosition[1]:
    targetflag =0else:
    snakebody.pop()
   # 新しい正方形をランダムに生成します
   if targetflag ==0:
    x = random.randrange(1,40)  #水平方向
    y = random.randrange(1,30)  #垂直方向
    targetPosition =[int(x *20),int(y *20)]
    targetflag =1
   # ディスプレイを描く
   playSurface.fill(self.black)  #バックグラウンド
   for position in snakebody:
    pygame.draw.rect(playSurface, self.white,Rect(position[0], position[1],20,20))  #スネークボディ
    pygame.draw.rect(playSurface, self.red,Rect(targetPosition[0], targetPosition[1],20,20))  #フルーツ
   # ゲームオーバー
   pygame.display.flip()if snakePosition[0]>900 or snakePosition[0]<0:
    snake.gameover()
   elif snakePosition[1]>800 or snakePosition[1]<0:
    snake.gameover()for i in snakebody[1:]:if snakePosition[0]== i[0] and snakePosition[1]== i[1]:
     snake.gameover()

   # ゲームの速度を制御します。値が大きいほど、速度が速くなります。
   clock.tick(5)

snake =Snake()
snake.initialize()

4. pyinstallerはexe ###にパッケージ化されています

PyInstallerは、Windows / Linux / MacOSの3つの主流プラットフォームをサポートするクロスプラットフォームのPythonアプリケーションパッケージツールです。PythonスクリプトとそのPythonインタープリターを実行可能ファイルにパッケージ化できるため、エンドユーザーはPythonをインストールしなくてもPythonをインストールできます。アプリケーションを実行します。

pyinstallerのインストール

pip install pyinstaller -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

pyinstallerパッケージpythonプログラム
PyInstallerの最も簡単な使用法は、プログラムエントリとしてスクリプトファイルを指定するだけです。 PyInstallerがパッケージングプログラムを実行すると、次のファイルとディレクトリが現在のディレクトリに作成されます:main.specファイル、そのプレフィックスはスクリプト名と同じであり、パッケージングに必要なさまざまなパラメータを指定します;ビルドサブディレクトリ、パッケージング中に生成されたファイルを保存します一時ファイル。 warnxxxx.txtファイルは、生成プロセス中の警告/エラー情報を記録します。 PyInstallerの実行に問題がある場合は、warnxxxx.txtファイルをチェックしてエラーの詳細を取得する必要があります。 xref-xxxx.htmlファイルは、PyInstaller分析スクリプトによって取得されたモジュール依存関係グラフを出力します。 distサブディレクトリには、生成された最終ファイルが格納されます。シングルファイルモードを使用する場合、実行可能ファイルは1つだけになります。ディレクトリモードを使用する場合、スクリプトと同じ名前のサブディレクトリがあり、実際の実行可能ファイルと補助ファイルがあります。

コマンドラインに次のコードを入力します。

pyinstaller -F -iアイコンファイルパス.pyファイルパス

distフォルダー内のアイコンでexeプログラムを見つけ、ダブルクリックして実行し、正常に実行されたらゲームに入り、パッケージングプログラムが成功したことを示します。

Recommended Posts

Pythonは単にスネークゲームを実装します
Pythonは実店舗のゲームを実装しています
Pythonはスネークゲームのソースコードを実装しています
python3は単に結合された設計パターンを実装します
Pythonはtic-tac-toeゲームを実装しています
PythonはTetrisゲームを実装しています
Pythonはminesweeperゲームを実装しています
Pythonは推測ゲームを実装しています
pythonはゲームという言葉を推測します
PythonはWeChat飛行機ゲームを実装しています
Pythonは単語推測ゲームを実装しています
Pythonは推測ゲームを実装しています
Pythonはデジタル爆弾ゲームを実装しています
Pythonは推測ゲームを実現します
Pythonは単純なtic-tac-toeゲームを実装しています
Pythonがメール機能を実装する方法
Python3はシングルトンデザインパターンを実装しています
Pythonは最も急な降下方法を実装します
Pythonは実際の銀行システムを実装しています
Pythonはデジタル爆弾ゲームプログラムを実装しています
Pythonがタイマー機能を実装する方法
Pythonは航空機戦争プロジェクトを実装します
PythonはTowerofHanoiゲームを解決します
Pythonは分数シーケンスの合計を実装します
Pythonの基本的な実際の戦闘-年齢ゲームを推測する
pythonは勾配メソッドを実装しますpython最速の降下メソッド
Pythonは貪欲なヘビの二重の戦いを実現します
PythonはAI自動バージョンの貪欲なヘビを実装しています
2.1 Pythonインタープリター(pythonインタープリター)
PythonはDoudizhuでカードのシャッフルを実装します
Pythonは釣りマスターのゲーム実装を書きます
パイソンを使って航空機戦争ゲームを実現する
Pythonはスーパーマリオを実装しています
Pythonでタンクバトルゲームを実現|ドライポスト
Pythonはマンマシンゴバンを実装します
Python、PyGameゲームプロジェクト
Pythonは画像スティッチングを実装しています
Pythonはスキャンツールを実装しています
Pythonの基盤を統合する(2)
Pythonはしきい値回帰を実装します
Pythonは地雷除去ゲームを実装しています
Pythonは電子辞書を実装しています
Pythonでタンクバトルゲームを実現|ドライポスト
Pythonの基盤を統合する(4)
Pythonは単純なタンクバトルを実装します
Python3は飛行機戦争ゲームを実現します
Pythonはudpチャットウィンドウを実装します
Python(6)の基盤を統合する
Ubuntuは最新のPython3をインストールします。
Pythonは駐車場管理システムを実現
Pythonはリンゴを食べるゲームを実現します
PythonはTCPファイル転送を実装します
Python拡張機能の違い
Pythonnumpyはローリングケースを実装します
OpenCVPythonはパズルゲームを実装しています
Python(5)の基盤を統合する
Pythonはパスワード強度検証を実装します
Pythonは車の管理システムを実装しています
Pythonはコードブロックフォールディングを実装します
Pythonはパノラマ画像スティッチングを実装しています
PythonはSMTPメール送信を実装します