refactor: 重构项目为纯GUI版本并清理冗余代码

- 移除控制台版本相关代码,包括game_mode、ui、init_board等模块
- 将empty_board函数移至gobang.c核心模块
- 简化main.c仅保留GUI启动逻辑
- 更新Makefile仅构建GUI版本
- 清理过时文档和配置文件
- 优化GUI菜单和游戏窗口交互逻辑
- 添加AI难度配置支持
This commit is contained in:
2026-03-17 16:57:27 +08:00
parent 0baab8bec6
commit dd2b6fd903
30 changed files with 295 additions and 3402 deletions
+14 -28
View File
@@ -1,5 +1,5 @@
# 五子棋游戏 Makefile
# 支持编译控制台版本和GUI版本 (IUP)
# 支持编译GUI版本 (IUP)
# 编译器设置
CC = gcc
@@ -22,35 +22,27 @@ OBJ_DIR = obj
BIN_DIR = bin
# 源文件
COMMON_SOURCES = $(SRC_DIR)/main.c $(SRC_DIR)/gobang.c $(SRC_DIR)/ai.c $(SRC_DIR)/config.c \
$(SRC_DIR)/game_mode.c $(SRC_DIR)/globals.c $(SRC_DIR)/init_board.c \
$(SRC_DIR)/network.c $(SRC_DIR)/record.c $(SRC_DIR)/ui.c $(SRC_DIR)/gui.c \
COMMON_SOURCES = $(SRC_DIR)/gobang.c $(SRC_DIR)/ai.c $(SRC_DIR)/config.c \
$(SRC_DIR)/globals.c \
$(SRC_DIR)/network.c $(SRC_DIR)/record.c $(SRC_DIR)/gui.c \
$(SRC_DIR)/gui_menu.c
GUI_SOURCES = $(COMMON_SOURCES)
CONSOLE_SOURCES = $(COMMON_SOURCES)
# 目标文件 (src/xxx.c -> obj/xxx.o)
COMMON_OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(COMMON_SOURCES))
# 可执行文件
CONSOLE_TARGET = $(BIN_DIR)/gobang_console.exe
GUI_TARGET = $(BIN_DIR)/gobang_gui.exe
# 默认目标
all: directories $(CONSOLE_TARGET) $(GUI_TARGET)
all: directories $(GUI_TARGET)
# 创建目录 (PowerShell 语法)
directories:
if (!(Test-Path "$(OBJ_DIR)")) { New-Item -ItemType Directory -Path "$(OBJ_DIR)" | Out-Null }
if (!(Test-Path "$(BIN_DIR)")) { New-Item -ItemType Directory -Path "$(BIN_DIR)" | Out-Null }
# 控制台版本
$(CONSOLE_TARGET): $(COMMON_OBJECTS)
$(CC) $(CFLAGS) $(IUP_INCLUDE) -o $@ $^ $(IUP_LIBS) $(LDFLAGS)
# GUI版本
$(GUI_TARGET): $(COMMON_OBJECTS)
$(GUI_TARGET): $(COMMON_OBJECTS) $(OBJ_DIR)/main.o
$(CC) $(CFLAGS) $(IUP_INCLUDE) -o $@ $^ $(IUP_LIBS) $(LDFLAGS)
Copy-Item -Path "$(subst /,\,$(IUP_PATH))\iup.dll" -Destination "$(BIN_DIR)" -Force
@@ -58,27 +50,23 @@ $(GUI_TARGET): $(COMMON_OBJECTS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) $(IUP_INCLUDE) -c -o $@ $<
# 编译 main.c
$(OBJ_DIR)/main.o: $(SRC_DIR)/main.c
$(CC) $(CFLAGS) $(IUP_INCLUDE) -c -o $@ $<
# 清理规则 (PowerShell 语法)
clean:
if (Test-Path "$(OBJ_DIR)") { Remove-Item -Path "$(OBJ_DIR)" -Recurse -Force }
if (Test-Path "$(BIN_DIR)") { Remove-Item -Path "$(BIN_DIR)" -Recurse -Force }
# 编译控制台版本
console: directories $(CONSOLE_TARGET)
# 只编译GUI版本
# 编译GUI版本
gui: directories $(GUI_TARGET)
# 安装规则(可选)
install: all
Write-Host "Installing executables..."
Copy-Item -Path "$(CONSOLE_TARGET)" -Destination "C:\Program Files\Gobang\" -Force
Copy-Item -Path "$(GUI_TARGET)" -Destination "C:\Program Files\Gobang\" -Force
# 运行控制台版本
run-console: $(CONSOLE_TARGET)
& ".\$(CONSOLE_TARGET)"
# 运行GUI版本
run-gui: $(GUI_TARGET)
& ".\$(GUI_TARGET)"
@@ -86,14 +74,12 @@ run-gui: $(GUI_TARGET)
# 帮助信息
help:
@echo Available targets:
@echo all - Build both console and GUI versions
@echo console - Build console version only
@echo gui - Build GUI version only
@echo all - Build GUI version
@echo gui - Build GUI version
@echo clean - Remove all object files and executables
@echo run-console - Build and run console version
@echo run-gui - Build and run GUI version
@echo install - Install executables to system directory
@echo help - Show this help message
# 声明伪目标
.PHONY: all clean console gui install run-console run-gui help directories
.PHONY: all clean gui install run-gui help directories