题目要求:

两人比赛,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 deskStack = new Stack<>();//桌子上的牌,用栈进行管理

Queue playerA = new LinkedList();//用队列管理每个选手的牌

Queue 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钓鱼游戏_java实现小猫钓鱼游戏相关推荐

  1. java控制台扫雷_java实现扫雷游戏控制台版

    本文实例为大家分享了java实现扫雷游戏控制台版,供大家参考,具体内容如下 扫雷游戏 a.游戏的分析 在游戏中需要存在对象包含哪些. 格子对象(grid): 属性:内容(content).状态(typ ...

  2. java斗地主 服务器_JAVA网络版斗地主游戏

    大家好,欢迎各位前辈看小弟写的一个网络版的斗地主程序,下面是小弟用了两个多星期的心血写成的,请各位前辈多指教!使小弟我能够得到前辈的指点,更上一层楼,谢谢支持! 下面是我写的项目分析和讲解: 由于我装 ...

  3. java模拟国际象棋游戏_java国际象棋小游戏

    [实例简介] 用java编写的国际象棋游戏 在eclipse环境下可以运行 界面美观 适合初学者 [实例截图] [核心代码] https___download.csdn.net_download_mo ...

  4. java 弹幕游戏_JAVA 弹幕小游戏 1.0版本

    java 弹幕小游戏 最初版本 最近在学习javaSE,根据b站视频老师的讲解,也参考了他的代码,做了一个弹幕小游戏,也增添了一些自己的代码进去,因为只是最简单的游戏体,以后会慢慢做完整,所以如果有错 ...

  5. java打字小游戏_java实现打字游戏小程序

    本文实例为大家分享了java实现打字游戏小程序的具体代码,供大家参考,具体内容如下 一.设计思路 1.创建一个窗体 2.在窗体上放置一个面板,用paint方法画出英文字母,随机放置字母位置,并随时间自 ...

  6. java捕鱼达人_java捕鱼达人游戏(源码)

    [实例简介] java做的捕鱼游戏,有兴趣的小伙伴们可以看看了,源码非常详细. [实例截图] [核心代码] FishGame └── FishGame ├── bg │   ├── fishlight ...

  7. java编写游戏_java编写小游戏-大球吃小球

    游戏界面: 点击火箭开始游戏 点击Exit退出游戏 左上角显示当前成绩和历史最高分 退出自动保存最高成绩 代码获取 扫码关注微信公众号[程序猿声] 在后台回复[EBG]不包括[]即可获取. 玩法: 玩 ...

  8. java连连看代码_java实现连连看游戏

    本文实例为大家分享了java实现连连看游戏的具体代码,供大家参考,具体内容如下 代码会实现共享的,这个是截图 代码: package com.lr.bean; import java.util.Sca ...

  9. 蜘蛛纸牌java课设_java蜘蛛纸牌游戏设计

    java蜘蛛纸牌游戏设计 java蜘蛛纸牌游戏源程序 AboutDialog.java import javax.swing.*; import java.awt.*; /* **"关于&q ...

  10. java 简单的游戏_java简单小游戏!

    一.从电脑中取得随机数,然而用这些随机数来定义(剪刀,石头,布) public class Doubu { String name; int Score; public int showFlst() ...

最新文章

  1. POJ 2187 Beauty Contest( 凸包求最远点对 )
  2. [20180306]关于DEFERRED ROLLBACK2.txt
  3. 云服务器ecs的特点有什么
  4. IDEA运行最简单的Java程序Hello World
  5. python3.6.3安装过程_python3.6.3安装图文教程 TensorFlow安装配置方法
  6. 泸州计算机专业学院,泸州计算机专业中职推荐
  7. 「2019冬令营提高组」全连
  8. 2.STM32F407ZGT6 学习笔记-移植 FreeRTOS
  9. php 显示图片,php随机显示图片的简单示例
  10. python分析UFO报道数据
  11. 再谈 MySQL 备份
  12. php 8.0 jit,PHP 8.0 正式版发布,性能提升 10%
  13. 028_adblock
  14. 如何解决网页无法复制文字问题
  15. JavaScript 实现全选,分组全选,列表折叠。
  16. 停车场停车怎么找车?怎样查车停车什么停车场?
  17. 微信公众平台Js API WeixinApi
  18. 【Java】动态代理原理分析
  19. 『力扣刷题』5275_找出井字棋的获胜者 解题代码
  20. 帝国时代2决定版服务器证书身份验证失败,《帝国时代2决定版》常见问题解决方法介绍 常见问题怎么解决...

热门文章

  1. 桌面计算机快捷打不开,桌面快捷方式打不开,小编教你桌面快捷方式打不开怎么解决...
  2. wifi密码破解软件,谨慎使用!
  3. 多x多y的origin图_素雅、便携、多场景,松下纳诺怡X黑科技除菌净味产品使用简评...
  4. nagios 监控内存和CPU,磁盘等使用情况
  5. 胡震宁先生的《职业生涯规划》
  6. 使用 Nginx 服务器配置 flv、mp4,可以直接浏览器播放
  7. 浏览器播放rtsp视频流解决方案
  8. 51单片机之232串口实现-任务要求Fosc为6MHz,定时器T1为工作模式2
  9. 如何建立线上问题快速响应机制
  10. win10桌面穿越,多桌面切换