我们今天就要用类实现一个简单的抽卡小游戏。
说到抽卡,大家第一反应应该就是SSR,这就涉及到了爆率的问题,很自然的就联想到我们不久前才学到的rand函数。
聪明的孩子估计已经大概知道该怎么做了,无非就是用rand进行随机抽卡,然后用cout输出结果。
确实!但是有点不同的是,我们这次用到了类与对象,如果不太记得类与对象的知识,建议自行查阅相关资料,不过我们这里写的都是相当相当相当基础和简单的代码,估计不需要专门查资料也能看懂呢!(自豪)
首先就是类的构造函数,至于类名,我们就叫拼音的chouka:
class chouka{
public:
chouka();
private:
int money;
}
首先我们把构造函数写出来,并且定义一个私有的变量money,以避免不正确的访问导致money被乱动。
构造函数定义如下:
chouka::chouka()
{
money=100;
}
我们把money的初始值定为100,我们目前暂时用不到动态内存,所以析构函数可以省略。那接下来就是用于抽卡的函数了。
我们可以用if…else判断抽到的是什么卡:
void chouka::chou()
{
cout <<"你的抽卡结果是:";
money -=10;
int i=rand()%100;
if(i<10)
{
SSR++;
cout <<"SSR!!"<< endl;
}
else if(i<30)
{
SR++;
cout <<"SR!"<< endl;
}
else
{
R++;
cout <<"R..."<< endl;
}
}
我们定义一个变量i,随机生成0~100的数,再假定SSR的概率为10/100,SR的概率为30/100,保底是R。需要注意的是,我们发现SSR++,SR++,R++这三个是我们应该提前定义的变量。而这三个变量所代表的就是我们所拥有不同等级的卡片数量,所以在类的定义当中应该包含这三个变量,并且对其进行初始化为0的操作。
有了抽卡程序,接下来我们就需要检查自己抽卡的结果,于是需要一个专门用于输出的函数:
void chouka::print()
{
cout <<"=========仓库========="<< endl;
cout <<"你现在拥有SSR:"<<SSR<< endl;
cout <<"你现在拥有SR:"<<SR<< endl;
cout <<"你现在拥有R:"<<R<< endl;
cout <<"你现在拥有金钱:"<<money<< endl;
cout <<"======================"<< endl;
}
接下来,我们就需要一个菜单,用于选择进行抽卡还是查看结果的操作了:
void chouka::menu()
{
int n=1,order;
while(n)
{
system("cls");
cout <<"======抽卡小游戏======"<< endl;
cout <<"输入1 : 进行抽卡"<< endl;
cout <<"输入2 : 查看仓库"<< endl;
cout <<"输入3 : 退出游戏"<< endl;
cout <<"======================"<< endl;
cout <<"请输入你的选择:";
cin >> order;
switch(order)
{
case 1 :
system("cls");
chou();
system("pause");
break;
case 2 :
system("cls");
print();
system("pause");
break;
case 3 :
n=0;
break;
}
}
}
这样,抽卡小游戏基本就完成了,至于主函数如何编写就很简单了,只需要建立一个chouka类的对象,然后调用menu函数就完事了。
明天还会加更多功能,比如money这个变量如何使用,可以选择卖卡换钱,如果money为0游戏结束,还可以自定义SSR的爆率等。相信聪明的大家可以把这个抽卡小游戏自己实现出来,明天会把我实现的代码发在文章最后。