【Pygame】オセロゲームを作成する方法

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_SIZE x BOARD_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.turnBLACKに設定しています。
記事の監修者
西住技研

プログラミング言語「Python」を研究、仕事、趣味でデータ分析や作業自動化などに活用してきたノウハウを情報発信しています。
筆者の詳しいプロフィールやお問合せはこちらのページまで。
YoutubeX(旧Twitter)でも情報発信中です!

西住技研をフォローする
PyGame

コメント