📄 test.java
字号:
package jmetest.monkeymahjongg.playground.model;
public class Test {
private static final class GUITile implements ITileListener {
private Tile tile;
public GUITile(Tile tile) {
this.tile = tile;
}
public void removed(Tile tile) {
System.out.println("Tile " + tile + " removed "
+ tile.getGroup().getTextureResource(tile));
tile.setTileListener(null);
}
public void selected(Tile tile, TileSelection selection) {
if (selection == TileSelection.first)
System.out.println("Tile " + tile + " selected "
+ tile.getGroup().getTextureResource(tile));
else if (selection == TileSelection.match)
System.out.println("Tile " + tile + " selected (match) "
+ tile.getGroup().getTextureResource(tile));
else
System.out.println("Tile " + tile + " unselected "
+ tile.getGroup().getTextureResource(tile));
}
public Tile getTile() {
return tile;
}
}
public static void main(String[] args) {
int maxRemovedTiles = 0;
while (maxRemovedTiles < 144) {
maxRemovedTiles = Math.max(maxRemovedTiles,
testBoard("level/butterfly.xml"));
maxRemovedTiles = Math.max(maxRemovedTiles,
testBoard("level/standard.xml"));
maxRemovedTiles = Math.max(maxRemovedTiles,
testBoard("level/block.xml"));
maxRemovedTiles = Math.max(maxRemovedTiles,
testBoard("level/castle.xml"));
maxRemovedTiles = Math.max(maxRemovedTiles,
testBoard("level/stairs.xml"));
maxRemovedTiles = Math.max(maxRemovedTiles,
testBoard("level/towers.xml"));
System.out.println("best result so far: " + maxRemovedTiles);
System.gc();
}
System.out.println("best result: " + maxRemovedTiles);
}
private static int testBoard(String level) {
int removedTiles = 0;
System.out.println("Testing board " + level);
Board b = new Board(new XMLLevel(level));
int missingTileCount = b.getMissingTileCount();
if (missingTileCount == 0) {
System.out.println("board is valid");
removedTiles = enumerating(b);
} else {
System.err.println(String.format(
"board is not valid, %d tiles missing", missingTileCount));
}
System.out.println("=====================");
return removedTiles;
}
private static int enumerating(Board board) {
for( Tile tile : board )
{
if (tile != null) {
GUITile guiTile = new GUITile(tile);
tile.setTileListener(guiTile);
}
}
while (true) {
Hint hint = board.getHint();
if (hint == null) {
System.out.println("no more hints");
break;
}
hint.getFirst().select();
hint.getSecond().select();
}
int tileCount = board.getTileCount();
int originalTileCount = board.getOriginalTileCount();
int removedTiles = originalTileCount - tileCount;
System.out.println(String.format(
"done. %d tiles removed. %d/%d tiles remaining", removedTiles,
tileCount, originalTileCount));
return removedTiles;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -