I have a little bit of programming experience in web development languages such as HTML, CSS, JQuery, JavaScript, PHP, Python etc., but I am no taking an AP Computer Science class at school to learn Java. To see how similar it is to other languages in both syntax and how to go about different problems I decided to make a simple blackjack game that i have made in other languages before.
I have run into and error where I want to check to see what the user has input, and if it is a certain character, output different things such as a help sentence, welcome message, or just simply start or stop the game. For some reason it reads the input and I can log it to the console but it will not run the methods that I have created and called in the if statement inside the while loop. I am going to post the whole script since I have only been programming in Java for 2 weeks or so now and have no idea where my error could be.
import java.util.Scanner;
public class testClass {
public static void main(String[] args) {
Scanner kbd = new Scanner(System.in);
// Creates a scanner to get input from the keyboard
boolean gameStart = false;
// starts false, turns true when 'B' is input
welcome();
//displays the welcome message
while (true) {
// loop to play the game
String input = kbd.nextLine().toUpperCase();
// gets the next input from the user
if (input == "B") {
// checks the users input
gameStart = true;
// 'turns on' the game
double[] hand = drawCards();
// makes an array of 2 cards
System.out.print(input); //REMOVE
} else if (input == "?") {
// checks the users input
help(gameStart);
// displays the help message depending on if the game has started or not
System.out.print(input); //REMOVE
} else if (input == "Q") {
// checks the users input
System.out.print(input); // REMOVE
break;
// ends the game loop
} // ends if
} // ends while
} // end main
public static void welcome() {
// displays the welcome message
System.out.printf("Welcome to blackjack! %nEnter 'B' to begin. %nEnter '?' at any time to see help %nEnter 'Q' at any time to quit %n => ");
// the welcome message
}
public static void help(boolean gameStart) {
//displays the help message
if (gameStart) {
System.out.printf("Enter '?' at any time to see help %nEnter 'Q' at any time to quit %nEnter 'H' to hit %nEnter 'S' to stay %n => ");
// the help message when the game has already started
} else {
System.out.printf("Welcome to blackjack! %nEnter 'B' to begin. %nEnter '?' at any time to see help %nEnter 'Q' at any time to quit %nEnter 'H' to hit %nEnter 'S' to stay %n => ");
// the help message when the game hasn't started
}
} // end help
public static double randCard() {
// creates a random card
double card = Math.round(Math.random() * 10);
// number 1-10
if (card == 10 || card == 0) {
// no cards at 10 or 0
double x = Math.round(Math.random() * 10);
// variable used to choose J Q K or A when card is 0 or 10
if (x < 3) {
// Jack
card = 11;
} else if (x < 5) {
// Queen
card = 12;
} else if (x < 7) {
// King
card = 13;
} else {
// Ace
card = 10;
}
}
return card;
// returns a single card
} // end randCard
public static double[] drawCards() {
//creates 2 random cards and returns an array
double card1 = randCard();
double card2 = randCard();
// stores the 2 random cards in variables
double[] cards = {card1, card2};
// places the 2 random cards in an array
return cards;
// returns the array of cards
} // end drawCards
} // end class