JAVA钓鱼游戏_java实现小猫钓鱼游戏
题目要求:
两人比赛,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实现小猫钓鱼游戏相关推荐
- java控制台扫雷_java实现扫雷游戏控制台版
本文实例为大家分享了java实现扫雷游戏控制台版,供大家参考,具体内容如下 扫雷游戏 a.游戏的分析 在游戏中需要存在对象包含哪些. 格子对象(grid): 属性:内容(content).状态(typ ...
- java斗地主 服务器_JAVA网络版斗地主游戏
大家好,欢迎各位前辈看小弟写的一个网络版的斗地主程序,下面是小弟用了两个多星期的心血写成的,请各位前辈多指教!使小弟我能够得到前辈的指点,更上一层楼,谢谢支持! 下面是我写的项目分析和讲解: 由于我装 ...
- java模拟国际象棋游戏_java国际象棋小游戏
[实例简介] 用java编写的国际象棋游戏 在eclipse环境下可以运行 界面美观 适合初学者 [实例截图] [核心代码] https___download.csdn.net_download_mo ...
- java 弹幕游戏_JAVA 弹幕小游戏 1.0版本
java 弹幕小游戏 最初版本 最近在学习javaSE,根据b站视频老师的讲解,也参考了他的代码,做了一个弹幕小游戏,也增添了一些自己的代码进去,因为只是最简单的游戏体,以后会慢慢做完整,所以如果有错 ...
- java打字小游戏_java实现打字游戏小程序
本文实例为大家分享了java实现打字游戏小程序的具体代码,供大家参考,具体内容如下 一.设计思路 1.创建一个窗体 2.在窗体上放置一个面板,用paint方法画出英文字母,随机放置字母位置,并随时间自 ...
- java捕鱼达人_java捕鱼达人游戏(源码)
[实例简介] java做的捕鱼游戏,有兴趣的小伙伴们可以看看了,源码非常详细. [实例截图] [核心代码] FishGame └── FishGame ├── bg │ ├── fishlight ...
- java编写游戏_java编写小游戏-大球吃小球
游戏界面: 点击火箭开始游戏 点击Exit退出游戏 左上角显示当前成绩和历史最高分 退出自动保存最高成绩 代码获取 扫码关注微信公众号[程序猿声] 在后台回复[EBG]不包括[]即可获取. 玩法: 玩 ...
- java连连看代码_java实现连连看游戏
本文实例为大家分享了java实现连连看游戏的具体代码,供大家参考,具体内容如下 代码会实现共享的,这个是截图 代码: package com.lr.bean; import java.util.Sca ...
- 蜘蛛纸牌java课设_java蜘蛛纸牌游戏设计
java蜘蛛纸牌游戏设计 java蜘蛛纸牌游戏源程序 AboutDialog.java import javax.swing.*; import java.awt.*; /* **"关于&q ...
- java 简单的游戏_java简单小游戏!
一.从电脑中取得随机数,然而用这些随机数来定义(剪刀,石头,布) public class Doubu { String name; int Score; public int showFlst() ...
最新文章
- POJ 2187 Beauty Contest( 凸包求最远点对 )
- [20180306]关于DEFERRED ROLLBACK2.txt
- 云服务器ecs的特点有什么
- IDEA运行最简单的Java程序Hello World
- python3.6.3安装过程_python3.6.3安装图文教程 TensorFlow安装配置方法
- 泸州计算机专业学院,泸州计算机专业中职推荐
- 「2019冬令营提高组」全连
- 2.STM32F407ZGT6 学习笔记-移植 FreeRTOS
- php 显示图片,php随机显示图片的简单示例
- python分析UFO报道数据
- 再谈 MySQL 备份
- php 8.0 jit,PHP 8.0 正式版发布,性能提升 10%
- 028_adblock
- 如何解决网页无法复制文字问题
- JavaScript 实现全选,分组全选,列表折叠。
- 停车场停车怎么找车?怎样查车停车什么停车场?
- 微信公众平台Js API WeixinApi
- 【Java】动态代理原理分析
- 『力扣刷题』5275_找出井字棋的获胜者 解题代码
- 帝国时代2决定版服务器证书身份验证失败,《帝国时代2决定版》常见问题解决方法介绍 常见问题怎么解决...
热门文章
- 桌面计算机快捷打不开,桌面快捷方式打不开,小编教你桌面快捷方式打不开怎么解决...
- wifi密码破解软件,谨慎使用!
- 多x多y的origin图_素雅、便携、多场景,松下纳诺怡X黑科技除菌净味产品使用简评...
- nagios 监控内存和CPU,磁盘等使用情况
- 胡震宁先生的《职业生涯规划》
- 使用 Nginx 服务器配置 flv、mp4,可以直接浏览器播放
- 浏览器播放rtsp视频流解决方案
- 51单片机之232串口实现-任务要求Fosc为6MHz,定时器T1为工作模式2
- 如何建立线上问题快速响应机制
- win10桌面穿越,多桌面切换