Advertisement
Dar954826

2048[ITA].java

Mar 4th, 2015
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.09 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Scanner;
  3. import java.util.concurrent.ThreadLocalRandom;
  4.  
  5. public class Game2048 {
  6.  
  7.     public static void prin(ArrayList<Integer> k) {
  8.         ArrayList<String> j = new ArrayList<String>();
  9.         for (int a = 0; a < k.size(); a++) {
  10.             if (k.get(a) == 0) {
  11.                 j.add("    ");
  12.             } else if (k.get(a) == 1) {
  13.                 j.add("  2 ");
  14.             } else if (k.get(a) == 2) {
  15.                 j.add("  4 ");
  16.             } else if (k.get(a) == 3) {
  17.                 j.add("  8 ");
  18.             } else if (k.get(a) == 4) {
  19.                 j.add(" 16 ");
  20.             } else if (k.get(a) == 5) {
  21.                 j.add(" 32 ");
  22.             } else if (k.get(a) == 6) {
  23.                 j.add(" 64 ");
  24.             } else if (k.get(a) == 7) {
  25.                 j.add("128 ");
  26.             } else if (k.get(a) == 8) {
  27.                 j.add("256 ");
  28.             } else if (k.get(a) == 9) {
  29.                 j.add("512 ");
  30.             } else if (k.get(a) == 10) {
  31.                 j.add("1024");
  32.             } else if (k.get(a) == 11) {
  33.                 j.add("2048");
  34.             } else if (k.get(a) == 12) {
  35.                 j.add("4096");
  36.             } else if (k.get(a) == 13) {
  37.                 j.add("8192");
  38.             }
  39.         }
  40.         System.out.println(j.get(0) + " | " + j.get(1) + " | " + j.get(2)
  41.                 + " | " + j.get(3));
  42.         System.out.println("-------------------------");
  43.         System.out.println(j.get(4) + " | " + j.get(5) + " | " + j.get(6)
  44.                 + " | " + j.get(7));
  45.         System.out.println("-------------------------");
  46.         System.out.println(j.get(8) + " | " + j.get(9) + " | " + j.get(10)
  47.                 + " | " + j.get(11));
  48.         System.out.println("-------------------------");
  49.         System.out.println(j.get(12) + " | " + j.get(13) + " | " + j.get(14)
  50.                 + " | " + j.get(15));
  51.     }
  52.  
  53.     public static ArrayList<Integer> change(int da, int a, ArrayList<Integer> k) {
  54.         if (k.get(da) != 0) {
  55.             if (k.get(a) == 0) {
  56.                 k.set(a, k.get(da));
  57.                 k.set(da, 0);
  58.             } else if (k.get(a) == k.get(da)) {
  59.                 k.set(a, k.get(da) + 1);
  60.                 k.set(da, 0);
  61.             }
  62.         }
  63.         return k;
  64.     }
  65.  
  66.     public static ArrayList<Integer> moveup(ArrayList<Integer> k) {
  67.         for (int a = 0; a < 10; a++) {
  68.             k = change(4, 0, k);
  69.             k = change(5, 1, k);
  70.             k = change(6, 2, k);
  71.             k = change(7, 3, k);
  72.             k = change(8, 4, k);
  73.             k = change(9, 5, k);
  74.             k = change(10, 6, k);
  75.             k = change(11, 7, k);
  76.             k = change(12, 8, k);
  77.             k = change(13, 9, k);
  78.             k = change(14, 10, k);
  79.             k = change(15, 11, k);
  80.         }
  81.         return k;
  82.     }
  83.  
  84.     public static ArrayList<Integer> movedown(ArrayList<Integer> k) {
  85.         for (int a = 0; a < 10; a++) {
  86.             k = change(8, 12, k);
  87.             k = change(9, 13, k);
  88.             k = change(10, 14, k);
  89.             k = change(11, 15, k);
  90.             k = change(4, 8, k);
  91.             k = change(5, 9, k);
  92.             k = change(6, 10, k);
  93.             k = change(7, 11, k);
  94.             k = change(0, 4, k);
  95.             k = change(1, 5, k);
  96.             k = change(2, 6, k);
  97.             k = change(3, 7, k);
  98.         }
  99.         return k;
  100.     }
  101.  
  102.     public static ArrayList<Integer> moveright(ArrayList<Integer> k) {
  103.         for (int a = 0; a < 10; a++) {
  104.             k = change(0, 1, k);
  105.             k = change(1, 2, k);
  106.             k = change(2, 3, k);
  107.             k = change(4, 5, k);
  108.             k = change(5, 6, k);
  109.             k = change(6, 7, k);
  110.             k = change(8, 9, k);
  111.             k = change(9, 10, k);
  112.             k = change(10, 11, k);
  113.             k = change(12, 13, k);
  114.             k = change(13, 14, k);
  115.             k = change(14, 15, k);
  116.         }
  117.         return k;
  118.     }
  119.  
  120.     public static ArrayList<Integer> moveleft(ArrayList<Integer> k) {
  121.         for (int a = 0; a < 10; a++) {
  122.             k = change(3, 2, k);
  123.             k = change(2, 1, k);
  124.             k = change(1, 0, k);
  125.             k = change(7, 6, k);
  126.             k = change(6, 5, k);
  127.             k = change(5, 4, k);
  128.             k = change(11, 10, k);
  129.             k = change(10, 9, k);
  130.             k = change(9, 8, k);
  131.             k = change(15, 14, k);
  132.             k = change(14, 13, k);
  133.             k = change(13, 12, k);
  134.         }
  135.         return k;
  136.     }
  137.  
  138.     private static Scanner dd = new Scanner(System.in);
  139.  
  140.     public static void Game204(String[] args) {
  141.         ArrayList<Integer> list = new ArrayList<Integer>();
  142.         int bh = 0, count = 0;
  143.         boolean bool = true;
  144.         for (int a = 0; a < 16; a++) {
  145.             list.add(0);
  146.         }
  147.         int rand1 = 0;
  148.         int rand = 0;
  149.         while (list.contains(0)) {
  150.             rand = ThreadLocalRandom.current().nextInt(1, 3);
  151.             rand1 = ThreadLocalRandom.current().nextInt(0, 16);
  152.             if (list.get(rand1) == 0) {
  153.  
  154.                 if (rand == 1) {
  155.                     list.set(rand1, 1);
  156.                 }
  157.                 if (rand == 2) {
  158.                     list.set(rand1, 2);
  159.                 }
  160.             }
  161.             prin(list);
  162.             System.out.println("1 = Sopra: ");
  163.             System.out.println("2 = Sotto: ");
  164.             System.out.println("3 = Sinistra: ");
  165.             System.out.println("4 = Destra: ");
  166.             while (true) {
  167.                 System.out.print("Inserire direzione: ");
  168.                 bh = dd.nextInt();
  169.                 if (bh == 1 | bh == 2 | bh == 3 | bh == 4) {
  170.                     break;
  171.                 }
  172.             }
  173.             count++;
  174.             if (bh == 1) {
  175.                 list = moveup(list);
  176.             } else if (bh == 2) {
  177.                 list = movedown(list);
  178.             } else if (bh == 3) {
  179.                 list = moveleft(list);
  180.             } else if (bh == 4) {
  181.                 list = moveright(list);
  182.             }
  183.             bh = 0;
  184.             if (bool & list.contains(11)) {
  185.                 System.out.println("Hai raggiunto 2048 in " + count + " mosse!");
  186.                 bool = false;
  187.                 dd.nextLine();
  188.                 dd.nextLine();
  189.             }
  190.         }
  191.         System.out.println("Hai finito le possibilità in " + count + " mosse!");
  192.         dd.nextLine();
  193.         dd.nextLine();
  194.     }
  195.  
  196.     public static void main(String[] args) {
  197.         while (true) {
  198.             Game204(args);
  199.             for (int a = 0; a < 1000; a++) {
  200.                 System.out.println();
  201.             }
  202.         }
  203.     }
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement