Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

reversi-minimax-alphabeta

使用 Python + pygame 自动生成一盘黑白棋(Reversi/Othello)对局。双方都由 minimax 决策,并使用 alpha-beta 剪枝加速搜索。默认搜索深度为 10。

程序不会弹出游戏窗口,会直接把每一步棋盘保存成 jpg 图片:

games/
  001/
    001.jpg
    002.jpg
    003.jpg
    ...

再次运行会自动创建下一局目录,例如 games/002games/003

安装依赖

pip install pygame

运行

python main.py

默认参数:

  • 搜索深度:6
  • 图片尺寸:900x900
  • 保存目录:games
  • 生成盘数:1

也可以手动指定:

python main.py --depth 10 --size 900 --games-dir games

一次生成三盘:

python main.py --games 3

这会连续生成三局,不展示棋盘窗口,只写入图片文件。目录会自动递增,例如已有 games/001 时,新运行会从 games/002 开始继续保存。

运行完成后,终端会输出保存了多少张图片,以及最终比分。

实现说明

main.py 中包含中文注释。AI 决策使用 minimax,并在搜索过程中做 alpha-beta 剪枝;同时加入局面缓存(置换表),避免同一盘棋搜索时重复计算已经评估过的局面。

添加图片到 README

生成对局图片后,可以运行:

python add_image_to_readme.py

脚本会动态读取 games 里的前三个对局目录,并把图片写入下面的自动生成区域。

三次 Test

Test 1

Game 001 Frame 001

Game 001 Frame 002

Game 001 Frame 003

Game 001 Frame 004

Game 001 Frame 005

Game 001 Frame 006

Game 001 Frame 007

Game 001 Frame 008

Game 001 Frame 009

Game 001 Frame 010

Game 001 Frame 011

Game 001 Frame 012

Game 001 Frame 013

Game 001 Frame 014

Game 001 Frame 015

Game 001 Frame 016

Game 001 Frame 017

Game 001 Frame 018

Game 001 Frame 019

Game 001 Frame 020

Game 001 Frame 021

Game 001 Frame 022

Game 001 Frame 023

Game 001 Frame 024

Game 001 Frame 025

Game 001 Frame 026

Game 001 Frame 027

Game 001 Frame 028

Game 001 Frame 029

Game 001 Frame 030

Game 001 Frame 031

Game 001 Frame 032

Game 001 Frame 033

Game 001 Frame 034

Game 001 Frame 035

Game 001 Frame 036

Game 001 Frame 037

Game 001 Frame 038

Game 001 Frame 039

Game 001 Frame 040

Game 001 Frame 041

Game 001 Frame 042

Game 001 Frame 043

Game 001 Frame 044

Game 001 Frame 045

Game 001 Frame 046

Game 001 Frame 047

Game 001 Frame 048

Game 001 Frame 049

Game 001 Frame 050

Game 001 Frame 051

Game 001 Frame 052

Game 001 Frame 053

Game 001 Frame 054

Game 001 Frame 055

Game 001 Frame 056

Game 001 Frame 057

Game 001 Frame 058

Game 001 Frame 059

Game 001 Frame 060

Game 001 Frame 061

Test 2

Game 002 Frame 001

Game 002 Frame 002

Game 002 Frame 003

Game 002 Frame 004

Game 002 Frame 005

Game 002 Frame 006

Game 002 Frame 007

Game 002 Frame 008

Game 002 Frame 009

Game 002 Frame 010

Game 002 Frame 011

Game 002 Frame 012

Game 002 Frame 013

Game 002 Frame 014

Game 002 Frame 015

Game 002 Frame 016

Game 002 Frame 017

Game 002 Frame 018

Game 002 Frame 019

Game 002 Frame 020

Game 002 Frame 021

Game 002 Frame 022

Game 002 Frame 023

Game 002 Frame 024

Game 002 Frame 025

Game 002 Frame 026

Game 002 Frame 027

Game 002 Frame 028

Game 002 Frame 029

Game 002 Frame 030

Game 002 Frame 031

Game 002 Frame 032

Game 002 Frame 033

Game 002 Frame 034

Game 002 Frame 035

Game 002 Frame 036

Game 002 Frame 037

Game 002 Frame 038

Game 002 Frame 039

Game 002 Frame 040

Game 002 Frame 041

Game 002 Frame 042

Game 002 Frame 043

Game 002 Frame 044

Game 002 Frame 045

Game 002 Frame 046

Game 002 Frame 047

Game 002 Frame 048

Game 002 Frame 049

Game 002 Frame 050

Game 002 Frame 051

Game 002 Frame 052

Game 002 Frame 053

Game 002 Frame 054

Game 002 Frame 055

Game 002 Frame 056

Game 002 Frame 057

Game 002 Frame 058

Game 002 Frame 059

Game 002 Frame 060

Game 002 Frame 061

Test 3

Game 003 Frame 001

Game 003 Frame 002

Game 003 Frame 003

Game 003 Frame 004

Game 003 Frame 005

Game 003 Frame 006

Game 003 Frame 007

Game 003 Frame 008

Game 003 Frame 009

Game 003 Frame 010

Game 003 Frame 011

Game 003 Frame 012

Game 003 Frame 013

Game 003 Frame 014

Game 003 Frame 015

Game 003 Frame 016

Game 003 Frame 017

Game 003 Frame 018

Game 003 Frame 019

Game 003 Frame 020

Game 003 Frame 021

Game 003 Frame 022

Game 003 Frame 023

Game 003 Frame 024

Game 003 Frame 025

Game 003 Frame 026

Game 003 Frame 027

Game 003 Frame 028

Game 003 Frame 029

Game 003 Frame 030

Game 003 Frame 031

Game 003 Frame 032

Game 003 Frame 033

Game 003 Frame 034

Game 003 Frame 035

Game 003 Frame 036

Game 003 Frame 037

Game 003 Frame 038

Game 003 Frame 039

Game 003 Frame 040

Game 003 Frame 041

Game 003 Frame 042

Game 003 Frame 043

Game 003 Frame 044

Game 003 Frame 045

Game 003 Frame 046

Game 003 Frame 047

Game 003 Frame 048

Game 003 Frame 049

Game 003 Frame 050

Game 003 Frame 051

Game 003 Frame 052

Game 003 Frame 053

Game 003 Frame 054

Game 003 Frame 055

Game 003 Frame 056

Game 003 Frame 057

Game 003 Frame 058

Game 003 Frame 059

Game 003 Frame 060

Game 003 Frame 061

About

Automated Reversi engine using minimax and alpha-beta pruning, with full-game rendering and move-by-move board visualization.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages