I was wondering if this code looks neat, and if I should change anything. I was planning to implement Frames (or JFrame
) tomorrow on it. Would it be a good idea to use functions?
import java.lang.Math.*;
import java.util.Random;
import java.util.Scanner;
public class Paradox {
public static void main(String[] args){
System.out.println("\n\nYou have got three doors, there is a price inside each of them. Pick a door: A, B, or C.");
Door A = new Door();
Door B = new Door();
Door C = new Door();
A.open=0;
B.open=0;
C.open=0;
Random rand = new Random();
int i = rand.nextInt(3);
/*System.out.println(i);*/
if(i==0) {
A.goatorcar="Car";
B.goatorcar="Goat";
C.goatorcar="Goat";
}
else if (i==1){
A.goatorcar="Goat";
B.goatorcar="Car";
C.goatorcar="Goat";
}
else if (i==2) {
A.goatorcar="Goat";
B.goatorcar="Goat";
C.goatorcar="Car";
} else { System.out.println("Unexpected error"); }
int pickedA=0;
int pickedB=0;
int pickedC=0;
Scanner sc = new Scanner(System.in);
String pickedDoor = sc.nextLine();
System.out.println("\n");
if (pickedDoor.equals("A") || pickedDoor.equals("1") || pickedDoor.equals("a")){
pickedA = 1;
}
if (pickedDoor.equals("B") || pickedDoor.equals("2") || pickedDoor.equals("b")){
pickedB = 1;
}
if (pickedDoor.equals("C") || pickedDoor.equals("3") || pickedDoor.equals("c")){
pickedC = 1;
}
if(pickedA==1) {
if (A.goatorcar.equals("Car")){
i = rand.nextInt(2);
if (i==0){ System.out.println("The door B contains a Goat"); B.open=1; }
else if (i==1){ System.out.println("The door C contains a Goat"); C.open=1; }
}
else {
if (B.goatorcar=="Goat") { System.out.println("The door B contains a Goat"); B.open=1; }
else if (C.goatorcar=="Goat") { System.out.println("The door C contains a Goat"); C.open=1; }
}
}
else if (pickedB==1) {
if (B.goatorcar.equals("Car")){
i = rand.nextInt(2);
if (i==0){ System.out.println("The door A contains a Goat"); A.open=1; }
else if (i==1){ System.out.println("The door C contains a Goat"); C.open=1; }
}
else {
if (A.goatorcar=="Goat") { System.out.println("The door A contains a Goat"); A.open=1; }
else if (C.goatorcar=="Goat") { System.out.println("The door C contains a Goat"); C.open=1; }
}
}
else if (pickedC==1) {
if (C.goatorcar.equals("Car")){
i = rand.nextInt(2);
if (i==0){ System.out.println("The door A contains a Goat"); A.open=1; }
else if (i==1){ System.out.println("The door B contains a Goat"); B.open=1; }
}
else {
if (A.goatorcar=="Goat") { System.out.println("The door A contains a Goat"); A.open=1; }
else if (B.goatorcar=="Goat") { System.out.println("The door B contains a Goat"); B.open=1; }
}
}
else { System.out.println("You haven't picked any door"); System.exit(0); }
System.out.println("\nKnowing where one of the Goats are, do you wish to stay on your current door, or do you want to change?");
String changeornot = sc.nextLine();
int change=2;
System.out.println();
if (changeornot.equals("change") || changeornot.equals("1") || changeornot.equals("yes")){
change=1;
}
else if (changeornot.equals("stay") || changeornot.equals("0") || changeornot.equals("no")){
change=0;
}
if(change==0){
System.out.print("Congratulations! You stayed, and won a ");
if(pickedA==1){
System.out.println(A.goatorcar);
}
if(pickedB==1){
System.out.println(B.goatorcar);
}
if (pickedC==1){
System.out.println(C.goatorcar);
}
}
else if (change==1){
System.out.print("Congratulations! You changed, and won a ");
if (pickedA==1 && B.open==1) {
System.out.println(C.goatorcar);
}
if (pickedA==1 && C.open==1) {
System.out.println(B.goatorcar);
}
if (pickedB==1 && A.open==1) {
System.out.println(C.goatorcar);
}
if (pickedB==1 && C.open==1) {
System.out.println(A.goatorcar);
}
if (pickedC==1 && A.open==1) {
System.out.println(B.goatorcar);
}
if (pickedC==1 && B.open==1) {
System.out.println(A.goatorcar);
}
}
else if (change==2){ System.out.println("Error at change"); }
/*System.out.println("Door A: " + A.goatorcar);
System.out.println("Door B: " + B.goatorcar);
System.out.println("Door C: " + C.goatorcar);*/
}
}
class Door {
String goatorcar;
int open;
}