Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package eng;
- import java.util.ArrayList;
- import java.util.Scanner;
- import java.util.concurrent.ThreadLocalRandom;
- public class BlackJack {
- private static Scanner dd;
- public static int princard(ArrayList<Integer> k, boolean x, boolean y) {
- int jj = 0, kk = k.get(jj);
- while (jj != k.size() - 1) {
- kk = kk + k.get(jj + 1);
- jj++;
- }
- if (x) {
- if (y) {
- System.out.println("Total = " + kk);
- }
- return kk;
- } else {
- kk = kk - 10;
- if (y) {
- System.out.println("Total = " + kk);
- }
- return kk;
- }
- }
- public static ArrayList<Integer> prin(ArrayList<Integer> k, boolean op) {
- ArrayList<Integer> x = new ArrayList<Integer>();
- StringBuilder cache = new StringBuilder();
- for (int a = 0; a < k.size(); a++) {
- cache.setLength(0);
- if (k.get(a) < 12) {
- if (k.get(a) == 0) {
- cache.append("(A) Ace of Spade");
- x.add(11);
- } else if (k.get(a) == 11) {
- cache.append("(K) King of Spades");
- x.add(10);
- } else if (k.get(a) == 10) {
- cache.append("(Q) Queen of Spades");
- x.add(10);
- } else if (k.get(a) == 9) {
- cache.append("(J) Jack of Spades");
- x.add(10);
- } else {
- cache.append(Integer.toString(k.get(a) + 1) + " of Spades");
- x.add(k.get(a) + 1);
- }
- } else if (k.get(a) < 24) {
- if (k.get(a) == 12) {
- cache.append("(A) Ace of Heart ");
- x.add(11);
- } else if (k.get(a) == 23) {
- cache.append("(K) King of Hearts ");
- x.add(10);
- } else if (k.get(a) == 22) {
- cache.append("(Q) Queen of Hearts ");
- x.add(10);
- } else if (k.get(a) == 21) {
- cache.append("(J) Jack of Hearts ");
- x.add(10);
- } else {
- cache.append(Integer.toString(k.get(a) - 11) + " of Hearts ");
- x.add(k.get(a) - 11);
- }
- } else if (k.get(a) < 36) {
- if (k.get(a) == 24) {
- cache.append("(A) Ace of Diamond");
- x.add(11);
- } else if (k.get(a) == 35) {
- cache.append("(K) King of Diamonds");
- x.add(10);
- } else if (k.get(a) == 34) {
- cache.append("(Q) Queen of Diamonds");
- x.add(10);
- } else if (k.get(a) == 33) {
- cache.append("(J) Jack of Diamonds");
- x.add(10);
- } else {
- cache.append(Integer.toString(k.get(a) - 23) + " of Diamonds");
- x.add(k.get(a) - 23);
- }
- } else if (k.get(a) < 51) {
- if (k.get(a) == 36) {
- cache.append("(A) Ace of Club");
- x.add(11);
- } else if (k.get(a) == 47) {
- cache.append("(K) King of Clubs");
- x.add(10);
- } else if (k.get(a) == 46) {
- cache.append("(Q) Queen of Clubs");
- x.add(10);
- } else if (k.get(a) == 45) {
- cache.append("(J) Jack of Clubs");
- x.add(10);
- } else {
- cache.append(Integer.toString(k.get(a) - 35) + " of Clubs");
- x.add(k.get(a) - 35);
- }
- }
- if (op) {
- System.out.println("Card " + (a + 1) + " = " + cache);
- } else {
- {
- System.out.println("Card " + (a + 1) + " = ???");
- }
- }
- }
- return x;
- }
- public static void blackjack(String[] args) {
- dd = new Scanner(System.in);
- boolean draw = false;
- boolean won = false;
- boolean can = true;
- boolean may1 = true;
- int sel;
- int totalpla;
- int totalver;
- boolean may = true;
- ArrayList<Integer> a = new ArrayList<Integer>();
- ArrayList<Integer> used = new ArrayList<Integer>();
- ArrayList<Integer> player = new ArrayList<Integer>();
- ArrayList<Integer> playerVal = new ArrayList<Integer>();
- ArrayList<Integer> versus = new ArrayList<Integer>();
- ArrayList<Integer> versusVal = new ArrayList<Integer>();
- for (int z = 0; z < 48; z++) {
- a.add(z);
- }
- for (int z = 0; z < 2; z++) {
- while (true) {
- int rand = ThreadLocalRandom.current().nextInt(1, 48);
- if (!used.contains(rand)) {
- player.add(rand);
- used.add(rand);
- break;
- }
- }
- }
- for (int z = 0; z < 2; z++) {
- while (true) {
- int rand = ThreadLocalRandom.current().nextInt(1, 48);
- if (!used.contains(rand)) {
- versus.add(rand);
- used.add(rand);
- break;
- }
- }
- }
- while (true) {
- playerVal = prin(player, true);
- totalpla = princard(playerVal, may, true);
- System.out.println("------------");
- versusVal = prin(versus, false);
- totalver = princard(versusVal, true, false);
- System.out.println("Total = ???");
- if (totalpla == 21 & player.size() == 2) {
- won = true;
- can = false;
- break;
- }
- if (totalver == 21) {
- won = false;
- can = false;
- break;
- }
- if (player.size() == 5) {
- System.out.println("You Kingach 5 card!");
- break;
- } else if (totalpla < 21 & player.size() != 5) {
- while (true) {
- System.out.print("Add a card [1=Yes , 0=No]: ");
- sel = dd.nextInt();
- if (sel == 1 | sel == 0) {
- break;
- }
- }
- if (sel == 1) {
- while (true) {
- int rand = ThreadLocalRandom.current().nextInt(1, 48);
- if (!used.contains(rand)) {
- player.add(rand);
- used.add(rand);
- break;
- }
- }
- }
- if (sel == 0) {
- break;
- }
- } else if (totalpla > 21) {
- if (may) {
- if (player.contains(0) | player.contains(12)
- | player.contains(24) | player.contains(36)) {
- may = false;
- } else {
- won = false;
- can = false;
- break;
- }
- } else {
- won = false;
- can = false;
- break;
- }
- } else if (totalpla == 21) {
- break;
- }
- }
- if (can) {
- while (true) {
- playerVal = prin(player, true);
- totalpla = princard(playerVal, may, true);
- System.out.println("------------");
- versusVal = prin(versus, true);
- totalver = princard(versusVal, true, true);
- dd.nextLine();
- dd.nextLine();
- if (totalver > totalpla & totalver <= 21) {
- won = false;
- break;
- }
- if (totalver == 21 & totalpla == 21) {
- if (player.size() < versus.size()) {
- won = false;
- break;
- } else if (player.size() > versus.size()) {
- won = true;
- break;
- } else if (player.size() == versus.size()) {
- draw = true;
- break;
- }
- else if (totalver == 21) {
- won = false;
- break;
- }
- }
- if (versus.size() == 5) {
- break;
- }
- if (totalver == totalpla) {
- if (player.size() < versus.size()) {
- won = false;
- break;
- }
- }
- if (totalver > 21) {
- if (may1) {
- if (versus.contains(0) | versus.contains(12)
- | versus.contains(24) | versus.contains(36)) {
- may1 = false;
- } else {
- won = true;
- break;
- }
- } else {
- won = true;
- break;
- }
- }
- while (true) {
- int rand = ThreadLocalRandom.current().nextInt(1, 48);
- if (!used.contains(rand)) {
- versus.add(rand);
- used.add(rand);
- break;
- }
- }
- }
- }
- if (draw) {
- System.out.println("You Draw");
- } else {
- if (won) {
- System.out.println("You Won!");
- } else {
- System.out.println("You Lose!");
- }
- }
- dd.nextLine();
- dd.nextLine();
- }
- public static void main(String[] args) {
- while (true) {
- blackjack(args);
- for (int a = 0; a < 1000; a++) {
- System.out.println();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement