Icon representing a recipe

Recipe: enderen bluprnt fresh str8 bakingsheet

created by zo3xiaJonWeinberg

Profile


Name
enderen bluprnt fresh str8 bakingsheet
ID
106683
Shared with
Public
Parent
enderren bluprnt str8 bakingsheets
Children
Created on
April 24, 2022 at 03:20 AM UTC
Updated on
April 24, 2022 at 03:20 AM UTC
Description

may be considered cheating on
puzzles without blueprint,
but blueprint is probably disabled
on puzzles that don't benefit
from it,
and this recipe alone won't
always succeed
in making building blocks in those.
However, this is a step in giving A.i.
the tools that players have
from the get-go;
"One small step for man,"
one giant leap for NPC's.
Hopefully there will be recipe
functions in the future.
If someone streams the recipe,
I would probs watch it, because
Foldit heats up the air and dries it.
Even though the recipes can't
get the blueprint just right, it still
somewhat resembles a
top-player's moves,
so it's fun to try.
I may unshare recipes so as not to
clog the repo.
Experimentally added
random sheets.
Preluded with endgame detection,
hold space to skip or give it a hint.
For single-start puzzles, but has
a 1/40 chance of restarting each
block that is placed.
Experimental straight chains of
helices/sheets also in progress,
this version may have bugs.

Best for


Code


-- keep blank help() print("cur "..current.GetEnergyScore()) print("credit "..creditbest.GetEnergyScore()) recentbest.Save() local controlgroup=false --made sure not to load old environment variables, guess lua here is ok fuseki=true--false --opposite of endgame, beg. game really --set true for debugging uh SS --assume playr has already tried something before starting the recipe, try polish while os.time()<puzzle.GetExpirationTime() and true --or for override do if not controlgroup and fuseki then if math.random(40)>1 then recentbest.Restore() band.DeleteAll() else puzzle.StartOver() end behavior.SetClashImportance(1) behavior.SetSidechainHBondImportance(1) behavior.SetBackboneHBondImportance(1) selection.DeselectAll() chainOrJoint=math.random(0,1) --set to 0 for just hel? xloop=math.random(0,2) --extra loops in the cornerstone of the arch, --set to -1 for just helices? crash xlup=math.random(0,2) --sometimes the recipe fails anyways (even in an otherwise successful location, making a big helix) repeat cornerstone=math.random(1+5+xloop,structure.GetCount()-5-xlup) for i=cornerstone-xloop,cornerstone+xlup do segslocked=false or structure.IsLocked(i) end until not segslocked seth={cornerstone-2-xloop,cornerstone-1-xloop,cornerstone+1+xlup,cornerstone+2+xlup, cornerstone-4-xloop,cornerstone-3-xloop,cornerstone+3+xlup,cornerstone+4+xlup, cornerstone-5-xloop, cornerstone+5+xlup,} ss={"h","e","l","a"} pillar1ss=ss[math.random(2)] if chainOrJoint==0 then pillar2ss=pillar1ss else pillar2ss=ss[math.random(2)] end for i =cornerstone-5-xloop,cornerstone-1-xloop do print("first pillar "..i) structure.SetSecondaryStructure(i,pillar1ss) selection.Select(i) end for i =cornerstone+1+xlup,cornerstone+5+xlup do print("2nd pillar "..i) structure.SetSecondaryStructure(i,pillar2ss) selection.Select(i) end structure.SetSecondaryStructure(cornerstone-xloop,"l") structure.SetSecondaryStructure(cornerstone+xlup,"l") structure.SetSecondaryStructure(cornerstone,"l") --selection.Select(cornerstone) structure.IdealSSSelected()--seth[i]) if chainOrJoint==1 then cornerstoneToHel=band.AddBetweenSegments(cornerstone-2-xloop,cornerstone+1+xlup) cornerstoneBow=band.AddBetweenSegments(cornerstone-1-xloop,cornerstone+1+xlup) cornerstoneToHel2=band.AddBetweenSegments(cornerstone-1-xloop,cornerstone+2+xlup) helixToHelix=band.AddBetweenSegments(cornerstone-2-xloop,cornerstone+2+xlup) downHelixToDownHelix=band.AddBetweenSegments(cornerstone-4-xloop,cornerstone+4+xlup) downHelix5ToDownHelix5=band.AddBetweenSegments(cornerstone-5-xloop,cornerstone+5+xlup) --sometimes swapping close and far after it looks good can help squeeze the helices together closeHel=band.AddBetweenSegments(cornerstone+2+xlup,cornerstone) farHel=band.AddBetweenSegments(cornerstone-2-xloop,cornerstone) print(cornerstoneBow,cornerstoneToHel,helixToHelix,cornerstoneToHel2) band.SetGoalLength(cornerstoneBow,6.63+xloop+xlup+9)--extra extra extra expansion at before fulcrum band.SetGoalLength(cornerstoneToHel,8.98+xloop+xlup) band.SetGoalLength(cornerstoneToHel2,6.05+xloop+xlup)--approx band.SetGoalLength(downHelix5ToDownHelix5,12.21-12)--jiayou band.SetGoalLength(downHelixToDownHelix,5.31) band.SetGoalLength(helixToHelix,9.54)--fulcrum band.SetGoalLength(farHel,5.53)-- far hel (corner+2) to corner band.SetGoalLength(closeHel,5.25)-- close hel (corner-2) to corner band.SetStrength(cornerstoneToHel,1.5) band.SetStrength(cornerstoneToHel2,1.5) band.SetStrength(downHelixToDownHelix,1.5)--max band.SetStrength(downHelix5ToDownHelix5,1.5)--max band.SetStrength(helixToHelix,1.5) band.SetStrength(farHel,1.5) band.SetStrength(closeHel,1.5) band.SetStrength(cornerstoneBow,1.5) end structure.LocalWiggleAll(10) structure.WiggleAll(6)--10) behavior.SetClashImportance(1) behavior.SetSidechainHBondImportance(1) behavior.SetBackboneHBondImportance(1) if chainOrJoint==1 then band.SetGoalLength(cornerstoneBow,6.63+xloop+xlup)--extra extra w/o expansion past fulcrum band.SetGoalLength(downHelix5ToDownHelix5,12.21)--fangxin --structure.IdealSSSelected()--seth[i]) end wannafreeze=false if wannafreeze then for i =1,#seth do print(i) --freeze.Freeze(seth[i],true,false)--bb ss --selection.Select(seth[i]) end end end band.DisableAll() previters=current.GetEnergyScore() for iseg=1, structure.GetCount() do if structure.GetAminoAcid(iseg)~="e" then structure.SetAminoAcid(iseg,"e") end end repeat previters=current.GetEnergyScore() structure.LocalWiggleAll(10) structure.WiggleAll(10) structure.ShakeSidechainsAll(1) structure.MutateSidechainsAll(1) until previters+2>=current.GetEnergyScore() fuseki=true --forfeit, rematch, reopen the [drawing] board end print("ur protein powder expired. override this in code")

Comments