Skip to content

KeioAIConsortium/aic_reversi

Repository files navigation

aic_reversi

1. 環境構築

uvのインストール

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

プログラムのダウンロード

git clone https://github.com/KeioAIConsortium/aic_reversi.git
cd aic_reversi

2. Reversiアプリの起動

uv run python main.py
  • 何も表示されない場合:Pythonのversionがtkinterに対応していることを確認してください.対応していない場合は画面が表示されません.

3. アルゴリズムの実装

vs_human.pyを開き,cpu_algorithm関数を編集してください.

def cpu_algorithm(board, player_num):
    valid_moves = []  # 置けるマスかを格納するリスト
    for x in range(1, 9):  # 1行ずつ走査
        for y in range(1, 9):  # 1列ずつ走査
            if ReversiGUI.validate_reversible(
                board, player_num, x, y
            ):  # その(x,y)座標に石を置けるか判定
                valid_moves.append((x, y))  # 置けるマスとしてリストに追加
    if valid_moves != []:  # 置けるマスがある場合
        return valid_moves[0]
    return valid_moves

4. 過去モデルとの対戦

vs_bestmodel.pyを使用して過去のモデルと対戦できます. cpu_algorithm関数に自分のアルゴリズムを実装してください. 対戦相手のモデルは,以下(3行目)を変えることで変更できます.

from models.spring_2025.best_algorism import cpu_move  # 過去の優勝モデルを使用

実行

uv run python vs_bestmodel.py

5. 様々な強さのモデルとの対戦

vs_models.pyを使用して様々な強さのモデルと対戦できます. cpu_algorithm関数に自分のアルゴリズムを実装してください. 対戦相手のモデルは,以下の部分を変えることで変更できます.

# opponent = cpu_lv0.cpu_lv0  # ランダム
opponent = cpu_lv1.cpu_lv1  # 最も多くの石をひっくり返せる手を選ぶ
# opponent = cpu_lv2.cpu_lv2  # コーナー優先戦略
# opponent = cpu_lv3.cpu_lv3  # 位置の重み付けに基づいて手を選ぶ
# opponent = cpu_lv4.cpu_lv4  # 以前の授業での最強モデル
# opponent = cpu_lv5.cpu_lv5  # αβ法で最善手を選ぶモデル

実行

uv run python vs_models.py

6. オンライン対戦

online_battle.pyを使用してオンラインで対戦できます. cpu_algorithm関数に自分のアルゴリズムを実装してください. is_firstTrueにすると先手,Falseにすると後手になります.

実行

python online_battle.py

🏆 過去の大会

🌸 spring_2025

高校三年生を対象としたPython初級講座. CPUを実装し対戦ゲームを実施. 👏 team aが優勝 👏

🍧 aicdays_2025

  • Python初級

    一貫校の中高生を対象にしたPython初級講座.モジュール化されたコードを用いてCPUを実装.

  • GAS中上級(GAS×Python)

    一貫校の中高生を対象にしたGAS中上級講座.GASを使ってreversiを通信対戦可能に実装.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages