summaryrefslogtreecommitdiff
path: root/bindings/ruby/test_base.rb
blob: 6fa7f05974a96d92dbcafac9af49155608a6fa7e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def initialize_dm(lexicon: 'twl06', alphabet: 'english', datadir: '../../data')
  # Set up the data manager
  dm = Quackle::DataManager.new
  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.new

  fail unless fa.load(abc2)
  dm.setAlphabetParameters(fa)

  # Set up the board
  board = Quackle::BoardParameters.new
  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.init(lexicon)
  return dm
end

def get_computer_player(dm, name: 'Speedy Player')
  player, found = dm.computerPlayers.playerForName(name)
  fail unless found
  player.computerPlayer
end