Advertisement
Dar954826

BlackJack[ENG].java

Mar 5th, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.19 KB | None | 0 0
  1. package ita;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Scanner;
  5. import java.util.concurrent.ThreadLocalRandom;
  6.  
  7. public class BlackJack {
  8.     private static Scanner dd;
  9.  
  10.     public static int princard(ArrayList<Integer> k, boolean x, boolean y) {
  11.         int jj = 0, kk = k.get(jj);
  12.         while (jj != k.size() - 1) {
  13.             kk = kk + k.get(jj + 1);
  14.             jj++;
  15.         }
  16.  
  17.         if (x) {
  18.             if (y) {
  19.                 System.out.println("Totale = " + kk);
  20.             }
  21.             return kk;
  22.         } else {
  23.             kk = kk - 10;
  24.             if (y) {
  25.                 System.out.println("Totale = " + kk);
  26.             }
  27.             return kk;
  28.         }
  29.     }
  30.  
  31.     public static ArrayList<Integer> prin(ArrayList<Integer> k, boolean op) {
  32.         ArrayList<Integer> x = new ArrayList<Integer>();
  33.         StringBuilder cache = new StringBuilder();
  34.         for (int a = 0; a < k.size(); a++) {
  35.             cache.setLength(0);
  36.             if (k.get(a) < 12) {
  37.                 if (k.get(a) == 0) {
  38.                     cache.append("(A) Asso di Picche");
  39.                     x.add(11);
  40.                 } else if (k.get(a) == 11) {
  41.                     cache.append("(K) Re di Picche");
  42.                     x.add(10);
  43.                 } else if (k.get(a) == 10) {
  44.                     cache.append("(Q) Regina di Picche");
  45.                     x.add(10);
  46.                 } else if (k.get(a) == 9) {
  47.                     cache.append("(J) Jack di Picche");
  48.                     x.add(10);
  49.                 } else {
  50.                     cache.append(Integer.toString(k.get(a) + 1) + " di Picche");
  51.                     x.add(k.get(a) + 1);
  52.                 }
  53.             } else if (k.get(a) < 24) {
  54.                 if (k.get(a) == 12) {
  55.                     cache.append("(A) Asso di Cuori");
  56.                     x.add(11);
  57.                 } else if (k.get(a) == 23) {
  58.                     cache.append("(K) Re di Cuori");
  59.                     x.add(10);
  60.                 } else if (k.get(a) == 22) {
  61.                     cache.append("(Q) Regina di Cuori");
  62.                     x.add(10);
  63.                 } else if (k.get(a) == 21) {
  64.                     cache.append("(J) Jack di Cuori");
  65.                     x.add(10);
  66.                 } else {
  67.                     cache.append(Integer.toString(k.get(a) - 11) + " di Cuori");
  68.                     x.add(k.get(a) - 11);
  69.                 }
  70.             } else if (k.get(a) < 36) {
  71.                 if (k.get(a) == 24) {
  72.                     cache.append("(A) Asso di Quadri");
  73.                     x.add(11);
  74.                 } else if (k.get(a) == 35) {
  75.                     cache.append("(K) Re di Quadri");
  76.                     x.add(10);
  77.                 } else if (k.get(a) == 34) {
  78.                     cache.append("(Q) Regina di Quadri");
  79.                     x.add(10);
  80.                 } else if (k.get(a) == 33) {
  81.                     cache.append("(J) Jack di Quadri");
  82.                     x.add(10);
  83.                 } else {
  84.                     cache.append(Integer.toString(k.get(a) - 23) + " di Quadri");
  85.                     x.add(k.get(a) - 23);
  86.                 }
  87.             } else if (k.get(a) < 51) {
  88.                 if (k.get(a) == 36) {
  89.                     cache.append("(A) Asso di Fiori");
  90.                     x.add(11);
  91.                 } else if (k.get(a) == 47) {
  92.                     cache.append("(K) Re di Fiori");
  93.                     x.add(10);
  94.                 } else if (k.get(a) == 46) {
  95.                     cache.append("(Q) Regina di Fiori");
  96.                     x.add(10);
  97.                 } else if (k.get(a) == 45) {
  98.                     cache.append("(J) Jack di Fiori");
  99.                     x.add(10);
  100.                 } else {
  101.                     cache.append(Integer.toString(k.get(a) - 35) + " di Fiori");
  102.                     x.add(k.get(a) - 35);
  103.                 }
  104.             }
  105.             if (op) {
  106.                 System.out.println("Carta " + (a + 1) + " = " + cache);
  107.             } else {
  108.                 {
  109.                     System.out.println("Carta " + (a + 1) + " = ???");
  110.                 }
  111.             }
  112.         }
  113.         return x;
  114.     }
  115.  
  116.     public static void blackjack(String[] args) {
  117.         dd = new Scanner(System.in);
  118.         boolean draw = false;
  119.         boolean won = false;
  120.         boolean can = true;
  121.         boolean may1 = true;
  122.         int sel;
  123.         int totalpla;
  124.         int totalver;
  125.         boolean may = true;
  126.         ArrayList<Integer> a = new ArrayList<Integer>();
  127.         ArrayList<Integer> used = new ArrayList<Integer>();
  128.         ArrayList<Integer> player = new ArrayList<Integer>();
  129.         ArrayList<Integer> playerVal = new ArrayList<Integer>();
  130.         ArrayList<Integer> versus = new ArrayList<Integer>();
  131.         ArrayList<Integer> versusVal = new ArrayList<Integer>();
  132.  
  133.         for (int z = 0; z < 48; z++) {
  134.             a.add(z);
  135.         }
  136.         for (int z = 0; z < 2; z++) {
  137.             while (true) {
  138.                 int rand = ThreadLocalRandom.current().nextInt(1, 48);
  139.                 if (!used.contains(rand)) {
  140.                     player.add(rand);
  141.                     used.add(rand);
  142.                     break;
  143.                 }
  144.             }
  145.         }
  146.         for (int z = 0; z < 2; z++) {
  147.             while (true) {
  148.                 int rand = ThreadLocalRandom.current().nextInt(1, 48);
  149.                 if (!used.contains(rand)) {
  150.                     versus.add(rand);
  151.                     used.add(rand);
  152.                     break;
  153.                 }
  154.             }
  155.  
  156.         }
  157.         while (true) {
  158.             playerVal = prin(player, true);
  159.             totalpla = princard(playerVal, may, true);
  160.             System.out.println("------------");
  161.             versusVal = prin(versus, false);
  162.             totalver = princard(versusVal, true, false);
  163.             System.out.println("Totale = ???");
  164.             if (totalpla == 21 & player.size() == 2) {
  165.                 won = true;
  166.                 can = false;
  167.                 break;
  168.             }
  169.             if (totalver == 21) {
  170.                 won = false;
  171.                 can = false;
  172.                 break;
  173.             }
  174.  
  175.             if (player.size() == 5) {
  176.                 System.out.println("Hai Raggiunto 5 carte!");
  177.                 break;
  178.             } else if (totalpla < 21 & player.size() != 5) {
  179.                 while (true) {
  180.                     System.out.print("Aggiungere una carta [1=Si , 0=no]: ");
  181.                     sel = dd.nextInt();
  182.                     if (sel == 1 | sel == 0) {
  183.                         break;
  184.                     }
  185.                 }
  186.                 if (sel == 1) {
  187.                     while (true) {
  188.                         int rand = ThreadLocalRandom.current().nextInt(1, 48);
  189.                         if (!used.contains(rand)) {
  190.                             player.add(rand);
  191.                             used.add(rand);
  192.                             break;
  193.                         }
  194.                     }
  195.                 }
  196.                 if (sel == 0) {
  197.                     break;
  198.                 }
  199.             } else if (totalpla > 21) {
  200.                 if (may) {
  201.                     if (player.contains(0) | player.contains(12)
  202.                             | player.contains(24) | player.contains(36)) {
  203.                         may = false;
  204.                     } else {
  205.                         won = false;
  206.                         can = false;
  207.                         break;
  208.                     }
  209.                 } else {
  210.                     won = false;
  211.                     can = false;
  212.                     break;
  213.                 }
  214.             } else if (totalpla == 21) {
  215.                 break;
  216.             }
  217.         }
  218.  
  219.         if (can) {
  220.             while (true) {
  221.                 playerVal = prin(player, true);
  222.                 totalpla = princard(playerVal, may, true);
  223.                 System.out.println("------------");
  224.                 versusVal = prin(versus, true);
  225.                 totalver = princard(versusVal, true, true);
  226.                 dd.nextLine();
  227.                 dd.nextLine();
  228.                 if (totalver > totalpla & totalver <= 21) {
  229.                     won = false;
  230.                     break;
  231.                 }
  232.                 if (totalver == 21 & totalpla == 21) {
  233.                     if (player.size() < versus.size()) {
  234.                         won = false;
  235.                         break;
  236.                     } else if (player.size() > versus.size()) {
  237.                         won = true;
  238.                         break;
  239.                     } else if (player.size() == versus.size()) {
  240.                         draw = true;
  241.                         break;
  242.                     }
  243.  
  244.                     else if (totalver == 21) {
  245.                         won = false;
  246.                         break;
  247.                     }
  248.                 }
  249.                 if (versus.size() == 5) {
  250.                     break;
  251.                 }
  252.                 if (totalver == totalpla) {
  253.                     if (player.size() < versus.size()) {
  254.                         won = false;
  255.                         break;
  256.                     }
  257.                 }
  258.                 if (totalver > 21) {
  259.                     if (may1) {
  260.                         if (versus.contains(0) | versus.contains(12)
  261.                                 | versus.contains(24) | versus.contains(36)) {
  262.                             may1 = false;
  263.                         } else {
  264.                             won = true;
  265.                             break;
  266.                         }
  267.                     } else {
  268.                         won = true;
  269.                         break;
  270.                     }
  271.                 }
  272.                 while (true) {
  273.                     int rand = ThreadLocalRandom.current().nextInt(1, 48);
  274.                     if (!used.contains(rand)) {
  275.                         versus.add(rand);
  276.                         used.add(rand);
  277.                         break;
  278.                     }
  279.                 }
  280.             }
  281.         }
  282.         if (draw) {
  283.             System.out.println("Hai Pareggiato");
  284.         } else {
  285.             if (won) {
  286.                 System.out.println("Hai Vinto!");
  287.             } else {
  288.                 System.out.println("Hai Perso!");
  289.             }
  290.         }
  291.         dd.nextLine();
  292.         dd.nextLine();
  293.  
  294.     }
  295.  
  296.     public static void main(String[] args) {
  297.         while (true) {
  298.             blackjack(args);
  299.             for (int a = 0; a < 1000; a++) {
  300.                 System.out.println();
  301.             }
  302.         }
  303.     }
  304. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement