Pygameでオセロゲームを作成する方法をソースコード付きで詳しく解説します。
【1】オセロゲーム(敵CPUなし)
Pygameでオセロゲームを作成する方法を解説します。 まず、オセロゲームの動作を理解するために、敵CPUなし(白側と黒側は人が操作)のものから紹介します。
動画解説版
本ページの内容は以下動画でも解説しています。
【1-1】サンプルコード①
【1-2】サンプルコード①の解説
上記コードの各部分について解説します。
1. インポートと定数の定義
import pygame
import sys
# 定数の定義
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 128, 0)
YELLOW = (255, 155, 0)
SIZE = 600
BOARD_SIZE = 12
GRID_SIZE = SIZE // BOARD_SIZE
- pygameとsysモジュールをインポートします。
- BLACK、WHITE、GREEN、YELLOWは色をRGB形式で定義しています。
- SIZEは画面サイズ、BOARD_SIZEはボードのマス目の数です。
- GRID_SIZEは各マスのサイズで、「画面サイズ」を「ボードのマス目の数」で割ることで計算しています。
2. Pygameの初期化とウィンドウ設定
pygame.init()
screen = pygame.display.set_mode((SIZE, SIZE))
pygame.display.set_caption("オセロゲーム")
- pygame.init()でPygameを初期化します。
- pygame.display.set_modeでウィンドウサイズを設定し、pygame.display.set_captionでウィンドウのタイトルを設定します。
Othelloクラスの定義
class Othello:
def __init__(self):
self.board = [[None] * BOARD_SIZE for _ in range(BOARD_SIZE)]
mid = BOARD_SIZE // 2
self.board[mid - 1][mid - 1] = WHITE
self.board[mid - 1][mid] = BLACK
self.board[mid][mid - 1] = BLACK
self.board[mid][mid] = WHITE
self.turn = BLACK
- Othelloクラスを定義し、初期化メソッドでボードを初期化します。つまり、ゲームの初期状態を設定し、ゲームを開始する準備を整えています。
self.boardは、オセロのゲームボードを表す2次元リストです。BOARD_SIZEはボードのサイズ(例えば、8×8や12×12)を示します。BOARD_SIZExBOARD_SIZEのボードを作成し、すべてのマスをNoneで初期化しています。Noneは、そのマスにまだ石が置かれていないことを示します。midはボードの中央の位置を計算しています。BOARD_SIZEを2で割り、中央のインデックスを求めます。例えば、BOARD_SIZEが8の場合、midは4になります。- オセロゲームの初期配置(中央の4つのマスに、白と黒の石を交互に配置)をしています。
self.board[mid - 1][mid - 1] = WHITE: 左上に白の石を配置。self.board[mid - 1][mid] = BLACK: 右上に黒の石を配置。self.board[mid][mid - 1] = BLACK: 左下に黒の石を配置。self.board[mid][mid] = WHITE: 右下に白の石を配置。
- self.turnは現在のターンを示し、ゲームは黒の石から始まるため、
self.turnをBLACKに設定しています。

コメント