diff --git a/.gitignore b/.gitignore
index 65860b52..0f92220e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -82,3 +82,4 @@ gamedb*
install/**/*.bak
install/**/*.dir
install/**/*.dat
+install/dist/table_manager_client.zip
diff --git a/demo/viz.js b/demo/viz.js
index 2812a777..ce98f348 100644
--- a/demo/viz.js
+++ b/demo/viz.js
@@ -358,8 +358,8 @@ class PlayInfo {
if ("candidates" in this.data && this.data.candidates.length > 0) {
html += '
Candidates
'
- html += 'We have 3 different parameters for selecting the card, and first goal is to make/set the contract (if not matchpoints), then the double dummy score, and finally the score from the neural network.'
- html += 'But if the quality of the samples are bad (or the nn suggest a specific card with confidence), then we select the that card.'
+ html += '
We have 3 different parameters for selecting the card, and first goal is to make/set the contract (if not matchpoints), then the double dummy score, and finally the score from the neural network. '
+ html += 'If the quality of the samples are bad (or the nn suggest a specific card with confidence), then we select the that card. '
html += 'Also be aware that the data is rounded to nearest even number before comparing.
'
html += ''
diff --git a/scripts/data/epbot/html/viz.js b/scripts/data/epbot/html/viz.js
index 792904f2..9f21252f 100644
--- a/scripts/data/epbot/html/viz.js
+++ b/scripts/data/epbot/html/viz.js
@@ -356,8 +356,8 @@ class PlayInfo {
if ("candidates" in this.data && this.data.candidates.length > 0) {
html += 'Candidates
'
- html += 'We have 3 different parameters for selecting the card, and first goal is to make/set the contract (if not matchpoints), then the double dummy score, and finally the score from the neural network.'
- html += 'But if the quality of the samples are bad (or the nn suggest a specific card with confidence), then we select the that card.'
+ html += '
We have 3 different parameters for selecting the card, and first goal is to make/set the contract (if not matchpoints), then the double dummy score, and finally the score from the neural network. '
+ html += 'If the quality of the samples are bad (or the nn suggest a specific card with confidence), then we select the that card. '
html += 'Also be aware that the data is rounded to nearest even number before comparing.
'
html += ''
diff --git a/src/bots.py b/src/bots.py
index aca10be6..2d48fb40 100644
--- a/src/bots.py
+++ b/src/bots.py
@@ -1152,7 +1152,7 @@ def get_card_ev_mp(self, dd_solved, probabilities_list):
for ft, proba in zip(future_tricks, probabilities_list):
if ft < 0:
continue
- ev_sum += ft * proba
+ ev_sum += ft * proba * 100
card_ev[card] = ev_sum
return card_ev
@@ -1167,7 +1167,7 @@ def get_card_ev_mp(self, dd_solved):
continue
tot_tricks = self.n_tricks_taken + ft
tot_decl_tricks = tot_tricks if self.player_i % 2 == 1 else 13 - tot_tricks
- ev_sum += sign * tot_decl_tricks
+ ev_sum += sign * tot_decl_tricks * 100
card_ev[card] = ev_sum / len(future_tricks)
return card_ev
diff --git a/src/config/default_api.conf b/src/config/default_api.conf
index 78ca2633..81991e74 100644
--- a/src/config/default_api.conf
+++ b/src/config/default_api.conf
@@ -21,8 +21,8 @@ matchpoint = True
contract = models/contract/contract-193200
[bidding]
-bidder = UCBC 2024/Models/bidding_V2-5540000
-info = UCBC 2024/Models/binfo_V2-5254000
+bidder = models/archive/gib21/bidding_V2-5540000
+info = models/archive/gib21_info/binfo_V2-5254000
# If there are multiple bids over this threshold make a simulation for the bids
search_threshold = 0.07
# If there is bid above this threshold, make that bid ignoring other bids
diff --git a/src/frontend/api.html b/src/frontend/api.html
index 70d68be9..14eee43c 100644
--- a/src/frontend/api.html
+++ b/src/frontend/api.html
@@ -619,12 +619,12 @@ Sampl
}
function displayPlay(data, player, declarer) {
- let html = "Play
" + this.data["card"] + " selected by " + this.data["who"] + "
"
+ let html = "Play
" + data["card"] + " selected by " + data["who"] + "
"
if ("candidates" in data && data.candidates.length > 0) {
html += 'Candidates
'
- html += 'We have 3 different parameters for selecting the card, and first goal is to make/set the contract (if not matchpoints), then the double dummy score, and finally the score from the neural network.'
- html += 'But if the quality of the samples are bad (or the nn suggest a specific card with confidence), then we select the that card.'
+ html += '
We have 3 different parameters for selecting the card, and first goal is to make/set the contract (if not matchpoints), then the double dummy score, and finally the score from the neural network. '
+ html += 'If the quality of the samples are bad (or the nn suggest a specific card with confidence), then we select the that card. '
html += 'Also be aware that the data is rounded to nearest even number before comparing.
'
html += ''
diff --git a/src/frontend/viz.js b/src/frontend/viz.js
index 4b2da1b0..bd1a70f0 100644
--- a/src/frontend/viz.js
+++ b/src/frontend/viz.js
@@ -354,8 +354,8 @@ class PlayInfo {
if ("candidates" in this.data && this.data.candidates.length > 0) {
html += 'Candidates
'
- html += 'We have 3 different parameters for selecting the card, and first goal is to make/set the contract (if not matchpoints), then the double dummy score, and finally the score from the neural network.'
- html += 'But if the quality of the samples are bad (or the nn suggest a specific card with confidence), then we select the that card.'
+ html += '
We have 3 different parameters for selecting the card, and first goal is to make/set the contract (if not matchpoints), then the double dummy score, and finally the score from the neural network. '
+ html += 'If the quality of the samples are bad (or the nn suggest a specific card with confidence), then we select the that card. '
html += 'Also be aware that the data is rounded to nearest even number before comparing.
'
html += ''
diff --git a/src/table_manager_client.py b/src/table_manager_client.py
index 032347a4..a01be9c4 100644
--- a/src/table_manager_client.py
+++ b/src/table_manager_client.py
@@ -129,10 +129,11 @@ async def connect(self, host, port):
matches = re.findall(pattern, opponents)
# Extracted text from the second set of quotes
- if self.seat == "North" or self.seat == "South":
- self.opponents = matches[1]
- else:
- self.opponents = matches[0]
+ if len(matches) > 1:
+ if self.seat == "North" or self.seat == "South":
+ self.opponents = matches[1]
+ else:
+ self.opponents = matches[0]
async def bidding(self):
vuln = [self.vuln_ns, self.vuln_ew]