Guardians,
I have tried to find the best strategy to follow to minimize communication during Picture Puzzle part of Shuro Chi fight. Basically, I was looking for a strategy that would use only 4 players and would minimize the chance of wipe due to guardians standing on the same plate. So, I had to check about 13K such possible strategies against 2M possible picture outcomes (assumed here that missing pieces are drawn completely random from 9 available picture parts)
My evaluation resulted in the following strategy to be the winner:
[[1, 3, 1], [2, 4, 2], [3, 1, 3], [4, 2, 4]]
Meaning first player goes to 1st missing piece, then 3rd and then back to 1st. Here we enumerate missing pieces starting from the top row and then going right.
My results say that this strategy should work in 5 puzzle room encounters out of 6. Meaning complete fight following this strategy should be doable with 70% success rate. Even if you wipe due to that strategy not working - repeating it 4 times should guarantee completion.
So, I was wondering if someone could test it and give me some feedback on how viable it is.
Thank you.
PS: Here is quick python script I used to do evaluation:
import copy
from itertools import combinations
def makePlayerStrat():
strats = []
possiblePositions = [1,2,3,4]
for p1t1Place in possiblePositions:
possiblePositions2t1 = copy.deepcopy(possiblePositions);
possiblePositions2t1.remove(p1t1Place)
for p2t1Place in possiblePositions2t1:
possiblePositions3t1 = copy.deepcopy(possiblePositions2t1);
possiblePositions3t1.remove(p2t1Place)
for p3t1Place in possiblePositions3t1:
possiblePositions4t1 = copy.deepcopy(possiblePositions3t1);
possiblePositions4t1.remove(p3t1Place)
for p4t1Place in possiblePositions4t1:
for p1t2Place in possiblePositions:
possiblePositions2t2 = copy.deepcopy(possiblePositions);
possiblePositions2t2.remove(p1t2Place)
for p2t2Place in possiblePositions2t2:
possiblePositions3t2 = copy.deepcopy(possiblePositions2t2);
possiblePositions3t2.remove(p2t2Place)
for p3t2Place in possiblePositions3t2:
possiblePositions4t2 = copy.deepcopy(possiblePositions3t2);
possiblePositions4t2.remove(p3t2Place)
for p4t2Place in possiblePositions4t2:
for p1t3Place in possiblePositions:
possiblePositions2t3 = copy.deepcopy(possiblePositions);
possiblePositions2t3.remove(p1t3Place)
for p2t3Place in possiblePositions2t3:
possiblePositions3t3 = copy.deepcopy(possiblePositions2t3);
possiblePositions3t3.remove(p2t3Place)
for p3t3Place in possiblePositions3t3:
possiblePositions4t3 = copy.deepcopy(possiblePositions3t3);
possiblePositions4t3.remove(p3t3Place)
for p4t3Place in possiblePositions4t3:
strats.append([[p1t1Place,p1t2Place,p1t3Place],[p2t1Place,p2t2Place,p2t3Place],[p3t1Place,p3t2Place,p3t3Place],[p4t1Place,p4t2Place,p4t3Place]])
return strats
def makeMissingPictures():
shapes1 = combinations([1,2,3,4,5,6,7,8,9],4)
shapes2 = combinations([1,2,3,4,5,6,7,8,9],4)
shapes3 = combinations([1,2,3,4,5,6,7,8,9],4)
shapeList1 = list(shapes1)
shapeList2 = list(shapes2)
shapeList3 = list(shapes3)
scenarios=[]
for t1 in shapeList1:
for t2 in shapeList2:
for t3 in shapeList3:
scenarios.append([[t1[0],t2[0],t3[0]],[t1[1],t2[1],t3[1]],[t1[2],t2[2],t3[2]],[t1[3],t2[3],t3[3]]])
print scenarios[1], len(scenarios)
return scenarios
def findBestStrategy(strats, scenarioData):
bestStrategy = []
bestStrategyCnt = 999999999999999999999;
countStrats = 0;
for strat in strats:
cntBadCase =0;
countStrats+=1
for scenario in scenarioData:
failed = 0;
for player in [0,1,2,3]:
if (scenario[strat[player][0]-1][0]==scenario[strat[player][1]-1][1] or scenario[strat[player][1]-1][1]==scenario[strat[player][2]-1][2]):
failed=1
if (failed==1):
cntBadCase+=1
if (cntBadCase < bestStrategyCnt):
bestStrategyCnt = cntBadCase
bestStrategy=copy.deepcopy(strat)
print countStrats, 1.0*countStrats/len(strats),cntBadCase, 1.0*cntBadCase/len(scenarioData),bestStrategy
print bestStrategy
return bestStrategy[:]
myStrats = makePlayerStrat()
print myStrats[0:2], len(myStrats)
scenarioData=makeMissingPictures()
findBestStrategy(myStrats, scenarioData)
-
Lol. That's way more complicated than just assigning 1-4.