展开全部

package test;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.util.Timer;

import java.util.TimerTask;

/**

* Created by Administrator on 2017/8/22.

*/

public class mian {

static String player1 = "1号玩家";

static String player2 = "2号玩家";

static String attacker = player1;//默认player1先攻击

static String beAttacker = player2;//默认player2先被攻击

static boolean isTimeOver = false;//是否攻击超时

public static void main(String[] args) {

while (true) {

System.out.println(attacker + "攻击回合e69da5e887aa3231313335323631343130323136353331333363383436,是否发动攻击? 是:1 否:任意符号  回车确定.");

getSystemIn();

}

}

/**

* 获取控制台的命令;

*/

public static void getSystemIn() {

Timer timer = new Timer();

timerTest(timer);

boolean attacked = false;//是否成功攻击

try {

while (isTimeOver == false) {//是否超时

if (System.in.available() == 0) continue;//用户时候在控制台输出了命令

BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));

String s = sc.readLine();//读取用户命令

if ("1".equals(s)) {//攻击命令

attack(attacker, beAttacker);//调用攻击方法

attacked = true;//攻击成功

} else {

System.out.println(attacker + "主动放弃攻击,攻守转换!");

}

timer.cancel();//用户给出指令,取消定时器.

break;//跳出接受命令功能

}

if (attacked == false && isTimeOver == true) {//只有用户没有攻击,并且攻击超时时才打印

System.out.println(attacker + "攻击超时,攻守转换!");

}

isTimeOver = false;//将攻击超时标志重新置为flase

attackTransition(attacker, beAttacker);//攻守转换

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 攻守转换

*

* @param _attacker   攻击者

* @param _beAttacked 被攻击者

*/

public static void attackTransition(String _attacker, String _beAttacked) {

String cache = null;

cache = _attacker;

attacker = _beAttacked;

beAttacker = cache;

}

public static void timerTest(Timer timer) {

timer.schedule(new TimerTask() {

public void run() {

new Thread(new Runnable() {

@Override

public void run() {

try {

isTimeOver = true;//将超时标志置为true

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

}).start();

}

}, 2000*60);// 设定指定的时间time,此处为60*2000毫秒(2分钟)

}

/**

* 攻击方法

*

* @param attacker   攻击者

* @param beAttacked 被攻击者

*/

public static void attack(String attacker, String beAttacked) {

System.out.println(attacker + "开始攻击" + beAttacked);

}

}

结果:

看你的逻辑挺好玩的.这里不要试图使用Scanner,因为Scanner会阻塞当前线程.除非有方法能够主动打破阻塞(我没找到).所以这里我自己写了个读取的小逻辑.

java 2分钟_Java怎么判断他是否在2分钟内执行了任务?相关推荐

  1. 能否构成三角形的条件代码_Java 如何判断一个点是否在一个三角形内

    题目描述: 如何判断一个点是否在一个三角形内. 测试样例: 自定义的POINT类: class POINT{ int x; int y; public POINT(int x,int y){ this ...

  2. java 30分钟_java 实现当前时间加减30分钟的时间代码

    如代码所示: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date now = new ...

  3. java当前时间减1分钟_java 实现当前时间加减30分钟的时间代码

    如代码所示: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date now = new ...

  4. java中文字符_Java 完美判断中文字符

    Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...

  5. java识别中文_Java 完美判断中文字符的方法

    Java判断一个字符串是否有中文一般情况是利用Unicode编码正则来做判断,但是其实这个区间来判断中文不是非常精确,以下是比较完善的判断方法 Java判断一个字符串是否有中文一般情况是利用Unico ...

  6. java 微秒 时间_Java中时间的计算 年月日小时分钟秒毫秒微秒

    //用到的类 DateUtils //这个类存在于 org.apache.commons.lang.time.DateUtils; //也就是这个包 commons-lang-2.3.jar //AP ...

  7. java 网页编码_JAVA如何判断网页编码

    前言 最近做一个搜索项目,需要爬取很多网站获取需要的信息.在爬取网页的时候,需要获得该网页的编码,不然的话会发现爬取下来的网页有很多都是乱码. 分析 一般情况下,网页头信息会指定编码,可以解析head ...

  8. java web试题_Java web开发经典面试题汇总(内附答案详解)

    原标题:Java web开发经典面试题汇总(内附答案详解) 1.说出Servlet 的生命周期,并说出Servlet 和CGI 的区别? 答:Web 容器加载Servlet 并将其实例化后,Servl ...

  9. java map key是否存在_java如何判断map集合中是否存在key?

    java如何判断map集合中是否存在key?,方法,遍历,不存在,键值,是一个 java如何判断map集合中是否存在key? 易采站长站,站长之家为您整理了java如何判断map集合中是否存在key? ...

最新文章

  1. python记录当前系统时间 生成照片直接命名
  2. 《你不知道的Javascript--上卷 学习总结》(原型)
  3. C#保存图片到特定目录
  4. 基于SegNet和UNet的遥感图像分割代码解读
  5. 手机web开发的感想
  6. Java属性loadFromXML()方法与示例
  7. 吉哥系列故事――完美队形II(HDU-4513)
  8. 蓝桥杯 反置数 数论
  9. javaScript中获取时间
  10. 王者荣耀s12赛季服务器维护,王者荣耀S12赛季延期,这篇攻略让我段位狂涨!
  11. Ubuntu 网速显示,ssh配置
  12. 嵌入式大佬 | 嵌入式C语言知识点万字总结
  13. 高级php工程师需要掌握的知识点
  14. 海量数据大课学习笔记(2)-不在其位要谋其政,技术Leader能力模型提升-小滴课堂
  15. python进阶练习题:IRR计算 - 盈利能力的评价【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
  16. 360奇舞团钟恒:选用Vue.js进行组件化开发,我们遇到了哪些坑?
  17. 【制作fnt格式字体】 BMFont中文字体图集制作的方法~
  18. 计算机 难题_寻找免费难题的最佳网站
  19. iphone12android在线啥意思,iOS12要来了,你还不知道这些iPhone的隐藏功能?
  20. Android App内截屏监控及涂鸦功能实现

热门文章

  1. go python perl混合开发
  2. C语言:n个数的阶乘之和
  3. 【实验技术笔记】融合基因 + 长片段基因 + 突变基因 表达载体构建
  4. 数字实现千分位分隔符
  5. html 引入网页title的图标,生成 .ico 图标
  6. php 判断app浏览器打开,手机浏览器下判断是否安装某app,并判断是否打开该应用...
  7. Windows Server 2008 R2使用WDS服务实现批量安装操作系统演示
  8. Android的数据存储:SharedPrefrence存储,手机内部文件存储,手机外部文件存储
  9. 制作一个简单HTML+CSS个人网页设计(web前端大作业)
  10. TCP连接的建立和释放过程详解(三次握手、四次挥手)