⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 numbercreator.java

📁 软件工程实践课程的答案哦
💻 JAVA
字号:
class NumberCreator implements Runnable
{
	private ServerRandomQueue numQueue;
	private Thread numCreator;

	NumberCreator()
	{
		
		
	}
	
	public void numCreatorStart(/*int playerNumber*/)
	{
		numCreator = new Thread(this);
		numQueue = new ServerRandomQueue(/*playerNumber*/);
		createColorSet(100);	
		numCreator.start();
	}
	
	public void numCreatorKill()
	{
			numCreator = null;
	}
	/**
	 * @return an random number in the range of 1-5
	 * */
	private int  createNum()//1~5
	 {
	
		return (int)(Math.random()*6)+1;
 	}		
	/**
	 * create i colorsets
	 * @param i the number of ColorSet to create*/
 	public void createColorSet(int i)
 	{
 		int color0 = 0;
 		int color1 = 0;
 		int color2 = 0;
 		for(int t=0;t<i;t++)
 		{
 			color0 = this.createNum();
 		
 		////////////color1////////////
 			color1 = this.createNum();
 			while(color1==color0)
 			{
 				color1 = this.createNum();
 			}
 		
 		////////////color2////////////
 			color2 = this.createNum();
 			while(color2==color0||color2==color1)
 			{
 				color2 = this.createNum();
 			}
 			
 			numQueue.enQueue(new ColorSet(color0,color1,color2));
 		}
 	}
		
	/*public ColorSet getNext()
 	{
 		ColorSet tempColor = numQueue.getNext();
 		return tempColor;
	}*/
 	/**
	 * this thread daemons the Queue, keeping there is always enouth SingleColorSet objects 
	 * */
	public void run() 
	{
		while(true)
		{
			try
			{	
				numCreator.sleep(2000);
				if( numQueue.getQueLen()<=2)//has 3 chances
				{
					int a = numQueue.getQueLen();
					if(a==0)
						createColorSet(15);
					else if(a==1)
						createColorSet(14);
					else if(a==2)
						createColorSet(13);
				
				}
			}
			catch(InterruptedException e){}
			catch(Exception e){}
			
		
			
			
		}
	}

	public  void print()
	{
		int ptr = numQueue.head;
		while(ptr!=numQueue.rear)
		{
			System.out.println(numQueue.queue[ptr].getColor0()+","
			+numQueue.queue[ptr].getColor1()+","
			+numQueue.queue[ptr].getColor2()+"->");
			ptr = (ptr+1)%15;
			
		}
	}
	/**
	 * @return return the number of the block*/
/*(	public ColorSet getColorSet()
	{
		ColorSet tempColor = numQueue.deQueue();
		return tempColor;
	}*/
	
	
	/*public static void main(String[] args)
	{
	 NumberCreator creator = new NumberCreator();
	creator.createColorSet(10);
	 	 creator.print();
	System.out.println("next is"+creator.getNext().getColor0()+","
	+creator.getNext().getColor1()+","
	+creator.getNext().getColor2()
	);
	
	}*/

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -