Exemplo n.º 1
0
import rivercrossingsolver as rcs
from itertools import combinations

game_players = "P F M D S"

rcs.setPlayers(game_players)
rcs.setdrivers(game_players)
rcs.startLeft()
rcs.setgoalStatus("", game_players)
rcs.settimeLimit(30)
rcs.settimeValues("P:1 F:3 M:6 D:8 S:12")
rcs.setduplicateNode(True)

rcs.solve("train")
Exemplo n.º 2
0
import rivercrossingsolver as rcs
from itertools import combinations

game_players = "C1 C2 C3 M1 M2 M3"

too_many_criminals = []

p = game_players.split()
combos = [x for l in range(1,len(game_players)) for x in combinations(p,l)]
for y in combos:
    m_count = "".join(y).count("M")
    c_count = "".join(y).count("C")
    if len(y) > 2 and m_count > 0 and c_count > m_count:
        too_many_criminals.append(list(y))

rules = " ".join(x for x in [",".join(x) for x in too_many_criminals])
# print rules
# exit(0)


rcs.setPlayers(game_players)
rcs.setdrivers("C1 M1")
rcs.setleftBankStatus("C1 C2 C3")
rcs.setrightBankStatus("M1 M2 M3")
rcs.setgoalStatus("M1 M2 M3", "C1 C2 C3")
rcs.setinvalidBoat("")
rcs.setinvalidBank(rules)
rcs.setboatCapacity(2)

rcs.solve()
Exemplo n.º 3
0
import rivercrossingsolver as rcs
from itertools import combinations

game_players = "T1 T2 T3 T1B1 T1B2 T2B1"

no_t1 = []
no_t2 = []
p = game_players.split()
combos = [x for l in range(1, len(game_players)) for x in combinations(p, l)]
for y in combos:
    if "T1" not in y and ("T1B1" in y or "T1B2" in y) and (
        ("T2" in y and "T3" not in y) or ("T3" in y and "T2" not in y)):
        no_t1.append(list(y))
    if "T2" not in y and "T2B1" in y and (("T1" in y and "T3" not in y) or
                                          ("T3" in y and "T1" not in y)):
        no_t2.append(list(y))

t1_rules = " ".join(x for x in [",".join(x) for x in no_t1])
t2_rules = " ".join(x for x in [",".join(x) for x in no_t2])
final_rules = t1_rules + " " + t2_rules

rcs.setPlayers(game_players)
rcs.setdrivers("T1 T2 T3")
rcs.startLeft()
rcs.setgoalStatus("", game_players)
rcs.setinvalidBoat("")
rcs.setinvalidBank(final_rules)
rcs.setboatCapacity(2)

rcs.solve()
Exemplo n.º 4
0
for y in combos:
    if "D1" in y and "M1" not in y and "F1" not in y:
        rule_set.append(y)
    if "D2" in y and "M2" not in y and "F2" not in y:
        rule_set.append(y)
    if len(y) == 2:
        if "D1" in y and "F1" not in y:
            boat_rule_set.append(y)
        if "D2" in y and "F2" not in y:
            boat_rule_set.append(y)

rule_set.append(["D1"])
rule_set.append(["D2"])

rules = " ".join(x for x in [",".join(x) for x in rule_set])
boat_rules = " ".join(x for x in [",".join(x) for x in boat_rule_set])

# for r in rule_set:
#     print r
# exit(0)

rcs.setPlayers(game_players)
rcs.setdrivers("F1 F2")
rcs.startLeft()
rcs.setgoalStatus("", game_players)
rcs.setinvalidBoat(boat_rules)
rcs.setinvalidBank(rules)
rcs.setboatCapacity(2)

rcs.solve()
Exemplo n.º 5
0
rule_set = []
boat_rule_set = []

p = game_players.split()
combos = [x for l in range(1, len(game_players)) for x in combinations(p, l)]

for y in combos:
    if "F" not in y and "DOG" in y and len(y) > 1:
        rule_set.append(y)
    if "S" not in y and "D" in y and ("R1" in y or "R2" in y):
        rule_set.append(y)
    if "D" not in y and "S" in y and ("SQ1" in y or "SQ2" in y):
        rule_set.append(y)

rules = " ".join(x for x in [",".join(x) for x in rule_set])
# boat_rules = " ".join(x for x in [",".join(x) for x in boat_rule_set])

# for r in rule_set:
#     print r
# exit(0)

rcs.setPlayers(game_players)
rcs.setdrivers("F S D")
rcs.startLeft()
rcs.setgoalStatus("", game_players)
rcs.setinvalidBoat("")
rcs.setinvalidBank(rules)
rcs.setboatCapacity(2)

rcs.solve()
Exemplo n.º 6
0
        rule_set.append(y)

# No child on raft with other mother, but other child OK
brule_set = [
    ["M1", "D2"],
    ["M1", "S2"],
    ["M2", "S1"],
    ["M2", "D1"]
]

    # m_count = "".join(y).count("M")
    # c_count = "".join(y).count("C")
    # if len(y) > 2 and m_count > 0 and c_count > m_count:
    #     too_many_criminals.append(list(y))

rules = " ".join(x for x in [",".join(x) for x in rule_set])
brules = " ".join(x for x in [",".join(x) for x in brule_set])

# print rules
# exit(0)


rcs.setPlayers(game_players)
rcs.setdrivers("M1 S1")
rcs.startLeft()
rcs.setgoalStatus("", game_players)
rcs.setinvalidBoat(brules)
rcs.setinvalidBank(rules)
rcs.setboatCapacity(2)

rcs.solve()
Exemplo n.º 7
0
boat_rule_set = []

p = game_players.split()
combos = [x for l in range(1, len(game_players)) for x in combinations(p, l)]

# for y in combos:
rule_set = [('R1', '5'), ('R1', '8'), ('R2', '8'), ('R1', '3', '5'),
            ('R1', '3', '8'), ('R1', '5', '8'), ('R2', '3', '5'),
            ('R2', '3', '8'), ('R2', '5', '8'), ('R3', '3', '8'),
            ('R3', '5', '8'), ('R1', 'R2', '3', '8'), ('R1', 'R2', '5', '8'),
            ('R1', 'R3', '5', '8'), ('R1', '3', '5', '8'),
            ('R2', '3', '5', '8'), ('R3', '3', '5', '8'),
            ('R1', 'R2', '3', '5', '8'), ('R1', 'R3', '3', '5', '8'),
            ('R2', 'R3', '3', '5', '8')]

rules = " ".join(x for x in [",".join(x) for x in rule_set])
# boat_rules = " ".join(x for x in [",".join(x) for x in boat_rule_set])

# for r in rule_set:
#     print r
# exit(0)

rcs.setPlayers(game_players)
rcs.setdrivers("R1 R2 R3")
rcs.startLeft()
rcs.setgoalStatus("", game_players)
rcs.setinvalidBoat("")
rcs.setinvalidBank(rules)
rcs.setboatCapacity(2)

rcs.solve()
Exemplo n.º 8
0
import rivercrossingsolver as rcs

# Father    = 90
# Mother    = 80
# Boy       = 60
# Girl      = 40
# Bag       = 20
game_players = "F M B G A"

rcs.setPlayers(game_players)
rcs.setdrivers("F M B G")
rcs.startLeft()
rcs.setgoalStatus("", game_players)
rcs.setinvalidBoat("F,M F,B F,G F,A M,B M,G")
rcs.setinvalidBank("")
rcs.setboatCapacity(2)

rcs.solve()