JavaScript is required to use Bungie.net

Destiny 2

Discuss all things Destiny 2.
10/2/2018 3:27:11 PM
4

Best Strategy for Picture Puzzles (Last Wish raid)

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)

Posting in language:

 

Play nice. Take a minute to review our Code of Conduct before submitting your post. Cancel Edit Create Fireteam Post

View Entire Topic
You are not allowed to view this content.
;
preload icon
preload icon
preload icon