当前位置: 首页 > news >正文

不使用if else ,实现石头剪刀布

系列文章目录

文章目录

  • 系列文章目录
  • 一、方法一使用数组映射


一、方法一使用数组映射

定义一个二维数组来表示胜负关系,然后根据玩家的选择直接返回结果

思路:
将剪刀 石头 布分别用数字0,1,2表示
定义一个胜负表:int[][] win = {{0, -1, 1}, {1, 0, -1}, {-1, 1, 0}};
其中 win[a][b] 表示 a 对 b 的胜负结果:
1:a 赢
-1:b 赢
0:平局

public class RockPaperScissors {
public static String play(int player1, int player2) {
// 定义胜负关系表:0: 剪刀, 1: 石头, 2: 布
这个二维数组 win[a][b] 表示:玩家1出 a,玩家2出 b 时的结果。每个位置的含义:
0 → 平局(draw)
1 → 玩家1赢(player1 wins)
-1 → 玩家2赢(player2 wins)1. win[0][0] = 0 → 剪刀 vs 剪刀 → 平局
两个都出剪刀,平局。2. win[0][1] = -1 → 剪刀 vs 石头 → 玩家2赢
剪刀被石头打败,所以玩家2赢。3. win[0][2] = 1 → 剪刀 vs 布 → 玩家1赢
剪刀剪布,玩家1赢。4. win[1][0] = 1 → 石头 vs 剪刀 → 玩家1赢
石头砸剪刀,玩家1赢。int[][] win = {{0, -1, 1},   // 剪刀 vs 剪刀: 平局, vs 石头: 输, vs 布: 赢{1, 0, -1},   // 石头 vs 剪刀: 赢, vs 石头: 平局, vs 布: 输{-1, 1, 0}    // 布 vs 剪刀: 输, vs 石头: 赢, vs 布: 平局
};int result = win[player1][player2];
return result == 1 ? "Player 1 wins!" :result == -1 ? "Player 2 wins!" :"It's a draw!";
}public static void main(String[] args) {System.out.println(play(0, 1)); // 剪刀 vs 石头 → Player 2 wins!System.out.println(play(1, 2)); // 石头 vs 布 → Player 2 wins!System.out.println(play(2, 0)); // 布 vs 剪刀 → Player 1 wins!System.out.println(play(1, 1)); // 石头 vs 石头 → It's a draw!}
}
http://www.dtcms.com/a/358542.html

相关文章:

  • 大数据在UI前端的应用深化研究:用户行为数据的跨平台关联分析
  • 思科ISR4300系列端口限速
  • 面试专栏
  • [光学原理与应用-333]:ZEMAX - 序列模式的设计过程
  • 基于CNN(卷积神经网络)的门牌号识别
  • 国标调查:赋能中国汽车行业高质量发展的关键支撑
  • 【C++】红黑树(详解)
  • 项目管理方法如何选择
  • 语音情感识别中的跨语言无监督领域自适应方法详解
  • 微服务搭建(SpringBoot + Dubbo + Nacos)
  • 【龙泽科技】汽车电气故障诊断仿真教学软件【迈腾380TSI】
  • 3.kafka常用命令
  • 元素滚动scrollIntoView
  • 2025年09月计算机二级Python选择题每日一练——第十二期
  • GD32入门到实战22--红外NEC通信协议
  • node.js ---文件读写(FS模块)
  • shell脚本第五阶段---shell函数与正则表达式
  • 机器学习时间序列算法进行随机划分数据是不合适的!
  • 一键掌控三线资源:极简 Shell 脚本实现 CPU·磁盘·内存可视化巡检
  • 鸿蒙ArkTS 核心篇-14-条件表达式(三目运算符)
  • ans1语法的一个例子nt5inf.cat
  • openEuler2403安装部署PostgreSQL17
  • 开发中使用——鸿蒙CoreSpeechKit让文字发声
  • 118、【OS】【Nuttx】【周边】效果呈现方案解析:作用域?
  • python pyqt5开发DoIP上位机【源码】
  • Spring代理的特点
  • Photoshop - Ps Camera Raw 滤镜
  • 【Python+requests】解决Python requests中的ProxyError:SSL版本错误问题详解
  • C++中的临时对象与移动语义——深入理解与实践
  • 消费 $83,用Claude 实现临床护理系统记录单(所见即所得版)