简单算法之丢手绢游戏/c++

本文介绍了一个简单的丢手绢游戏的C++实现。游戏规则是参与人员围成一圈,从1开始按顺时针报数,每报到3的倍数的人将退出游戏,直至剩下最后一个人成为胜者。代码示例展示了如何处理这一算法,适用于15人的游戏场景,当报数达到3的倍数时,参与者出局。
摘要由CSDN通过智能技术生成

游戏规则:参加丢手绢的人围成一个圈,从任意一个人开始(游戏中可以随意指定,但是算法中默认发起者为1),第一个人开始报数,随后按照规定时针方向开始进行,下一个继续报数(报数规则为:从1开始递增报数),如果参与者报数的大小为3的倍数则退出游戏,其他人继续游戏直至最后一个人。(游戏的娱乐性的体现在于随机的发起者和按照哪个数的倍数执行游戏,只要确定,算法就已经注定了赢家,获胜者只需慢慢等候(期待游戏可以正常进行,如果出现了bug,游戏的乐趣兴许又多了(改变游戏的固定规则,也是一种创新))。



实现代码如下(假设是15个人参加了游戏,报数者为3的倍数即刻出局):

/*
    算法核心分析:
        每当一个人报数后,并且他不退出时,他下次报出的数目等于他当前报出的数目加上还在进行游戏的人数.
*/

 #include <iostream>
 using std::endl;
 using std::cout;

 int* gamers;

 //展示每一轮开始之前的存活者和出局者,o代表存活者,x代表出局者
 void ShowLiveGamers(int* &arr, int len){
    for(int i = 0; i < len; i++){
        if(arr[i] != 0){
            cout<<(i+1)<<":o ";
        }
        else{
            cout<<(i+1)<<":x &#
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值