题目要求

两人比赛,A,B,每人最开始分得6张手牌,手牌大小为从1到9
A先出牌,B后出牌,若出牌在桌面上存在,在出牌人获得两张相同牌中间的所有牌(包括两张相同牌),放入出牌人手中。
最后谁手中无牌判为负


import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;/*** 模拟实现两人玩小猫钓鱼游戏* 判断谁先出完谁获胜* @author zyk**/
public class PlayGame {public static void main(String[] args) {Stack<Integer> deskStack = new Stack<>();//桌子上的牌,用栈进行管理Queue<Integer> playerA = new LinkedList();//用队列管理每个选手的牌Queue<Integer> playerB = new LinkedList();int book[] = new int[10];Scanner scanner = new Scanner(System.in);//发牌,每人6张for (int i = 0; i < 6; i++) {playerA.add(scanner.nextInt());}for (int i = 0; i < 6; i++) {playerB.add(scanner.nextInt());}//当两个队列都不为空,表示游戏没有结束while (!playerA.isEmpty() && !playerB.isEmpty()) {int ta = playerA.peek();//A出一张牌//判断A出的牌能不能赢牌if (book[ta] == 0) {//桌子上没有这张牌//A不能赢牌playerA.remove();//打出的牌出队列deskStack.add(ta);//打出的牌入栈book[ta]=1;//标记打出的牌出现在桌子上}else {//A能赢牌playerA.remove();//打出的牌出队列playerA.add(ta);//打出的牌入队列while (deskStack.lastElement()!=ta) {book[deskStack.lastElement()] = 0;playerA.add(deskStack.lastElement());deskStack.pop();}}int tb = playerB.peek();//B出一张牌//判断B出的牌能不能赢牌if (book[tb] == 0) {//桌子上没有这张牌//B不能赢牌playerB.remove();//打出的牌出队列deskStack.add(tb);//打出的牌入栈book[tb]=1;//标记打出的牌出现在桌子上}else {//B能赢牌playerB.remove();//打出的牌出队列playerB.add(tb);//打出的牌入队列while (deskStack.lastElement()!=tb) {book[deskStack.lastElement()] = 0;playerB.add(deskStack.lastElement());deskStack.pop();}}}if (playerA.isEmpty()) {System.out.println("B赢了");System.out.print("B手中的牌为:");while (!playerB.isEmpty()) {System.out.print(playerB.peek()+" ");playerB.remove();}}else {System.out.println("A赢了");System.out.print("A手中的牌为:");while (!playerA.isEmpty()) {System.out.print(playerA.peek()+" ");playerA.remove();}}System.out.println("");System.out.print("桌子上的牌为:");while (!deskStack.isEmpty()) {System.out.print(deskStack.lastElement()+" ");deskStack.pop();}}}

实例

输入
2 4 1 2 5 6
3 1 3 5 6 4

输出
A赢了
A手中的牌为:5 6 2 3 1 4 6 5

参考:《啊哈算法》第二章 栈,队列,链表

小猫钓鱼游戏java实现相关推荐

  1. 《LeetCode力扣练习》第55题 跳跃游戏 Java

    <LeetCode力扣练习>第55题 跳跃游戏 Java 一.资源 题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大 ...

  2. leetcode-292-Nim游戏(java|python)

    title: leetcode-292-Nim游戏(java|python) date: 2019-10-12 21:18:57 categories: leetcode tags: leetcode ...

  3. java实验2总结心得,打字小游戏JAVA实验总结及心得体会

    篇一:扫雷游戏实验报告 课程设计 班 级: 姓 名: 学 号: 指导教师: 成 绩: 电子与信息工程学院信息与通信工程系 目录 1.任务概述------------------------------ ...

  4. java小游戏-java小游戏-大鱼吃小鱼

    java小游戏-java小游戏-大鱼吃小鱼 1 创建窗口 2 添加背景图 3 启动封面 4 启动页面的点击事件 5 游戏开始时的背景添加 6 双缓存解决闪屏问题 7 地方第一条小鱼的添加 8 敌方左方 ...

  5. JAVA算法:李白遇花喝酒游戏JAVA DFS 算法设计

