summaryrefslogtreecommitdiff
path: root/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'bindings')
-rw-r--r--bindings/python/test.py73
-rw-r--r--bindings/quackle.i3
2 files changed, 48 insertions, 28 deletions
diff --git a/bindings/python/test.py b/bindings/python/test.py
index a5e2373..3a95808 100644
--- a/bindings/python/test.py
+++ b/bindings/python/test.py
@@ -2,40 +2,57 @@
import quackle
-# Set up the data manager
-dm = quackle.DataManager()
-dm.setComputerPlayers(quackle.ComputerPlayerCollection.fullCollection())
-dm.setBackupLexicon('twl06')
-dm.setAppDataDirectory('../../data')
-
-# Set up the alphabet
-abc = quackle.AlphabetParameters.findAlphabetFile('english')
-fa = quackle.FlexibleAlphabetParameters()
-assert fa.load(quackle.Util.stdStringToQString(abc))
-dm.setAlphabetParameters(fa)
-
-# Set up the board
-board = quackle.BoardParameters()
-dm.setBoardParameters(board)
-
-# Find the lexicon
-dawg = quackle.LexiconParameters.findDictionaryFile('twl06.dawg')
-gaddag = quackle.LexiconParameters.findDictionaryFile('twl06.gaddag')
-dm.lexiconParameters().loadDawg(dawg)
-dm.lexiconParameters().loadGaddag(gaddag)
-
-dm.strategyParameters().initialize('twl06')
+def startUp(lexicon='twl06',
+ alphabet='english',
+ datadir='../../data'):
+
+ # Set up the data manager
+ dm = quackle.DataManager()
+ dm.setComputerPlayers(quackle.ComputerPlayerCollection.fullCollection())
+ dm.setBackupLexicon(lexicon)
+ dm.setAppDataDirectory(datadir)
+
+ # Set up the alphabet
+ abc = quackle.AlphabetParameters.findAlphabetFile(alphabet)
+ abc2 = quackle.Util.stdStringToQString(abc) #convert to qstring
+ fa = quackle.FlexibleAlphabetParameters()
+ fa.thisown = False
+
+ assert fa.load(abc2)
+ dm.setAlphabetParameters(fa)
+
+ # Set up the board
+ board = quackle.BoardParameters()
+ board.thisown = False
+ dm.setBoardParameters(board)
+
+ # Find the lexicon
+ dawg = quackle.LexiconParameters.findDictionaryFile(lexicon + '.dawg')
+ gaddag = quackle.LexiconParameters.findDictionaryFile(lexicon + '.gaddag')
+ dm.lexiconParameters().loadDawg(dawg)
+ dm.lexiconParameters().loadGaddag(gaddag)
+
+ dm.strategyParameters().initialize(lexicon)
+ return dm
+
+
+def getComputerPlayer(dm, name='Speedy Player'):
+ player, found = dm.computerPlayers().playerForName(name)
+ assert found
+ player = player.computerPlayer()
+ return player
+
+
+dm = startUp()
# Create a computer player
-player1, found = dm.computerPlayers().playerForName('Speedy Player')
-assert found
-player1 = player1.computerPlayer()
+player1 = getComputerPlayer(dm)
print player1.name()
# Create the Game file (.gcg) reader
gamereader = quackle.GCGIO()
-game = gamereader.read(quackle.Util.stdStringToQString('../../test/positions/short_game_with_bad_moves.gcg'),
- quackle.Logania.MaintainBoardPreparation)
+gamePath = quackle.Util.stdStringToQString('../../test/positions/short_game_with_bad_moves.gcg')
+game = gamereader.read(gamePath, quackle.Logania.MaintainBoardPreparation)
# Get the current position
position = game.currentPosition()
diff --git a/bindings/quackle.i b/bindings/quackle.i
index 8ded915..cc8e390 100644
--- a/bindings/quackle.i
+++ b/bindings/quackle.i
@@ -49,6 +49,9 @@
%include "fixedstring.h"
%include "uv.h"
%include "alphabetparameters.h"
+
+%template(LetterParameterVector) std::vector<Quackle::LetterParameter>;
+%template(LetterStringVector) std::vector<Quackle::LetterString>;
%include "move.h"
%include "rack.h"
%include "bag.h"