引入

相信大家都玩过斗兽棋,其规则是大动物能吃掉小动物,但最小的动物又能吃掉最大的动物,形成一个生物链闭环。
日常生活中形如这样的情形还有游戏中的属性克制、石头剪刀布等。
实际运用中我们需要对这些情形做出判断,得到结果。

基本思路

假设有四个A、B、C三个对象,A吃B,B吃C,C吃D,D吃A,对象容量为4。
将三者转换成数字,A→0,B→1,C→2,D→3。
可以发现
①(0 + 1)% 4 == 1 得数与B相等,说明A可以吃B
②(3 + 1)% 4 == 0 得数与A相等,说明D可以吃A
符合大吃小,最小吃最大的规律

模板

n个对象,按从大到小的顺序排好,并对这些对象从0n-1分别赋予意义(可以用函数返回值的方法)。
对于最大和最小,用if((a + 1) % 容量 == b)判断,如果结果为真,则说明a可以吃b。其他对象结合普通大小规则判断即可

代码实现

以斗兽棋为例

#include <iostream>
using namespace std;
//有象、虎、猫、鼠四种动物,象吃虎、猫;虎吃猫、鼠;猫吃鼠;鼠吃象
int zhao(string a){if(a == "elephant") return 0;else if(a == "tiger") return 1;else if(a == "cat") return 2;else if(a == "mouse") return 3;else{cout << "没有" << a << "这个棋子" << endl;return 4;}}
int main(){int a, b;        //a,b两种棋子for(int i = 0; i < 4; i++){string A, B;cin >> A >> B;a = zhao(A);b = zhao(B);if((a + 1) % 4 == b && a != 4 && b != 4)cout << "a 赢了" << endl;else if(a != 0 && a < b && a != 4 && b != 4)cout << "a 赢了" << endl;else if(a == 0 && b != 3)cout << "a 赢了" << endl; else if((b + 1) % 4 == a && a != 4 && b != 4)cout << "b 赢了" << endl;else if(b != 0 && b < a && a != 4 && b != 4)cout << "b 赢了" << endl; else if(b == 0 && a != 3)cout << "b 赢了" << endl; else if(a == b)cout << "双赢" <<endl;}system("pause");
}

C / C++:斗兽棋型比较大小相关推荐

  1. 动物棋c语言程序,斗兽棋游戏手机版|斗兽棋游戏下载 v0.2C 安卓版_最火软件站...

    斗兽棋android手机版,动物对战棋,回味童年的棋牌休闲游戏,登陆android手机,整个游戏画面是分为两块区域,中间有河流分割两块区域,有桥梁可以让彼此的动物过河,要取得胜利,必须占领那一边动物的 ...

  2. 基于React + Antd 实现的斗兽棋web应用

    基于React + Antd 实现的斗兽棋web应用 项目简介 功能规划 项目源码 棋盘渲染 mapitem gamemap(部分) map.json 棋子移动 && 规则特性 &am ...

  3. 小游戏之斗兽棋(uniapp)

    前言 最近学习数据结构与算法,但是平常自己要么刷题,要么看书,很是无聊.就想着游戏中一般都会运用大量的算法,所以就开始写游戏来锻炼自己算法这方面的小能力.后面还会持续做其他小游戏,并发布说说自己做的过 ...

  4. 玩吧斗兽棋的一些攻略 同级子谁胜负问题

    抗疫期间喜欢上了玩吧的斗兽棋,一把游戏几分钟就能下完,不仅要有策略,更要有运气,运气不好,再好的局面都会被逆风翻盘. 其中有一种局面,就是双方各执同样级别的棋子时,到底谁会赢,尝试分析了一下 玩吧斗兽 ...

  5. 【Unity连载】斗兽棋—棋类游戏开发演示(1)

    序言 "黄梅时节家家雨,青草池塘处处蛙.有约不来过夜半,闲敲棋子落灯花." "象棋终日乐悠悠,苦被严亲一旦丢.兵卒坠河皆不救,将军溺水一齐休.马行千里随波去,象入三川逐浪 ...

  6. 【Unity连载】斗兽棋-棋类游戏开发演示(2)

    第四章 游戏操作与指令 如同养育一个婴儿,父母总会一步步引领孩子成长,从蹒跚学步到来去如风:我们对游戏功能的开发,也无疑应当从走出第一步棋开始.现在,我们已经构建出了棋盘.棋子等基本的游戏逻辑对象:那 ...

  7. 【Python游戏】Python基于pygame实现的人机大战的斗兽棋小游戏 | 附源码

    前言 有粉丝说要我出一期Python版本的斗兽棋,今天宠粉狂魔的我不就来啦!! 虽然是一个简单的小游戏,但是对于新手小伙伴来说还是有一定的小难度的哟!要是不理解都可以找到小编的哈!! 相关文件 关注小 ...

  8. 斗兽棋java程序,Java 斗兽棋算法 帮优化一下解决办法

    Java codeimport java.io.*; import java.util.*; public class AnimalFight { /** * @param args */ publi ...

  9. 游戏斗兽棋,童年的回忆

    游戏斗兽棋,童年的回忆 最近在某游戏平台上面玩了一款经典的游戏,<斗兽棋>,就是象.狮.虎.豹.狼.狗.猫.鼠八种棋子组成,分为红方和蓝方,童年时代经常玩的游戏,俗称"洋火皮&q ...

最新文章

  1. 体验是情感的(译稿)
  2. linux 分区下的两主要硬盘的意思
  3. ASP.NET MVC 实现与SQLSERVER的依赖缓存
  4. 什么是 Immutable Web Apps
  5. bpmn流程图_流程图怎么做?金舟在线流程图教你高逼格制作
  6. 中班音乐活动计算机反思,中班音乐教学反思
  7. 自动画线指柡(主图)
  8. 修改MAC地址的方法(未测试)
  9. 抖音是怎么做出来的?| 创业故事
  10. 恒凯USB数据采集卡在国产麒麟操作系统下的应用(一)环境设置、采集卡驱动安装及C语言采集应用
  11. tf-serving部署之踩坑记录
  12. 坐标反算计算起始方位角_谁会坐标正算反算的公式,怎么计算两个坐标的方位角...
  13. 网页瘦身方法-金瑞帆高端建站
  14. 报错:Solving environment: failed with initial frozen solve. Retrying with flexible solve.
  15. java导出excel表格设置行高_EasyExcel之不使用对象灵活生成Excel,并且调整行高、自动列宽与自由合并...
  16. Max-Min Fairness带宽分配算法
  17. 第七周PCL学习--点云配准(七)
  18. 互联网产业中“外行领到内行”和软件工程
  19. MATLAB中的一些函数
  20. UCOSIII任务管理

热门文章

  1. mysql中触发器有什么作用_数据库触发器有什么作用?
  2. Python中if语句
  3. 阿里云直播 auth_key
  4. solr 过滤html标签,Solr
  5. 圣斗士星矢ol外国服务器网站,国外粉丝狂热支持《圣斗士星矢ol》
  6. ERROR: You appear to be running an X server; please exit X before installing
  7. react antv实现图片上传预览
  8. 超实用工具you-get(爬取视频数据神器)
  9. jQuery ajax 文件下载
  10. [Python][Selenium]浏览器无头模式