From f6133b4e012d86fb28429a0874fd48a050fa4347 Mon Sep 17 00:00:00 2001 From: pb9np84yq <3293433561@qq.com> Date: Mon, 27 Apr 2026 11:45:58 +0800 Subject: [PATCH] ADD file via upload --- 跑团爽.cpp | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 跑团爽.cpp diff --git a/跑团爽.cpp b/跑团爽.cpp new file mode 100644 index 0000000..ed39cc7 --- /dev/null +++ b/跑团爽.cpp @@ -0,0 +1,125 @@ +#include +#include +#include + +int main() +{ + // 四维属性 + int wit = 0; // 智慧 + int look = 0; // 外貌 + int mind = 0; // 精神 + int pow = 0; // 体能 + + int point = 160; // 总可用点数 + int dice; // 0~100骰子 + char choose; + + // 随机数种子(必须加,骰子才会每次不一样) + srand((unsigned)time(NULL)); + + printf("===== 跑团属性加点系统 =====\n"); + printf("规则:总点数160,自由分配 智慧/外貌/精神/体能\n"); + + // ---- 点数分配环节 ---- + while(point > 0) + { + printf("\n剩余可分配点数:%d\n", point); + printf("A.加点智慧 当前:%d\n", wit); + printf("B.加点外貌 当前:%d\n", look); + printf("C.加点精神 当前:%d\n", mind); + printf("D.加点体能 当前:%d\n", pow); + printf("请输入选项:"); + + scanf(" %c", &choose); + int add; + printf("输入要加的点数:"); + scanf("%d", &add); + + if(add <= 0 || add > point) + { + printf("点数输入非法!\n"); + continue; + } + + switch(choose) + { + case 'A': + case 'a': wit += add; break; + case 'B': + case 'b': look += add; break; + case 'C': + case 'c': mind += add; break; + case 'D': + case 'd': pow += add; break; + default: printf("无效选项!\n"); add = 0; break; + } + point -= add; + } + + printf("\n===== 加点完成!最终属性 =====\n"); + printf("智慧:%d\n", wit); + printf("外貌:%d\n", look); + printf("精神:%d\n", mind); + printf("体能:%d\n", pow); + + // ---- 判定掷骰环节 ---- + while(1) + { + printf("\n===== 技能判定 =====\n"); + printf("A.智慧判定\n"); + printf("B.外貌判定\n"); + printf("C.精神判定\n"); + printf("D.体能判定\n"); + printf("Q.退出程序\n"); + printf("选择需要判定的属性:"); + scanf(" %c", &choose); // 前面有空格,自动吃掉回车! + + int checkValue = 0; + if(choose == 'Q' || choose == 'q') + { + printf("程序结束\n"); + break; + } + + // 赋值对应判定值 + switch(choose) + { + case 'A': case 'a': checkValue = wit; break; + case 'B': case 'b': checkValue = look; break; + case 'C': case 'c': checkValue = mind; break; + case 'D': case 'd': checkValue = pow; break; + default: + printf("输入错误!\n"); + continue; + } + + // 生成 0~100 随机数 + dice = rand() % 101; + printf("🎲 投掷骰子:%d | 判定临界值:%d\n", dice, checkValue); + + // 严格按照你定的规则判定 + if(dice == 0) + { + printf("【🌟 大成功】\n"); + } + else if(dice > 0 && dice < checkValue) + { + printf("【✅ 成功】\n"); + } + else if(dice == checkValue) + { + printf("【⚠️ 勉强成功】\n"); + } + else if(dice > checkValue && dice < 100) + { + printf("【❌ 失败】\n"); + } + else if(dice == 100) + { + printf("【💀 大失败】\n"); + } + } + + return 0; +} +//我是想初始会有:智慧 外貌 精神 体能四个维度 然后由玩家分配点数(点数共160)点数越多在接下来的成功判定的成功概率就越大 比如智慧是60 骰到60以下就成功 0是大成功 临界值(如这里的60)是勉强成功 介于这两者之间是成功 临界值往后是失败 且100是大失败 我还需要一个骰子帮我随机生成0到100(包括0和100)的随机数 帮我进行判定