変数の初期化
使用する変数には、チェス盤の幅と高さ(異なるサイズのチェス盤を設計するために変更可能)、難易度レベル、チェスピースのサイズ、およびいくつかの座標変数の設定が含まれます。
fourinrow.py ファイルに、次のコードを入力します。
import random, copy, sys, pygame
from pygame.locals import *
BOARDWIDTH = 7 ## ゲーム盤の列数
BOARDHEIGHT = 6 ## ゲーム盤の行数
assert BOARDWIDTH >= 4 and BOARDHEIGHT >= 4, 'Board must be at least 4x4.'
## python の assert 文は、与えられたブール式が必ず真であることを宣言するために使用されます。
## 式が偽の場合、例外を発生させます。
DIFFICULTY = 2 ## 難易度レベル、コンピュータが考慮できる手数
## ここでは 2 は、相手の 7 通りの手を考慮し、それらの 7 通りの手にどのように対応するかを意味します
SPACESIZE = 50 ## チェスピースのサイズ
FPS = 30 ## 画面の更新レート、1 秒あたり 30 回
WINDOWWIDTH = 640 ## ゲーム画面の幅(ピクセル)
WINDOWHEIGHT = 480 ## ゲーム画面の高さ(ピクセル)
XMARGIN = int((WINDOWWIDTH - BOARDWIDTH * SPACESIZE) / 2) ## グリッドの左辺の X 座標
YMARGIN = int((WINDOWHEIGHT - BOARDHEIGHT * SPACESIZE) / 2) ## グリッドの上辺の Y 座標
BRIGHTBLUE = (0, 50, 255) ## 青い色
WHITE = (255, 255, 255) ## 白い色
BGCOLOR = BRIGHTBLUE
TEXTCOLOR = WHITE
RED = 'red'
BLACK = 'black'
EMPTY = None
HUMAN = 'human'
COMPUTER = 'computer'
また、pygame のいくつかのグローバル変数を定義する必要があります。これらのグローバル変数は、後でさまざまなモジュールで何度も呼び出されます。その多くは読み込まれた画像を格納する変数であるため、準備作業は少し時間がかかりますので、しばらくお待ちください。
## pygame モジュールを初期化する
pygame.init()
## Clock オブジェクトを作成する
FPSCLOCK = pygame.time.Clock()
## ゲームウィンドウを作成する
DISPLAYSURF = pygame.display.set_mode((WINDOWWIDTH, WINDOWHEIGHT))
## ゲームウィンドウのタイトルを設定する
pygame.display.set_caption(u'four in row')
## Rect(left, top, width, height) は、位置とサイズを定義するために使用されます
REDPILERECT = pygame.Rect(int(SPACESIZE / 2), WINDOWHEIGHT - int(3 * SPACESIZE / 2), SPACESIZE, SPACESIZE)
## ウィンドウの左下と右下にチェスピースを作成する
BLACKPILERECT = pygame.Rect(WINDOWWIDTH - int(3 * SPACESIZE / 2), WINDOWHEIGHT - int(3 * SPACESIZE / 2), SPACESIZE, SPACESIZE)
## 赤いチェスピースの画像を読み込む
REDTOKENIMG = pygame.image.load('images/4rowred.png')
## 赤いチェスピースの画像を SPACESIZE にスケールする
REDTOKENIMG = pygame.transform.smoothscale(REDTOKENIMG, (SPACESIZE, SPACESIZE))
## 黒いチェスピースの画像を読み込む
BLACKTOKENIMG = pygame.image.load('images/4rowblack.png')
## 黒いチェスピースの画像を SPACESIZE にスケールする
BLACKTOKENIMG = pygame.transform.smoothscale(BLACKTOKENIMG, (SPACESIZE, SPACESIZE))
## チェス盤の画像を読み込む
BOARDIMG = pygame.image.load('images/4rowboard.png')
## チェス盤の画像を SPACESIZE にスケールする
BOARDIMG = pygame.transform.smoothscale(BOARDIMG, (SPACESIZE, SPACESIZE))
## 人間の勝者の画像を読み込む
HUMANWINNERIMG = pygame.image.load('images/4rowhumanwinner.png')
## AI の勝者の画像を読み込む
COMPUTERWINNERIMG = pygame.image.load('images/4rowcomputerwinner.png')
## 引き分けの画像を読み込む
TIEWINNERIMG = pygame.image.load('images/4rowtie.png')
## Rect オブジェクトを返す
WINNERRECT = HUMANWINNERIMG.get_rect()
## 勝者の画像をゲームウィンドウの中央に配置する
WINNERRECT.center = (int(WINDOWWIDTH / 2), int(WINDOWHEIGHT / 2))
## ユーザー指示用の矢印画像を読み込む
ARROWIMG = pygame.image.load('images/4rowarrow.png')
## Rect オブジェクトを返す
ARROWRECT = ARROWIMG.get_rect()
## 矢印画像の左位置を設定する
ARROWRECT.left = REDPILERECT.right + 10
## 矢印画像をその下の赤いチェスピースと垂直に整列させる
ARROWRECT.centery = REDPILERECT.centery
このプロジェクトのコードをよりよく理解するために、完全なソリューションのコードと一緒に学習することをお勧めします。