2021-4-21 日记 C++(十)

我们今天就要用类实现一个简单的抽卡小游戏。

说到抽卡,大家第一反应应该就是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的爆率等。相信聪明的大家可以把这个抽卡小游戏自己实现出来,明天会把我实现的代码发在文章最后。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cyw要多学习

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值