    JAVA算法:李白遇花喝酒游戏JAVA DFS 算法设计 看到了这样的一道题目,还挺有意思,可以通过不同的算法设计来求解. 话说大诗人李白,一生好饮.一日,他提着酒壶,从家里出来,酒壶中有酒2斗.他边 ...

  6. 五子棋游戏Java代码简单实现(含活动图和类图设计)

    五子棋游戏Java代码简单实现(含活动图和类图设计) 文章目录 五子棋游戏Java代码简单实现(含活动图和类图设计) 活动图设计 类图设计 代码实现 总结 OOA和OOD设计 代码设计 可改进部分 活 ...

  7. L2-040 哲哲打游戏 - java

    L2-040 哲哲打游戏 Java (javac) 时间限制 800 ms 内存限制 64 MB Python (python3) 时间限制 1000 ms 内存限制 64 MB 其他编译器 时间限制 ...

  8. java小游戏-java小游戏-飞机大战

    java小游戏-java小游戏-飞机大战 1 窗口创建 2 背景图片添加 3 启动页面制作 4 启动页面点击事件 5 游戏物体父类的编写 6 背景的移动 7 双缓存的添加 8 背景图片的循环出现 9 ...

  9. 贪吃蛇小游戏java实现代码分析

    贪吃蛇小游戏java实现代码分析 贪吃蛇的小游戏,网上的代码比较多,今天周五,在教研室没啥事做,在电脑中发现了一个贪吃蛇的小游戏,于是就看了下实现的源码,发现别人写的代码确实挺好的,自己也是边加注释边 ...

  10. java 猫 游戏,crazycat 围住神经猫-小游戏-Java源码 联合开发网 - pudn.com

    crazycat 所属分类:Java编程 开发工具:Java 文件大小:1373KB 下载次数:1 上传日期:2019-01-19 21:03:14 上 传 者:lynnhl 说明:  围住神经猫-小 ...

最新文章

  1. CF702F T-Shirts (排序+平衡树)
  2. php5.3 with-mysql centos_Centos编译搭建php7让php5.3和php7兼容共存教程
  3. jquery完成界面无刷新加载登陆注册
  4. 本地开发环境与生产环境布局有偏差问题
  5. frameset 后台管理_易达CMS下载-易达CMS(免费开源网站管理系统)v3.0.0.1103免费版
  6. python123阶乘累加_使用多线程计算阶乘累加 1!+2!+3!+...+19!+20!。其中一个线程计算阶乘,另一线程实现累加并输出结果。...
  7. JAVA知识基础(十):多态
  8. Win7系统网页视频无法播放怎么办
  9. 关于项目对表单校验的需求
  10. Kafka的介绍之一
  11. 响应式网站导航html,jQuery和CSS3响应式网站导航幻灯片插件
  12. Android开发中图表的使用
  13. chrome插件介绍
  14. 【阿里妈妈营销科学系列】第四篇:营销渠道效果评估与归因
  15. c预言plc编程语言,【讨论】对于PLC的编程语言STL、LAD、SCL等,你用的哪种语言呢?...
  16. 代表JAVA线程优先级的常量是_Java 线程优先级
  17. centos8修改系统语言为中文
  18. 【干货#008】30分钟实战知晓云内容发布小程序
  19. 人工神经网络在肺结核诊断中应用的研究进展
  20. c语言的实验题答案,大一C语言上机实验试题及答案

热门文章

  1. 【20保研】华东师范大学计算机科学与软件工程学院第五届“高可信软件工程优秀大学生夏令营”活动通知...
  2. PhotoBulk for Mac(图像批量添加水印工具)
  3. 抖音图文人物故事音乐任务实操短视频运营课程,手把手教你玩转音乐任务
  4. CNT-以太网帧和IEEE802.3帧
  5. 百度快速排名算法解密-百度搜索引擎快速排名软件-百度快排模拟点击器软件
  6. 《激荡三十年》十九、脚下的路——对中国经济未来的猜想
  7. 玩转软路由 篇四:软路由中OpenWRT作为旁路由的安装设置教程
  8. 如何清除html的浏览器缓存,如何清除浏览器缓存,小编教你怎么清除浏览器缓存...
  9. 青少年怎么学计算机,青少年编程的正确学习路线
  10. linux查看ip命令