例一:
package map1;
import java.util.Random;
public class T6 {
public static void main(String args[]) {
System.out.println("ゲームスタート:");
Random diceValues=new Random();
int die1=0;
int die2=0;
for(int i=0;i<6;i++){
die1=1+diceValues.nextInt(6);
die2=1+Math.abs(diceValues.nextInt())%6;
System.out.println("第"+i+"回:"+die1+","+die2);
if(die1+die2==12){
System.out.println("成功!");
return;
}
}
System.out.println("失敗!");
}
}
運(yùn)行結(jié)果:
ゲームスタート:
第0回:1,1
第1回:5,3
第2回:2,5
第3回:5,4
第4回:5,5
第5回:4,3
失敗!
分析:
在此使用了一個(gè)隨機(jī)數(shù)發(fā)生器,在for循環(huán)中模擬擲色子。每擲一次就會(huì)為每個(gè)色子生成1-6隨機(jī)數(shù)。
例二:
package map1;
import java.io.IOException;
public class T7 extends Thread{
private String firstName;
private String secondName;
private long aWhile;
public T7(String firstName, String secondName, long delay) {
this.firstName = firstName;
this.secondName = secondName;
aWhile = delay;
setDaemon(true);
}
public void run(){
try{
while(true){
System.out.println("エンターキーを押す場(chǎng)合、 線程を中止ます。");
sleep(aWhile);
System.out.println(secondName+"\n");
}
}catch(InterruptedException e){
System.out.println(firstName+secondName+e);
}
}
public static void main(String args[]) {
Thread first=new T7("Hopalong","Cassidy",2000L);
Thread second=new T7("Marilyn","Monroe",4000L);
Thread third=new T7("Slim","Pickens",6000L);
System.out.println("中止したい場(chǎng)合、エンターキーを押してください。");
first.start();
second.start();
third.start();
try{
System.in.read();
System.out.println("エンターキーが押されました..\n");
}catch(IOException e){
System.out.println("例外が発生しました。");
}
System.out.println("プログラムが中止されました。");
}
}
運(yùn)行結(jié)果:
中止したい場(chǎng)合、エンターキーを押してください。
エンターキーを押す場(chǎng)合、 線程を中止ます。
エンターキーを押す場(chǎng)合、 線程を中止ます。
エンターキーを押す場(chǎng)合、 線程を中止ます。
Cassidy
エンターキーを押す場(chǎng)合、 線程を中止ます。
エンターキーが押されました..
プログラムが中止されました。
分析:
這是一個(gè)守護(hù)線程的實(shí)例。當(dāng)enter鍵按下,所有相關(guān)線程終止。
有了這兩個(gè)程序的基礎(chǔ),就可以編寫簡(jiǎn)單的作戰(zhàn)游戲了。
posted on 2007-10-19 10:34
靜兒 閱讀(283)
評(píng)論(1) 編輯 收藏