Skip to main content
Code Review

Return to Revisions

2 of 4
deleted 17 characters in body; edited title
Jamal
  • 35.2k
  • 13
  • 134
  • 238

Java version of card game "higher or lower"

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?

Clint
  • 111
  • 5
lang-java

AltStyle によって変換されたページ (->オリジナル) /