fix database regarding difference of no and empty color/rank clues
This commit is contained in:
parent
b29b7af2b0
commit
98c9f56f36
3 changed files with 26 additions and 16 deletions
17
database.py
17
database.py
|
@ -159,8 +159,10 @@ def init_static_tables():
|
||||||
synesthesia = var.get('synesthesia', False)
|
synesthesia = var.get('synesthesia', False)
|
||||||
chimneys = var.get('chimneys', False)
|
chimneys = var.get('chimneys', False)
|
||||||
funnels = var.get('funnels', False)
|
funnels = var.get('funnels', False)
|
||||||
no_color_clues = var.get('colorCluesTouchNothing', False)
|
no_color_clues = var.get('clueColors', None) == []
|
||||||
no_rank_clues = var.get('rankCluesTouchNothing', False)
|
no_rank_clues = var.get('clueRanks', None) == []
|
||||||
|
empty_color_clues = var.get('colorCluesTouchNothing', False)
|
||||||
|
empty_rank_clues = var.get('rankCluesTouchNothing', False)
|
||||||
odds_and_evens = var.get('oddsAndEvens', False)
|
odds_and_evens = var.get('oddsAndEvens', False)
|
||||||
up_or_down = var.get('upOrDown', False)
|
up_or_down = var.get('upOrDown', False)
|
||||||
critical_fours = var.get('criticalFours', False)
|
critical_fours = var.get('criticalFours', False)
|
||||||
|
@ -171,7 +173,6 @@ def init_static_tables():
|
||||||
special_rank_no_colors = var.get('specialNoClueColors', False)
|
special_rank_no_colors = var.get('specialNoClueColors', False)
|
||||||
special_rank_all_colors = var.get('specialAllClueColors', False)
|
special_rank_all_colors = var.get('specialAllClueColors', False)
|
||||||
special_rank = var.get('specialRank', None)
|
special_rank = var.get('specialRank', None)
|
||||||
clue_ranks = var.get('clueRanks', [1, 2, 3, 4, 5])
|
|
||||||
|
|
||||||
assert(not all([special_rank_all_ranks, special_rank_no_ranks]))
|
assert(not all([special_rank_all_ranks, special_rank_no_ranks]))
|
||||||
assert(not all([special_rank_all_colors, special_rank_no_colors]))
|
assert(not all([special_rank_all_colors, special_rank_no_colors]))
|
||||||
|
@ -182,15 +183,15 @@ def init_static_tables():
|
||||||
cur.execute(
|
cur.execute(
|
||||||
"INSERT INTO variants ("
|
"INSERT INTO variants ("
|
||||||
"id, name, clue_starved, throw_it_in_a_hole, alternating_clues, synesthesia, chimneys, funnels,"
|
"id, name, clue_starved, throw_it_in_a_hole, alternating_clues, synesthesia, chimneys, funnels,"
|
||||||
"no_color_clues, no_rank_clues, odds_and_evens, up_or_down, critical_fours, num_suits, special_rank,"
|
"no_color_clues, no_rank_clues, empty_color_clues, empty_rank_clues, odds_and_evens, up_or_down,"
|
||||||
"special_rank_ranks, special_rank_colors"
|
"critical_fours, num_suits, special_rank, special_rank_ranks, special_rank_colors"
|
||||||
")"
|
")"
|
||||||
"VALUES"
|
"VALUES"
|
||||||
"(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
|
"(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
|
||||||
(
|
(
|
||||||
var_id, name, clue_starved, throw_it_in_a_hole, alternating_clues, synesthesia, chimneys, funnels,
|
var_id, name, clue_starved, throw_it_in_a_hole, alternating_clues, synesthesia, chimneys, funnels,
|
||||||
no_color_clues, no_rank_clues, odds_and_evens, up_or_down, critical_fours, num_suits, special_rank,
|
no_color_clues, no_rank_clues, empty_color_clues, empty_rank_clues, odds_and_evens, up_or_down,
|
||||||
special_rank_ranks, special_rank_colors
|
critical_fours, num_suits, special_rank, special_rank_ranks, special_rank_colors
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,8 @@ CREATE TABLE variants (
|
||||||
funnels BOOLEAN NOT NULL DEFAULT FALSE,
|
funnels BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
no_color_clues BOOLEAN NOT NULL DEFAULT FALSE,
|
no_color_clues BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
no_rank_clues BOOLEAN NOT NULL DEFAULT FALSE,
|
no_rank_clues BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
empty_color_clues BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
empty_rank_clues BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
odds_and_evens BOOLEAN NOT NULL DEFAULT FALSE,
|
odds_and_evens BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
up_or_down BOOLEAN NOT NULL DEFAULT FALSE,
|
up_or_down BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
critical_fours BOOLEAN NOT NULL DEFAULT FALSE,
|
critical_fours BOOLEAN NOT NULL DEFAULT FALSE,
|
||||||
|
|
23
variants.py
23
variants.py
|
@ -1,5 +1,6 @@
|
||||||
import enum
|
import enum
|
||||||
from typing import List
|
from typing import List
|
||||||
|
from hanabi import DeckCard, ActionType
|
||||||
|
|
||||||
from database import cur
|
from database import cur
|
||||||
|
|
||||||
|
@ -76,8 +77,8 @@ class Suit:
|
||||||
class Variant:
|
class Variant:
|
||||||
def __init__(
|
def __init__(
|
||||||
self, name, clue_starved, throw_it_in_a_hole, alternating_clues, synesthesia, chimneys, funnels,
|
self, name, clue_starved, throw_it_in_a_hole, alternating_clues, synesthesia, chimneys, funnels,
|
||||||
no_color_clues, no_rank_clues, odds_and_evens, up_or_down, critical_fours, special_rank,
|
no_color_clues, no_rank_clues, empty_color_clues, empty_rank_clues, odds_and_evens, up_or_down,
|
||||||
special_rank_ranks, special_rank_colors, suits: List[Suit]
|
critical_fours, special_rank, special_rank_ranks, special_rank_colors, suits: List[Suit]
|
||||||
):
|
):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.clue_starved = clue_starved
|
self.clue_starved = clue_starved
|
||||||
|
@ -88,6 +89,8 @@ class Variant:
|
||||||
self.funnels = funnels
|
self.funnels = funnels
|
||||||
self.no_color_clues = no_color_clues
|
self.no_color_clues = no_color_clues
|
||||||
self.no_rank_clues = no_rank_clues
|
self.no_rank_clues = no_rank_clues
|
||||||
|
self.empty_color_clues = empty_color_clues
|
||||||
|
self.empty_rank_clues = empty_rank_clues
|
||||||
self.odds_and_evens = odds_and_evens
|
self.odds_and_evens = odds_and_evens
|
||||||
self.up_or_down = up_or_down
|
self.up_or_down = up_or_down
|
||||||
self.critical_fours = critical_fours
|
self.critical_fours = critical_fours
|
||||||
|
@ -99,20 +102,24 @@ class Variant:
|
||||||
self.suits = suits
|
self.suits = suits
|
||||||
self.colors = []
|
self.colors = []
|
||||||
|
|
||||||
for suit in self.suits:
|
if not self.no_color_clues:
|
||||||
for color in suit.colors:
|
for suit in self.suits:
|
||||||
if color not in self.colors:
|
for color in suit.colors:
|
||||||
self.colors.append(color)
|
if color not in self.colors:
|
||||||
|
self.colors.append(color)
|
||||||
|
|
||||||
self.num_colors = len(self.colors)
|
self.num_colors = len(self.colors)
|
||||||
|
|
||||||
|
def rank_touches(self, card: DeckCard, value: int):
|
||||||
|
pass
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def from_db(var_id):
|
def from_db(var_id):
|
||||||
cur.execute(
|
cur.execute(
|
||||||
"SELECT "
|
"SELECT "
|
||||||
"name, clue_starved, throw_it_in_a_hole, alternating_clues, synesthesia, chimneys, funnels, "
|
"name, clue_starved, throw_it_in_a_hole, alternating_clues, synesthesia, chimneys, funnels, "
|
||||||
"no_color_clues, no_rank_clues, odds_and_evens, up_or_down, critical_fours, special_rank, "
|
"no_color_clues, no_rank_clues, empty_color_clues, empty_rank_clues, odds_and_evens, up_or_down,"
|
||||||
"special_rank_ranks, special_rank_colors "
|
"critical_fours, special_rank, special_rank_ranks, special_rank_colors "
|
||||||
"FROM variants WHERE id = %s",
|
"FROM variants WHERE id = %s",
|
||||||
(var_id,)
|
(var_id,)
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue