Last active
November 16, 2016 20:35
-
-
Save polaroi8d/6bbf90573ba949e5fff6d29254de568e to your computer and use it in GitHub Desktop.
@ai Tiles
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import szte.mi.tiles.AbstractTiles; | |
import java.io.StringWriter; | |
public class MyTiles extends AbstractTiles { | |
static int typ = 0; | |
static int lehetoseg = 0; | |
public MyTiles(int x, int y) { | |
super(x,y); | |
} | |
/* Vegignezzuk a lehetosegeket es eltaroljuk ahany lehetoseg van, | |
* kesobb a legkevesebbel fogjuk folytatni. Maximum 8 lehetoseg a legtobb. | |
* Folyamatosan ujra töltjük mindig 0-akkal mert a kurva annya nem akar működni. | |
*/ | |
public static void MakePossibilityTable(MyTiles basic, int[][] posibility){ | |
for (int i=0; i < basic.tiles.length; i++){ | |
for (int j=0; j < basic.tiles[i].length; j++){ | |
posibility[i][j] = 0; | |
} | |
} | |
for (int i=0; i < basic.tiles.length; i++){ | |
for (int j=0; j < basic.tiles[i].length; j++){ | |
if (basic.tiles[i][j] == -1 || basic.tiles[i][j] == 0){ | |
for (typ = 1; typ <= basic.TYPES; typ++){ | |
if (basic.possible(i,j,typ)){ | |
lehetoseg++; | |
} | |
} | |
posibility[i][j] = lehetoseg; | |
} lehetoseg = 0; | |
} | |
} | |
} /* !MakePossibilityTable */ | |
/* Egyszeru seged fugveny, a vegen torlesre kerul, az osszes kiiratassal | |
* egyutt. | |
*/ | |
public static void print(String txt){ | |
System.err.println(txt); | |
} /* !print */ | |
/* Egyszeru seged fugveny, a vegen torlesre kerul, az osszes kiiratassal | |
* egyutt. | |
*/ | |
public static void DrawTables(MyTiles basic, int[][] posibility){ | |
System.err.println(""); | |
System.err.println("<<<<<<<<<<<< CLONED >>>>>>>>>>>>"); | |
System.err.println(basic); | |
System.err.println("<<<<<<<<< POSSIBLETILES >>>>>>>>"); | |
for (int i=0; i < posibility.length; i++){ | |
for (int j=0; j < posibility.length; j++){ | |
System.err.print(" "+posibility[j][i]+" "); | |
} System.err.println(); | |
} | |
} /* !DrawTables */ | |
public boolean getTiling() { | |
MyTiles cloned = (MyTiles)this.clone(); | |
int i, j, lehetoseg = 0, fillUpRet = 0; | |
int ret_val = -1; | |
int type = 1; | |
boolean nincsTobbEgyes = false; | |
int tableLength = cloned.tiles.length; | |
int poss[][] = new int[tableLength][tableLength]; | |
MakePossibilityTable(cloned, poss); | |
for (i=0; i < cloned.tiles.length; ++i){ | |
for (j=0; j < cloned.tiles[i].length; ++j){ | |
if (cloned.tiles[i][j] == -1 && poss[i][j] == 1){ | |
while (type <= 8){ | |
if (cloned.possible(i,j,type)){ | |
cloned.setTile(i,j,type); | |
break; | |
} | |
type++; | |
} | |
} else if (cloned.tiles[i][j] == -1 && poss[i][j] == 0){ | |
return false; | |
} | |
} | |
} | |
DrawTables(cloned, poss); | |
return false; | |
} | |
@Override | |
public String toString() { | |
StringWriter sw = new StringWriter(); | |
for(int j=0; j < tiles[0].length; ++j) | |
{ | |
for(int i=0; i < tiles.length; ++i) | |
{ | |
/* Modositasra kerult az eredeti kiiratas, csak a jobb lathatosag erdekeben | |
* tortentek a modositasok. | |
*/ | |
switch(tiles[i][j]){ | |
case -1: sw.write("-1 "); break; | |
case -2: sw.write("-2 "); break; | |
case -3: sw.write("-3 "); break; | |
case -4: sw.write("-4 "); break; | |
case -5: sw.write("-5 "); break; | |
case -6: sw.write("-6 "); break; | |
case -7: sw.write("-7 "); break; | |
case -8: sw.write("-8 "); break; | |
default: sw.write(" " + tiles[i][j] + " "); break; | |
} | |
/*if(tiles[i][j]<0) sw.write("-1 "); | |
else if(tiles[i][j]==0) sw.write(" . "); | |
else if(tiles[i][j]<=4) sw.write(" X "); | |
else if(tiles[i][j]<=6) sw.write(" | "); | |
else sw.write("---");*/ | |
} | |
sw.write("\n"); | |
} | |
return sw.toString(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment