Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Scanner;
- import java.util.concurrent.ThreadLocalRandom;
- public class Game2048 {
- public static void prin(ArrayList<Integer> k) {
- ArrayList<String> j = new ArrayList<String>();
- for (int a = 0; a < k.size(); a++) {
- if (k.get(a) == 0) {
- j.add(" ");
- } else if (k.get(a) == 1) {
- j.add(" 2 ");
- } else if (k.get(a) == 2) {
- j.add(" 4 ");
- } else if (k.get(a) == 3) {
- j.add(" 8 ");
- } else if (k.get(a) == 4) {
- j.add(" 16 ");
- } else if (k.get(a) == 5) {
- j.add(" 32 ");
- } else if (k.get(a) == 6) {
- j.add(" 64 ");
- } else if (k.get(a) == 7) {
- j.add("128 ");
- } else if (k.get(a) == 8) {
- j.add("256 ");
- } else if (k.get(a) == 9) {
- j.add("512 ");
- } else if (k.get(a) == 10) {
- j.add("1024");
- } else if (k.get(a) == 11) {
- j.add("2048");
- } else if (k.get(a) == 12) {
- j.add("4096");
- } else if (k.get(a) == 13) {
- j.add("8192");
- }
- }
- System.out.println(j.get(0) + " | " + j.get(1) + " | " + j.get(2)
- + " | " + j.get(3));
- System.out.println("-------------------------");
- System.out.println(j.get(4) + " | " + j.get(5) + " | " + j.get(6)
- + " | " + j.get(7));
- System.out.println("-------------------------");
- System.out.println(j.get(8) + " | " + j.get(9) + " | " + j.get(10)
- + " | " + j.get(11));
- System.out.println("-------------------------");
- System.out.println(j.get(12) + " | " + j.get(13) + " | " + j.get(14)
- + " | " + j.get(15));
- }
- public static ArrayList<Integer> change(int da, int a, ArrayList<Integer> k) {
- if (k.get(da) != 0) {
- if (k.get(a) == 0) {
- k.set(a, k.get(da));
- k.set(da, 0);
- } else if (k.get(a) == k.get(da)) {
- k.set(a, k.get(da) + 1);
- k.set(da, 0);
- }
- }
- return k;
- }
- public static ArrayList<Integer> moveup(ArrayList<Integer> k) {
- for (int a = 0; a < 10; a++) {
- k = change(4, 0, k);
- k = change(5, 1, k);
- k = change(6, 2, k);
- k = change(7, 3, k);
- k = change(8, 4, k);
- k = change(9, 5, k);
- k = change(10, 6, k);
- k = change(11, 7, k);
- k = change(12, 8, k);
- k = change(13, 9, k);
- k = change(14, 10, k);
- k = change(15, 11, k);
- }
- return k;
- }
- public static ArrayList<Integer> movedown(ArrayList<Integer> k) {
- for (int a = 0; a < 10; a++) {
- k = change(8, 12, k);
- k = change(9, 13, k);
- k = change(10, 14, k);
- k = change(11, 15, k);
- k = change(4, 8, k);
- k = change(5, 9, k);
- k = change(6, 10, k);
- k = change(7, 11, k);
- k = change(0, 4, k);
- k = change(1, 5, k);
- k = change(2, 6, k);
- k = change(3, 7, k);
- }
- return k;
- }
- public static ArrayList<Integer> moveright(ArrayList<Integer> k) {
- for (int a = 0; a < 10; a++) {
- k = change(0, 1, k);
- k = change(1, 2, k);
- k = change(2, 3, k);
- k = change(4, 5, k);
- k = change(5, 6, k);
- k = change(6, 7, k);
- k = change(8, 9, k);
- k = change(9, 10, k);
- k = change(10, 11, k);
- k = change(12, 13, k);
- k = change(13, 14, k);
- k = change(14, 15, k);
- }
- return k;
- }
- public static ArrayList<Integer> moveleft(ArrayList<Integer> k) {
- for (int a = 0; a < 10; a++) {
- k = change(3, 2, k);
- k = change(2, 1, k);
- k = change(1, 0, k);
- k = change(7, 6, k);
- k = change(6, 5, k);
- k = change(5, 4, k);
- k = change(11, 10, k);
- k = change(10, 9, k);
- k = change(9, 8, k);
- k = change(15, 14, k);
- k = change(14, 13, k);
- k = change(13, 12, k);
- }
- return k;
- }
- private static Scanner dd = new Scanner(System.in);
- public static void Game204(String[] args) {
- ArrayList<Integer> list = new ArrayList<Integer>();
- int bh = 0, count = 0;
- boolean bool = true;
- for (int a = 0; a < 16; a++) {
- list.add(0);
- }
- int rand1 = 0;
- int rand = 0;
- while (list.contains(0)) {
- rand = ThreadLocalRandom.current().nextInt(1, 3);
- rand1 = ThreadLocalRandom.current().nextInt(0, 16);
- if (list.get(rand1) == 0) {
- if (rand == 1) {
- list.set(rand1, 1);
- }
- if (rand == 2) {
- list.set(rand1, 2);
- }
- }
- prin(list);
- System.out.println("1 = Sopra: ");
- System.out.println("2 = Sotto: ");
- System.out.println("3 = Sinistra: ");
- System.out.println("4 = Destra: ");
- while (true) {
- System.out.print("Inserire direzione: ");
- bh = dd.nextInt();
- if (bh == 1 | bh == 2 | bh == 3 | bh == 4) {
- break;
- }
- }
- count++;
- if (bh == 1) {
- list = moveup(list);
- } else if (bh == 2) {
- list = movedown(list);
- } else if (bh == 3) {
- list = moveleft(list);
- } else if (bh == 4) {
- list = moveright(list);
- }
- bh = 0;
- if (bool & list.contains(11)) {
- System.out.println("Hai raggiunto 2048 in " + count + " mosse!");
- bool = false;
- dd.nextLine();
- dd.nextLine();
- }
- }
- System.out.println("Hai finito le possibilità in " + count + " mosse!");
- dd.nextLine();
- dd.nextLine();
- }
- public static void main(String[] args) {
- while (true) {
- Game204(args);
- for (int a = 0; a < 1000; a++) {
- System.out.println();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement