C / C++:斗兽棋型比较大小
引入
相信大家都玩过斗兽棋,其规则是大动物能吃掉小动物,但最小的动物又能吃掉最大的动物,形成一个生物链闭环。
日常生活中形如这样的情形还有游戏中的属性克制、石头剪刀布等。
实际运用中我们需要对这些情形做出判断,得到结果。
基本思路
假设有四个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
个对象,按从大到小的顺序排好,并对这些对象从0
到n-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++:斗兽棋型比较大小相关推荐
- 动物棋c语言程序,斗兽棋游戏手机版|斗兽棋游戏下载 v0.2C 安卓版_最火软件站...
斗兽棋android手机版,动物对战棋,回味童年的棋牌休闲游戏,登陆android手机,整个游戏画面是分为两块区域,中间有河流分割两块区域,有桥梁可以让彼此的动物过河,要取得胜利,必须占领那一边动物的 ...
- 基于React + Antd 实现的斗兽棋web应用
基于React + Antd 实现的斗兽棋web应用 项目简介 功能规划 项目源码 棋盘渲染 mapitem gamemap(部分) map.json 棋子移动 && 规则特性 &am ...
- 小游戏之斗兽棋(uniapp)
前言 最近学习数据结构与算法,但是平常自己要么刷题,要么看书,很是无聊.就想着游戏中一般都会运用大量的算法,所以就开始写游戏来锻炼自己算法这方面的小能力.后面还会持续做其他小游戏,并发布说说自己做的过 ...
- 玩吧斗兽棋的一些攻略 同级子谁胜负问题
抗疫期间喜欢上了玩吧的斗兽棋,一把游戏几分钟就能下完,不仅要有策略,更要有运气,运气不好,再好的局面都会被逆风翻盘. 其中有一种局面,就是双方各执同样级别的棋子时,到底谁会赢,尝试分析了一下 玩吧斗兽 ...
- 【Unity连载】斗兽棋—棋类游戏开发演示(1)
序言 "黄梅时节家家雨,青草池塘处处蛙.有约不来过夜半,闲敲棋子落灯花." "象棋终日乐悠悠,苦被严亲一旦丢.兵卒坠河皆不救,将军溺水一齐休.马行千里随波去,象入三川逐浪 ...
- 【Unity连载】斗兽棋-棋类游戏开发演示(2)
第四章 游戏操作与指令 如同养育一个婴儿,父母总会一步步引领孩子成长,从蹒跚学步到来去如风:我们对游戏功能的开发,也无疑应当从走出第一步棋开始.现在,我们已经构建出了棋盘.棋子等基本的游戏逻辑对象:那 ...
- 【Python游戏】Python基于pygame实现的人机大战的斗兽棋小游戏 | 附源码
前言 有粉丝说要我出一期Python版本的斗兽棋,今天宠粉狂魔的我不就来啦!! 虽然是一个简单的小游戏,但是对于新手小伙伴来说还是有一定的小难度的哟!要是不理解都可以找到小编的哈!! 相关文件 关注小 ...
- 斗兽棋java程序,Java 斗兽棋算法 帮优化一下解决办法
Java codeimport java.io.*; import java.util.*; public class AnimalFight { /** * @param args */ publi ...
- 游戏斗兽棋,童年的回忆
游戏斗兽棋,童年的回忆 最近在某游戏平台上面玩了一款经典的游戏,<斗兽棋>,就是象.狮.虎.豹.狼.狗.猫.鼠八种棋子组成,分为红方和蓝方,童年时代经常玩的游戏,俗称"洋火皮&q ...
最新文章
- 体验是情感的(译稿)
- linux 分区下的两主要硬盘的意思
- ASP.NET MVC 实现与SQLSERVER的依赖缓存
- 什么是 Immutable Web Apps
- bpmn流程图_流程图怎么做?金舟在线流程图教你高逼格制作
- 中班音乐活动计算机反思,中班音乐教学反思
- 自动画线指柡(主图)
- 修改MAC地址的方法(未测试)
- 抖音是怎么做出来的?| 创业故事
- 恒凯USB数据采集卡在国产麒麟操作系统下的应用(一)环境设置、采集卡驱动安装及C语言采集应用
- tf-serving部署之踩坑记录
- 坐标反算计算起始方位角_谁会坐标正算反算的公式,怎么计算两个坐标的方位角...
- 网页瘦身方法-金瑞帆高端建站
- 报错:Solving environment: failed with initial frozen solve. Retrying with flexible solve.
- java导出excel表格设置行高_EasyExcel之不使用对象灵活生成Excel,并且调整行高、自动列宽与自由合并...
- Max-Min Fairness带宽分配算法
- 第七周PCL学习--点云配准(七)
- 互联网产业中“外行领到内行”和软件工程
- MATLAB中的一些函数
- UCOSIII任务管理
热门文章
- mysql中触发器有什么作用_数据库触发器有什么作用?
- Python中if语句
- 阿里云直播 auth_key
- solr 过滤html标签,Solr
- 圣斗士星矢ol外国服务器网站,国外粉丝狂热支持《圣斗士星矢ol》
- ERROR: You appear to be running an X server; please exit X before installing
- react antv实现图片上传预览
- 超实用工具you-get(爬取视频数据神器)
- jQuery ajax 文件下载
- [Python][Selenium]浏览器无头模式