|
|
|
|
@ -0,0 +1,125 @@
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <time.h>
|
|
|
|
|
|
|
|
|
|
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)的随机数 帮我进行判定
|