java写一个龟兔赛跑

Python013

java写一个龟兔赛跑,第1张

public static void main(String[] args) {

// TODO Auto-generated method stub

int a = 0, b = 0

int second = 0

do {

int number = new Random().nextInt(10) + 1// 产生1-10随机数

// 如果随机数小于等于8,则表示80%的概率

if (number <= 8) {

a = a + 2

}

// 如果随机数小于等于5,则表示50%的概率

if (number <= 5) {

b = b + 4

}

second++

System.out.println("第" + second + "秒:乌龟跑了" + a + ",兔子跑了" + b)

} while (a < 100 && b < 100)

}

不懂地方可以追问。

public class Competition {

private volatile static boolean gameOver = false//用来标记是否有人到达终点,到达终点后游戏结束

//乌龟的实现方式

static class Tortoise implements Runnable{

private volatile int total = 0//用来记录当前已经前行了多少距离

@Override

public void run() {

while(!gameOver){

int step = (int)(Math.random()*5+1)//产生1-5的随机数

total += step

try {

Thread.sleep(200)

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

public int getTotal(){

return total

}

}

//兔子的实现方式

static class Rabbit implements Runnable{

private volatile int total = 0

@Override

public void run() {

while(!gameOver){

int step = (int)(Math.random()*5+1)

total += step

try {

Thread.sleep(200)

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

public int getTotal(){

return total

}

}

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

final Tortoise tortoise = new Tortoise()

final Rabbit rabbit = new Rabbit()

new Thread(tortoise).start()

new Thread(rabbit).start()

//下面多起了一个线程,相当于比赛的时候的裁判员,他每隔一段时间就看一下是否有人到达终点,若有人到达则宣判该人获胜,游戏结束

new Thread(new Runnable(){

@Override

public void run() {

// TODO Auto-generated method stub

while(!gameOver){

int torLen = tortoise.getTotal()//获得乌龟前行的距离

int rabLen = rabbit.getTotal()//获得兔子前行的距离

System.out.println("乌龟:"+torLen+",兔子"+rabLen)

if(torLen >= 100 && rabLen <100){

System.out.println("乌龟获胜!!!")

gameOver = true

}else if(rabLen >= 100 && torLen <100){

System.out.println("兔子获胜!!!")

gameOver = true

}else if(rabLen >=100 && torLen >= 100){//这里有可能两人同时到达终点

System.out.println("同时到达终点!!!")

gameOver = true

}

try {

Thread.sleep(210)

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

}).start()

}