武松打虎进化版

[代码] [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);
		}
		else
			System.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);
		}
		else
			System.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值