BitSpawn Lv 1
Some ideas that I think they are difficult but possible, and might improve the performance of Foldit
1.- Callback functions for keyboard events, like this
internally:
<blockquote>
cb_function keyb(event)
key_pressed=(…) – key_pressed as reserved name
return
</blockquote>
in recipe:
<blockquote>
function Main()
…
if key_pressed="?" then
– break the "for"
– change C.I.
– run rutine
– set variable
– …
end
end
</blockquote>
In this way you modify the behavior of a script as you see the intermediate results. We can start another way of folding: scripting and handwork together.
2.- Mutate what is not mutable
A function to temporarily mutate to "G", so we can calculate the best neutral position of a backbone. Now a wrong rottamer makes it impossible to reach the best position of backbone and distorts everything around. The function could be like global_wiggle_backbone(n, glic_simul==true).
3.- Conditions as parameter in a function
So you can do wiggling/shake/… until (iters OR condition complied)
In this way you can stop a wiggling with bands outside when score gets down 0.5 points (for example), and you can avoid movements which break your structure.
Something like this: condition_function(foo(),cond())
<blockquote>
function my_function()
…
end
function my_condition()
..
return true/false
end
condition_function(my_function, my_condition)
</blockquote>
4.- Batch mode
Feature: Foldit run without GUI. So we can run:
Foldit -recipe my_recipe -time x[s,m,h]
where 'recipe' is in all.macro, and two conditions would have to end: the return of the script, or the end of time.
we can read the standard output (from print in recipe) and program a batch to run other scripts depending on the results.
5.- Meta scripts
The ability to write scripts that can call other scripts
Only those :)