Skip to content

Instantly share code, notes, and snippets.

@polaroi8d
Last active November 16, 2016 20:35
Show Gist options
  • Save polaroi8d/6bbf90573ba949e5fff6d29254de568e to your computer and use it in GitHub Desktop.
Save polaroi8d/6bbf90573ba949e5fff6d29254de568e to your computer and use it in GitHub Desktop.
@ai Tiles
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