The AI now is only computing its turn for a reasonable amount of time
git-svn-id: svn://sunsvr01.isp.uni-luebeck.de/swproj13/trunk@562 72836036-5685-4462-b002-a69064685172
This commit is contained in:
parent
9861417ac1
commit
8c6bf9781f
1 changed files with 28 additions and 14 deletions
|
@ -102,14 +102,7 @@ public class AIControl extends AbstractTurnControl {
|
||||||
}
|
}
|
||||||
if (useBackgroundThread) {
|
if (useBackgroundThread) {
|
||||||
|
|
||||||
Timer timer = new Timer(10000, new ActionListener() {
|
startTimers();
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
logic.autoAbort();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
timer.setRepeats(false);
|
|
||||||
timer.start();
|
|
||||||
|
|
||||||
Thread computeThread = new Thread(new Runnable() {
|
Thread computeThread = new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -131,6 +124,28 @@ public class AIControl extends AbstractTurnControl {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void startTimers() {
|
||||||
|
Timer timer = new Timer(10000, new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
logic.autoAbort();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
timer.setRepeats(false);
|
||||||
|
timer.start();
|
||||||
|
|
||||||
|
timer = new Timer((int) (turnInfo.getRoundState().getGameSettings()
|
||||||
|
.getTotalTime() * 1000 * (0.5 + 0.25 * Math.random())),
|
||||||
|
new ActionListener() {
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
executeTurn();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
timer.setRepeats(false);
|
||||||
|
timer.start();
|
||||||
|
}
|
||||||
|
|
||||||
private void addHandStones(List<Stone> handStones) {
|
private void addHandStones(List<Stone> handStones) {
|
||||||
for (Pair<Stone, Position> entry : turnInfo.getHand()) {
|
for (Pair<Stone, Position> entry : turnInfo.getHand()) {
|
||||||
handStones.add(entry.getFirst());
|
handStones.add(entry.getFirst());
|
||||||
|
@ -163,8 +178,8 @@ public class AIControl extends AbstractTurnControl {
|
||||||
for (StoneSet set : result) {
|
for (StoneSet set : result) {
|
||||||
turnInfo.getTable().drop(
|
turnInfo.getTable().drop(
|
||||||
set,
|
set,
|
||||||
new Position(10 * (Math.random() * 2 - 1), 5 * (Math
|
new Position(10 * (Math.random() * 2 - 1),
|
||||||
.random() * 2 - 1)));
|
5 * (Math.random() * 2 - 1)));
|
||||||
for (Stone stone : set) {
|
for (Stone stone : set) {
|
||||||
turnInfo.getHand().pickUp(stone);
|
turnInfo.getHand().pickUp(stone);
|
||||||
}
|
}
|
||||||
|
@ -176,11 +191,10 @@ public class AIControl extends AbstractTurnControl {
|
||||||
|
|
||||||
private void doNotMoveExistingSets(List<StoneSet> result) {
|
private void doNotMoveExistingSets(List<StoneSet> result) {
|
||||||
|
|
||||||
outerLoop: for (Iterator<Pair<StoneSet, Position>> it = turnInfo
|
outerLoop: for (Iterator<Pair<StoneSet, Position>> it = turnInfo.getTable()
|
||||||
.getTable().iterator(); it.hasNext();) {
|
.iterator(); it.hasNext();) {
|
||||||
Pair<StoneSet, Position> pair = it.next();
|
Pair<StoneSet, Position> pair = it.next();
|
||||||
setSearch: for (Iterator<StoneSet> it2 = result.iterator(); it2
|
setSearch: for (Iterator<StoneSet> it2 = result.iterator(); it2.hasNext();) {
|
||||||
.hasNext();) {
|
|
||||||
StoneSet set = it2.next();
|
StoneSet set = it2.next();
|
||||||
if (set.getSize() != pair.getFirst().getSize()) {
|
if (set.getSize() != pair.getFirst().getSize()) {
|
||||||
continue;
|
continue;
|
||||||
|
|
Reference in a new issue