武松打虎进化版

[代码] [Java]代码 import java.util.*;
class Q
{boolean b = false;Random r = null;//武松的血条int wusongblood = 10;//老虎的血条int tiggerblood = 10;public Q(){r = new Random();}// http://www.haokk123.info/linked/20130424.do 武松侵犯public synchronized void wugong(){if(b){try{wait();}catch(Exception e){System.out.println(e.getMessage());}}System.out.println(Thread.currentThread().getName()   " 进行一次侵犯");if(!duobi()){tiggerblood--;System.out.println("tigger 的血量为"   tiggerblood);}elseSystem.out.println("tigger 成功进行了一次躲避");b = true;if(tiggerblood == 0){System.out.println("GAME OVER !!!  武松 WIN");System.exit(0);}notify();		}//老虎侵犯public synchronized void hugong(){if(!b){try{wait();}catch(Exception e){System.out.println(e.getMessage());}}System.out.println(Thread.currentThread().getName()   " 进行一次侵犯");if(!duobi()){wusongblood--;System.out.println("武松 的血量为"   wusongblood);}elseSystem.out.println("武松 成功进行了一次躲避");b = false;if(wusongblood == 0){System.out.println("GAME OVER !!!  Tigger WIN");System.exit(0);}	notify();}public boolean duobi(){return r.nextBoolean();}
}class Wu implements Runnable
{Q q = null;public Wu(Q q){this.q = q;}public void run(){Thread.currentThread().setName("Wusong Thread");while(true){q.wugong();}}}
class Hu implements Runnable
{Q q = null;public Hu(Q q){this.q = q; }public void run(){Thread.currentThread().setName("Tigger Thread");while(true){q.hugong();}}
}
class Wusong
{public static void main(String [] args){Q q = new Q();Wu wu = new Wu(q);Hu hu = new Hu(q);new Thread(wu).start();new Thread(hu).start();}
} http://www.haofapiao.com/linked/20130424.do 

转载于:https://www.cnblogs.com/fpqqchao/archive/2013/04/25/3041524.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474485.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言表达式10 amp 6等于多少,C语言基础——表达式

目录回顾:一、定义概念:二、表达式的分类举例说明:(一)首先是加、减、乘、除、取余四种表达式:(二)一元表达式(三)强制转换表达式(四)判断表达式(五)逻辑表达式(六)移位表达式小结写在最后:回顾:在上一篇博…

python中break与continue使用

1.break的作用:用来结束整个循环,continue的作用:用来结束本次循环,紧接着执行下一次的循环。 2.break/continue只能用在循环中,除此以外不能单独使用。 3.break/continue在嵌套循环中,只对最近的一层循环…

LeetCode 1274. 矩形内船只的数目(分治)

文章目录1. 题目2. 解题1. 题目 (此题是 交互式问题 ) 在用笛卡尔坐标系表示的二维海平面上,有一些船。 每一艘船都在一个整数点上,且每一个整数点最多只有 1 艘船。 有一个函数 Sea.hasShips(topRight, bottomLeft) ,输入参数为右上角和…

C语言数组相似度比对,某课程设计---文件相似度判断

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//返回两个文件操作是否都成功return ( result1 && result2 );}//功能:将数据存储到文件内//输入:const char * FileName----想写入数据的文件名// :const char * Data----想写入的数据//输出:无//返回值:布尔型---真表…

图的定义与术语 - 数据结构和算法54

图的定义与术语 让编程改变世界 Change the world by program 在前边讲解的线性表中,每个元素之间只有一个直接前驱和一个直接后继,在树形结构中,数据元素之间是层次关系,并且每一层上的数据元素可能和下一层中多个元素相关&…

c 语言银行排队系统,C++实现银行排队系统

#include #include #include int cnt0; //当日客流量int sum0; //当日客户排队总时间typedef struct pnode{int number;int cometime;int leavetime;struct pnode *next;}*person;typedef struct node{person front;person rear;int length;}linkqueue;linkqueue q[5];int numb…

LeetCode 1152. 用户网站访问行为分析

文章目录1. 题目2. 解题1. 题目 为了评估某网站的用户转化率,我们需要对用户的访问行为进行分析,并建立用户行为模型。 日志文件中已经记录了用户名、访问时间 以及 页面路径。 为了方便分析,日志文件中的 N 条记录已经被解析成三个长度相…

python缺省参数与多个函数返回值

缺省参数 调用函数时,缺省参数的值如果没有传入,则被认为是默认值。 下例会打印默认的age,如果age没有被传入. def printinfo( name,age 35 ): # 打印任何传入的字符串 print "Name: ", name print "Age ", age #调…

如何用c语言制作飞机订票系统,C语言编程飞机订票系统如何设计?

题目:编制一个航空客运订票系统,实现简单的机票操作班级:计0702 姓名:学号: 完成日期:2008年12月20日一、 实验内容:1、问题描述:航空客运订票的业务包括:查询航班、客票…

挖掘有价值的搜索关键词

挖掘有价值的搜索关键词 在对搜索引擎流量及关键词的标记后,还需要从中挖掘最有价值的那部分关键词。以下是关键词挖掘思路和详细的操作方法。 图1 挖掘有价值的搜索关键词 找到一个有价值的关键词,再加上好的搜索排名,就可以给网站带来大量…

LeetCode 1197. 进击的骑士(BFS)

文章目录1. 题目2. 解题1. 题目 一个坐标可以从 -infinity 延伸到 infinity 的 无限大的 棋盘上,你的 骑士 驻扎在坐标为 [0, 0] 的方格里。 骑士的走法和中国象棋中的马相似,走 “日” 字:即先向左(或右)走 1 格&am…

android在特定时间,如何在Android Oreo的特定时间在Android上发出通知?

我正在寻找一种在“设置”中创建首选项的方法,以便在Android应用中的特定时间(由用户在设置中设置)发送通知.我看过像this这样的不同线程,但是这在Android Oreo中不起作用.有人可以帮我这个或者指点我一个教程吗?解决方法:在查看了不同的帖子和对AlarmManager实现的…

6、使用infowindow

ESRI公司提供的infowindow既美观用实用,而且可定制性强,是时时获取信息的好窗口,用好它可以使工作量大大的减少。 他的使用方法介绍如下: 1、 主要属性 Property Type Description anchor String Placement of the InfoWindo…

python中随机输入数字再排序

代码赏析: a[] while True:umber int(input("请输入您要输入的数字:"))if umber 0:breakelse:a.append(umber) a.sort() print(b)

LeetCode 1167. 连接棒材的最低费用(优先队列+贪心)

文章目录1. 题目2. 解题1. 题目 为了装修新房,你需要加工一些长度为正整数的棒材 sticks。 如果要将长度分别为 X 和 Y 的两根棒材连接在一起,你需要支付 X Y 的费用。 由于施工需要,你必须将所有棒材连接成一根。 返回你把所有棒材 sti…

flyme8会更新Android版本吗,魅族17系列升级Flyme 8.1操作系统:终于到Android 10

原标题:魅族17系列升级Flyme 8.1操作系统:终于到Android 10玩懂手机网资讯,根据魅族官方的消息,魅族17系列终于升级至Android 10,将会搭载 Flyme 8.1 操作系统,魅族官方发布消息表示让欢喜的,更…

python中常见的几种错误

python中常见的几种错误: 1、end前面一定加逗号 2、命令输入错误 3、冒号中英文切换 4、命令缩进错误 5、等于号要双等于,否则一个等于号是赋值 6、命令之间正确搭配

公开发布版的Windows Azure 基础结构服务中的 SQL Server – 文档和最佳实践(已更新),还有即将发布的博客...

一周前,WindowsAzure 刚刚宣布公开发布版的基础结构服务正式推出, 这标志着WindowsAzure从此开始完全支持基础结构即服务,SQL Server是其中的一个主要组件。 预安装的SQL Server VM 可在Windows Azure 库中找到, 按使用的小时数收费。目前,运…