#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdbool.h>
#include <string.h>
#include <unistd.h>
#define MAX_REGIONS 8
#define MAX_TURNS 30
#define INITIAL_POWER 50
#define INITIAL_GOLD 200
typedef struct {
char name[20];
int loyalty; // 忠诚度 (0-100)
int military; // 军事力量 (0-100)
展开剩余97%int economy; // 经济实力 (0-100)
int culture; // 文化影响力 (0-100)
int isPlayer; // 是否是玩家首都
} Region;
typedef struct {
Region regions[MAX_REGIONS];
int playerPower; // 玩家权力值
int playerGold; // 玩家黄金
int turn;
int rebelFaction; // 叛乱势力
int gameOver;
int gameWon;
} GameState;
// 初始化游戏
void initGame(GameState *game) {
// 初始化地区
strcpy(game->regions[0].name, "首都");
game->regions[0].loyalty = 100;
game->regions[0].military = 70;
game->regions[0].economy = 80;
game->regions[0].culture = 90;
game->regions[0].isPlayer = 1;sy-qp.com
strcpy(game->regions[1].name, "北方平原");
game->regions[1].loyalty = 60;
game->regions[1].military = 65;
game->regions[1].economy = 50;
game->regions[1].culture = 40;
game->regions[1].isPlayer = 0;
strcpy(game->regions[2].name, "东方海岸");
game->regions[2].loyalty = 55;
game->regions[2].military = 50;
game->regions[2].economy = 70;
game->regions[2].culture = 60;
game->regions[2].isPlayer = 0;
strcpy(game->regions[3].name, "南方群岛");
game->regions[3].loyalty = 45;
game->regions[3].military = 40;
game->regions[3].economy = 60;
game->regions[3].culture = 70;
game->regions[3].isPlayer = 0;
strcpy(game->regions[4].name, "西方山脉");
game->regions[4].loyalty = 50;
game->regions[4].military = 75;
game->regions[4].economy = 45;
game->regions[4].culture = 50;
game->regions[4].isPlayer = 0;
strcpy(game->regions[5].name, "中部森林");
game->regions[5].loyalty = 65;
game->regions[5].military = 55;
game->regions[5].economy = 55;
game->regions[5].culture = 55;
game->regions[5].isPlayer = 0;
strcpy(game->regions[6].name, "边境沙漠");
game->regions[6].loyalty = 40;
game->regions[6].military = 80;
game->regions[6].economy = 30;
game->regions[6].culture = 30;
game->regions[6].isPlayer = 0;
strcpy(game->regions[7].name, "河谷地带");
game->regions[7].loyalty = 70;
game->regions[7].military = 60;
game->regions[7].economy = 65;
game->regions[7].culture = 65;
game->regions[7].isPlayer = 0;
game->playerPower = INITIAL_POWER;
game->playerGold = INITIAL_GOLD;
game->turn = 1;
game->rebelFaction = 10;
game->gameOver = 0;
game->gameWon = 0;
srand(time(NULL));
}
// 显示游戏状态
void displayStatus(GameState *game) {
printf("\n=== 帝国棋手 - 第%d回合 ===\n", game->turn);
printf("当前权力值: %d\n", game->playerPower);
printf("当前黄金: %d\n", game->playerGold);
printf("叛乱势力: %d\n", game->rebelFaction);
printf("========================\n");
}
// 显示地区状态
void displayRegions(GameState *game) {
printf("\n帝国各地区状态:\n");
for (int i = 0; i < MAX_REGIONS; i++) {
printf("%s: 忠诚度 %d, 军事 %d, 经济 %d, 文化 %d",
game->regions[i].name,
game->regions[i].loyalty,
game->regions[i].military,
game->regions[i].economy,
game->regions[i].culture);
if (game->regions[i].isPlayer) {
printf(" (首都)");
}
printf("\n");
}
}
// 显示菜单
void displayMenu() {
printf("\n战略菜单:\n");
printf("1. 发展地区经济\n");
printf("2. 增强军事力量\n");
printf("3. 推广文化影响\n");
printf("4. 镇压叛乱\n");
printf("5. 外交斡旋\n");
printf("6. 查看帝国状态\n");
printf("7. 结束回合\n");
printf("8. 退出游戏\n");
printf("请选择: ");
}
// 发展地区经济
void developEconomy(GameState *game) {
int choice;
printf("\n可选择地区:\n");
for (int i = 0; i < MAX_REGIONS; i++) {
if (!game->regions[i].isPlayer) {
printf("%d. %s (经济: %d, 忠诚度: %d)\n",
i+1, game->regions[i].name,
game->regions[i].economy,
game->regions[i].loyalty);
}
}
printf("\n选择要发展的地区 (1-%d, 0返回): ", MAX_REGIONS-1);
scanf("%d", &choice);
getchar(); // 吸收回车
if (choice == 0) return;
if (choice < 1
Powered by ballbetl贝博网页版登录 RSS地图 HTML地图