#include<iostream>
#include<string>
#include"time.h"
using namespace std;
int FindD(string a);
void roll(int NumOfDice,int NumOfSide);
int main()
{
string a,StrNumSide,StrNumDice;
cout<<"直接输入要roll的类型(如'2d10'),如果需要连续roll点,请用空格分隔"<<endl<<"退出请输入x"<<endl;
srand(time(NULL));
while(cin>>a&&a[0]!='x')
{
int i=FindD(a);
if (i!=0)
{
StrNumDice.assign(a,0,i);
int INumDice=atoi(StrNumDice.c_str());
StrNumSide.assign(a,i+1,a.size());
int INumSide=atoi(StrNumSide.c_str());
if(INumSide!=0)
{
cout<<"你要投"<<INumDice<<"个"<<INumSide<<"面色,结果是:";
roll(INumDice,INumSide);
}
else cout<<"二货!你给小爷找个0面的色字来!!baga baga~~~"<<endl;
}
else cout<<"你个二货!必须有'd'"<<endl;
}
return 0;
}
int FindD(string a)//用来找分隔符d
{
for(int i=0;i<=a.size();)
{
if(a[i]!='d') i++;
else return i;
}
return 0;
}
void roll(int NumOfDice,int NumOfSide)//roll点用
{
int result=0;
for(int i=0;i<NumOfDice;i++)
{
result=result+(rand()%NumOfSide+1);
}
cout<<result<<endl;
}
这是一个使用C++编写的程序,用户可以输入要投掷的骰子数量和面数(如'2d10'),进行跑团游戏中的roll点操作。程序会根据输入连续roll点并显示结果,如果输入不合法则给出错误提示。
4930

被折叠的 条评论
为什么被折叠?



