맥락:
- classic 게임을 사람이 플레이할 수 있도록 레거시 pygame GUI를 가져온다.
- 현재 GUI는 Python backend와 registry bot만 지원하고 Rust backend와 학습 checkpoint 로딩은 제외한다.
변경:
- pygame_pvp.py를 classic 패키지에 이식하고 tier, backend 선택, Deep CFR checkpoint 옵션을 제거했다.
- lost-cities-classic-gui 엔트리포인트와 README 실행 안내를 추가했다.
- GUI argparse smoke 테스트를 추가했다.
확인:
- uv run pre-commit run --all-files
- uv run pytest tests/games/classic
- uv run lost-cities-classic-gui --help
- SDL_VIDEODRIVER=dummy SDL_AUDIODRIVER=dummy uv run python - <<'PY'
from coolrl_lost_cities.games.classic.pygame_pvp import LostCitiesGuiApp
app = LostCitiesGuiApp(mode='pvc', bot_name='random', seed=1, width=1024, height=768)
app.draw()
app.pygame.quit()
print('gui init ok')
PY
57 lines
1.2 KiB
TOML
57 lines
1.2 KiB
TOML
[project]
|
|
name = "coolrl-lost-cities"
|
|
version = "0.1.0"
|
|
description = "Focused Lost Cities classic game extraction"
|
|
readme = "README.md"
|
|
authors = [
|
|
{ name = "정시원", email = "sebastianrcnt@gmail.com" }
|
|
]
|
|
requires-python = ">=3.11"
|
|
dependencies = [
|
|
"numpy>=1.26.0",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
gui = [
|
|
"pygame>=2.6.1",
|
|
"pygame-gui>=0.6.14",
|
|
]
|
|
|
|
[project.scripts]
|
|
lost-cities-classic = "coolrl_lost_cities.games.classic:main"
|
|
lost-cities-classic-gui = "coolrl_lost_cities.games.classic.pygame_pvp:main"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"cython>=3.0",
|
|
"pre-commit>=4.0.0",
|
|
"pytest>=9.0.3",
|
|
"ruff>=0.8.0",
|
|
]
|
|
|
|
[build-system]
|
|
requires = ["setuptools>=69", "wheel", "Cython>=3.0", "numpy>=1.26.0"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
include = ["coolrl_lost_cities*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
"coolrl_lost_cities.games.classic" = [
|
|
"assets/*.json",
|
|
"fixtures/*.json",
|
|
"docs/*.md",
|
|
]
|
|
|
|
[tool.ruff]
|
|
line-length = 100
|
|
target-version = "py311"
|
|
extend-exclude = [
|
|
"src/coolrl_lost_cities/games/classic/game.pyx",
|
|
]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I", "UP", "B"]
|
|
ignore = ["E501"]
|