First of all, I have my basic main method which does pretty much nothing:
public static void main(String[] args) {
higherOrLower HOL = new higherOrLower();
HOL.playGame();
}
Then I have the class and methods where all the action happens:
import java.util.Arrays;
import java.util.Scanner;
public class higherOrLower {
int set[] = new int[8];
private int flips = 1;
public higherOrLower() {
deck deck = new deck();
for (int i = 0; i < 8; i++) {
set[i] = deck.draw();
}
}
public void playGame() {
Scanner sc = new Scanner(System.in);
paint();
for (int i = 0; i < 7; i++) {
System.out.println("Higher or Lower?");
String an = sc.nextLine();
switch (an) {
case "Higher":
case "higher":
case "H":
case "h":
if (set[i] > set[i + 1]) {
System.out.println("You Lose");
endGame();
}
break;
case "Lower":
case "lower":
case "L":
case "l":
if (set[i] < set[i + 1]) {
System.out.println("You Lose");
endGame();
}
break;
default:
System.out.println("Please enter one of the following \nHigher\nhigher\nH\nh\nLower\nlower\nL\nl");
i--;
break;
}
flips++;
paint();
}
System.out.println("You win!");
endGame();
}
public static void playAgain() {
higherOrLower HOL = new higherOrLower();
HOL.playGame();
}
public void flip() {
flips++;
}
void endGame() {
Scanner sc = new Scanner(System.in);
System.out.println("Play again?");
boolean done = false;
while(!done){
String ans = sc.nextLine();
switch (ans) {
case "Yes":
case "yes":
case "Y":
case "y":
done = true;
playAgain();
break;
case "No":
case "no":
case "N":
case "n":
done = true;
System.exit(0);
break;
default:
System.out.println("Please enter one of the following \nYes\nyes\nY\ny\nNo\nno\nN\nn");
break;
}
}
}
public void paint() {
if (flips == 1) {
for (int i = 0; i < 8; i++) {
graphics(set[0], i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
System.out.println("");
System.out.println("");
for (int i = 0; i < 8; i++) {
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
}
if (flips == 2) {
for (int i = 0; i < 8; i++) {
graphics(set[0], i);
System.out.print(" ");
graphics(set[1], i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
System.out.println("");
System.out.println("");
for (int i = 0; i < 8; i++) {
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
}
if (flips == 3) {
for (int i = 0; i < 8; i++) {
graphics(set[0], i);
System.out.print(" ");
graphics(set[1], i);
System.out.print(" ");
graphics(set[2], i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
System.out.println("");
System.out.println("");
for (int i = 0; i < 8; i++) {
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
}
if (flips == 4) {
for (int i = 0; i < 8; i++) {
graphics(set[0], i);
System.out.print(" ");
graphics(set[1], i);
System.out.print(" ");
graphics(set[2], i);
System.out.print(" ");
graphics(set[3], i);
System.out.println("");
}
System.out.println("");
System.out.println("");
for (int i = 0; i < 8; i++) {
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
}
if (flips == 5) {
for (int i = 0; i < 8; i++) {
graphics(set[0], i);
System.out.print(" ");
graphics(set[1], i);
System.out.print(" ");
graphics(set[2], i);
System.out.print(" ");
graphics(set[3], i);
System.out.println("");
}
System.out.println("");
System.out.println("");
for (int i = 0; i < 8; i++) {
graphics(set[4], i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
}
if (flips == 6) {
for (int i = 0; i < 8; i++) {
graphics(set[0], i);
System.out.print(" ");
graphics(set[1], i);
System.out.print(" ");
graphics(set[2], i);
System.out.print(" ");
graphics(set[3], i);
System.out.println("");
}
System.out.println("");
System.out.println("");
for (int i = 0; i < 8; i++) {
graphics(set[4], i);
System.out.print(" ");
graphics(set[5], i);
System.out.print(" ");
graphics(-1, i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
}
if (flips == 7) {
for (int i = 0; i < 8; i++) {
graphics(set[0], i);
System.out.print(" ");
graphics(set[1], i);
System.out.print(" ");
graphics(set[2], i);
System.out.print(" ");
graphics(set[3], i);
System.out.println("");
}
System.out.println("");
System.out.println("");
for (int i = 0; i < 8; i++) {
graphics(set[4], i);
System.out.print(" ");
graphics(set[5], i);
System.out.print(" ");
graphics(set[6], i);
System.out.print(" ");
graphics(-1, i);
System.out.println("");
}
}
if (flips == 8) {
for (int i = 0; i < 8; i++) {
graphics(set[0], i);
System.out.print(" ");
graphics(set[1], i);
System.out.print(" ");
graphics(set[2], i);
System.out.print(" ");
graphics(set[3], i);
System.out.println("");
}
System.out.println("");
System.out.println("");
for (int i = 0; i < 8; i++) {
graphics(set[4], i);
System.out.print(" ");
graphics(set[5], i);
System.out.print(" ");
graphics(set[6], i);
System.out.print(" ");
graphics(set[7], i);
System.out.println("");
}
}
}
void graphics(int card, int row) {
switch (card) {
case 1:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|A.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......A|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 2:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|2.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......2|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 3:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|3.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......3|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 4:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|4.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......4|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 5:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|5.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......5|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 6:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|6.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......6|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 7:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|7.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......7|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 8:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|8.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......8|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 9:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|9.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......9|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 10:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|10......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|......10|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 11:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|J.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......J|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 12:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|Q.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......Q|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 13:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("|K.......|");
break;
case 3:
System.out.print("|........|");
break;
case 4:
System.out.print("|....֍...|");
break;
case 5:
System.out.print("|........|");
break;
case 6:
System.out.print("|.......K|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case -1:
switch (row) {
case 1:
System.out.print(" ________ ");
break;
case 2:
System.out.print("| |");
break;
case 3:
System.out.print("|\\//\\/\\/\\|");
break;
case 4:
System.out.print("|/\\/\\/\\/\\|");
break;
case 5:
System.out.print("|\\//\\/\\/\\|");
break;
case 6:
System.out.print("|/\\/\\/\\/\\|");
break;
case 7:
System.out.print("|________|");
break;
}
break;
case 0:
System.out.println("000000000000000000000000000000000000000");
default:
System.out.println("error?");
}
}
}
And after that I have one other class, the deck:
public class deck {
public int deck[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
public deck() {
shuffle();
}
private void shuffle() {
Random rnd = ThreadLocalRandom.current();
for (int i = deck.length - 1; i > 0; i--) {
int index = rnd.nextInt(i + 1);
int a = deck[index];
deck[index] = deck[i];
deck[i] = a;
}
}
public int draw(){
int top = 0;
for (int i = 0; i < 52; i++) {
if(deck[i]!=0){
top = deck[i];
deck[i] = 0;
break;
}
}
return top;
}
@Override
public String toString(){
String temp = "[";
for (int i = 0; i < 51; i++) {
temp = temp + deck[i]+",";
}
temp = temp + deck[51] + "]";
return temp;
}
}
What do you think? Could I have done anything better?