2015-11-04 126 views
1
import java.util.Random; 
import java.util.Scanner; 
public class javascript { 
    public static void main(String[] args) { 
Scanner scan = new Scanner(System.in); 
Random rand = new Random(); 

int door1 = 0; 
int door2 = 0; 
int door3 = 0; 
int gdoor1 = 0; 
int gdoor2 = 0; 
int gdoor3 = 0; 
int cdoor = 0; 
door1 = rand.nextInt(3)+1; 
door2 = rand.nextInt(3)+1; 
door3 = rand.nextInt(3)+1; 

if (door1 == door2 || door1 == door3){ 
    door1 = rand.nextInt(3)+1; 
} 
if (door2 == door1 || door2 == door3){ 
    door2 = rand.nextInt(3)+1; 
} 
if (door3 == door1 || door3 == door2){ 
    door3 = rand.nextInt(3)+1; 
} 

System.out.println("Choose A Door"); 
System.out.println(" _____  _____  _____ "); 
System.out.println("|  | |  |  |  |"); 
System.out.println("| 1 | | 2 |  | 3 |"); 
System.out.println("|  | |  |  |  |"); 
System.out.println("|  | |  |  |  |"); 
System.out.println("|_____| |_____|  |_____|"); 
System.out.println("\n"); 


int yourdoor = scan.nextInt(); 
System.out.println("Your Door: "+yourdoor); 

if (door1 == 1 || door1 == 2){ 
    door1 = gdoor1;} 
if (door2 == 1 || door1 == 2){ 
    door2 = gdoor2;} 
if (door3 == 1 || door1 == 2){ 
    door3 = gdoor3;} 

if(door1 == 3){ 
    door1 = cdoor;} 
if(door2 == 3){ 
    door2 = cdoor;} 
if(door3 == 3){ 
    door3 = cdoor;} 

System.out.println("Value = "+cdoor); 




    } 
} 

我正在製作蒙蒂廳遊戲節目。我是新來的,我只是想知道爲什麼最後打印出來的時候,爲什麼總是打印出0.我想打印出值3,因爲我認爲他們會等於 - This Part試圖讓價值觀等於

if(door1 == 3){ 
     door1 = cdoor;} 
    if(door2 == 3){ 
     door2 = cdoor;} 
    if(door3 == 3){ 
     door3 = cdoor;} 

回答

1

因爲cdoor總是0.它永遠不會被修改。也許你的意思是,

if (door1 == 3) { 
    cdoor = door1; 
} 
if (door2 == 3) { 
    cdoor = door2; 
} 
if (door3 == 3) { 
    cdoor = door3; 
} 
+0

哦哇感謝:)現在我覺得啞巴。 –

+0

我有另一個問題...當我隨機化的門1,門2和門3的值我不斷重複數字,所以我把那些如果在那裏重新隨機化他們,但它沒有奏效。任何建議@Flying_Banana –

+0

因爲你再次隨機化,並且由於新值可以是1-3之間的任何值,所以你有33%的機會獲得相同的值。相反,你應該在1-3之間隨機選擇,然後在1-2之間隨機選擇(或者1 3或2 3,這取決於第一個門的號碼是什麼),最後門將會有剩餘數字。 –