Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.AWTException;
- import java.awt.MouseInfo;
- import java.awt.Point;
- import java.io.IOException;
- public class Calculations {
- static int score, g, g1;
- Point p1, p;
- static HMM HMM = new HMM();
- static int [][] Bbt, Bbt1, bUp, bUp1;
- static int[][] bb, bb1;
- public static Point move1() throws IOException, InterruptedException, AWTException {
- Point zero = new Point(0, 0);
- for (int x = 1; x <= 5; x++) {
- for (int y = 1; y <= 12; y++) {
- Bbt = cloneArray(Board.Bilgeboard);
- bb = Board.swapedBuilgingBoard(x, y, x+1, y, Bbt);
- //prntarray(bb);
- //System.out.println("bb");
- g = Judge(bb, x, y) + Judge(bb, x+1, y);
- boardUp(bb);
- if(g >= score) {
- score = g;
- Main.move1 = new Point((Main.bilgestart.x + (x*45)), (Main.bilgestart.y + (y*45) - 20));
- if(move2() != zero || g1 > g) {
- Main.move2 = move2();
- } else {
- Main.move2 = new Point(MouseInfo.getPointerInfo().getLocation());
- }
- //System.out.println(x);
- //System.out.println(y);
- //System.out.println(score);
- }
- }
- }
- return new Point(0, 0);
- }
- public static Point move2() throws IOException, InterruptedException, AWTException {
- for (int x = 1; x <= 5; x++) {
- for (int y = 1; y <= 12; y++) {
- Bbt1 = cloneArray(Calculations.Bbt);
- bb1 = Board.swapedBuilgingBoard(x, y, x+1, y, Bbt1);
- g1 = Judge(bb1, x, y) + Judge(bb1, x+1, y);
- if(g1 > score || g1 != 0) {
- return new Point((Main.bilgestart.x + (x*45)), (Main.bilgestart.y + (y*45) - 20));
- }
- }
- }
- return new Point(0, 0);
- }
- public static int[][] boardUp(int[][] a) {
- bUp = cloneArray(a);
- for (int x = 1; x <= 6; x++) {
- for (int y = 1; y <= 12; y++) {
- if(x < 6 && x > 1) {
- if( x+2 < 6 && x > 1) {
- if(a[x][y] == a[x+1][y] && a[x][y] == a[x+2][y]) {
- bUp[x+1][y] = -2;
- bUp[x+2][y] = -2;
- bUp[x][y] = -2;
- } else if(a[x][y] == a[x-1][y] && a[x][y] == a[x-2][y]) {
- bUp[x-1][y] = -2;
- bUp[x-2][y] = -2;
- bUp[x][y] = -2;
- }
- if( x+1 < 6 && x > 1) {
- if(a[x][y] == a[x-1][y] && a[x][y] == a[x+1][y]) {
- bUp[x-1][y] = -2;
- bUp[x+1][y] = -2;
- bUp[x][y] = -2;
- }
- }
- }
- if(y < 12 && y > 1) {
- if( y+2 < 12 && y > 1) {
- if(a[x][y] == a[x][y+1] && a[x][y] == a[x][y+2]) {
- bUp[x][y] = -2;
- bUp[x][y+1] = -2;
- bUp[x][y+2] = -2;
- } else if(a[x][y] == a[x][y-1] && a[x][y] == a[x][y-2]) {
- bUp[x][y] = -2;
- bUp[x][y-1] = -2;
- bUp[x][y-2] = -2;
- }
- if( y+1 < 12 && y > 1) {
- if(a[x][y] == a[x][y-1] && a[x][y] == a[x][y+1]) {
- bUp[x][y] = -2;
- bUp[x][y-1] = -2;
- bUp[x][y+1] = -2;
- }
- }
- if( y+2 < 12 && y > 1) {
- if(a[x][y] == a[x][y-1] && a[x][y] == a[x][y-2] && a[x][y] == a[x][y+1]) {
- bUp[x][y] = -2;
- bUp[x][y-1] = -2;
- bUp[x][y-2] = -2;
- bUp[x][y+1] = -2;
- }
- }
- if( y+2 < 12 && y > 1) {
- if(a[x][y] == a[x][y+1] && a[x][y] == a[x][y+2] && a[x][y] == a[x][y-1]) {
- bUp[x][y] = -2;
- bUp[x][y+1] = -2;
- bUp[x][y+2] = -2;
- bUp[x][y-1] = -2;
- }
- }
- }
- }
- }
- //prntarray(bUp);
- bUp =boardUpd(bUp);
- //prntarray(bUp);
- }
- }
- return bUp;
- }
- public static int[][] boardUpd(int[][] a) {
- bUp1 = cloneArray(bUp);
- int b;
- for (int x = 1; x <= 5; x++) {
- for (int y = 1; y <= 12; y++) {
- if(y < 12 && y > 1) {
- if( y+1 < 12 && y > 1) {
- if(bUp1[x][y] == -2 && bUp1[x][y+1] != -2 ) {
- b = bUp1[x][y+1];
- bUp1[x][y] = b;
- }
- }
- if( y+2 < 12 && y > 1) {
- if(bUp1[x][y] == -2 && bUp1[x][y+1] == -2 && bUp1[x][y+2] != -2) {
- b = bUp1[x][y+2];
- bUp1[x][y] = b;
- }
- }
- if( y+3 < 12 && y > 1) {
- if(bUp1[x][y] == -2 && bUp1[x][y+1] == -2 && bUp1[x][y+2] == -2 && bUp1[x][y+3] != -2) {
- b = bUp1[x][y+3];
- bUp1[x][y] = b;
- }
- }
- }
- }
- }
- return bUp1;
- }
- public static int[][] cloneArray(int[][] src) {
- int length = src.length;
- int[][] target = new int[length][src[0].length];
- for (int i = 0; i < length; i++) {
- System.arraycopy(src[i], 0, target[i], 0, src[i].length);
- }
- return target;
- }
- public static void prntarray(int[][] a) {
- for (int x = 1; x <= 6; x++) {
- for (int y = 1; y <= 12; y++) {
- System.out.print(" " + a[x][y]);
- }
- System.out.println("");
- }
- System.out.println("");
- }
- public static int Judge(int[][] a,int x,int y) {
- int score1 = 0;
- int score2;
- int cd = 0;
- if(x < 6 && x > 1) {
- if( x+2 < 6 && x > 1) {
- if(a[x][y] == a[x+1][y] && a[x][y] == a[x+2][y]) {
- score1 = score1 + 3;
- } else if(a[x][y] == a[x-1][y] && a[x][y] == a[x-2][y]) {
- score1 = score1 +3;
- }
- if( x+1 < 6 && x > 1) {
- if(a[x][y] == a[x-1][y] && a[x][y] == a[x+1][y]) {
- score1 = score1 +3;
- }
- }
- }
- if(y < 12 && y > 1) {
- if( y+2 < 12 && y > 1) {
- if(a[x][y] == a[x][y+1] && a[x][y] == a[x][y+2]) {
- score1 = score1 + 3;
- } else if(a[x][y] == a[x][y-1] && a[x][y] == a[x][y-2]) {
- score1 = score1 +3;
- }
- if( y+1 < 12 && y > 1) {
- if(a[x][y] == a[x][y-1] && a[x][y] == a[x][y+1]) {
- score1 = score1 +3;
- }
- }
- if( y+2 < 12 && y > 1) {
- if(a[x][y] == a[x][y-1] && a[x][y] == a[x][y-2] && a[x][y] == a[x][y+1]) {
- score1 = score1 +4;
- }
- }
- if( y+2 < 12 && y > 1) {
- if(a[x][y] == a[x][y+1] && a[x][y] == a[x][y+2] && a[x][y] == a[x][y-1]) {
- score1 = score1 +4;
- }
- }
- if(score1 != cd) {
- score2 = score1;
- score1 = 0;
- return score2;
- }
- }
- }
- }
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement