-
Need more productive attacks and noncombatants:
-
noncombatant strings and attack strings should be related in such a way as to be difficult to distinguish;
-
improve repetition of strings — make the point that this is the most useful way to improve.
-
Add gameplay images to README.
-
Use
argparsefor some command-line options: -
--seed: turns onrandom.seed(); -
--log(must first implement logging); -
--debug: (needed?) -
--help: show rules without running program?; -
--levels: pre-defined series of levels, for systematic practice; alternative is random strings. -
Change list of failed attacks to dict, to enable counting. Bring both failed and defeated attacks back repeatedly.
-
Handle failed attack and non-combatant strings without inadvertently pausing program.
-
Apply regex to attack string and non-combatant strings, showing partial matches in real time.
-
ESC: toggle pause/continue; from paused state, h => help page.
-
Handle arrow keys. Related to handling of ESC; see http://stackoverflow.com/a/1182680/621762.
-
Help page on start-up.
-
Alternate game strategies:
-
User corrects regex offered by machine.
-
Multiple attack and/or noncombatant strings. More points for multiple matches at once.
-
Handle near-identical defenses:
-
evaluate by edit-distance vis-à-vis all previous defenses; average string-length minus edit-distance may be more useful than edit-distance alone.
-
DONE: handle by repeating attack string; repeat defense barred;
-
handle by delaying efficacy, thus increasing risk of hit; this requires implementing timing of attacks (not sure if this is desirable until higher levels).
-
Figure damage (from hits); it may affect time of defense's effect.
-
For more complex attacks, it may be interesting to repeat them just in order to see how many different defenses the user can supply. Keep repeating until user fails — or even a little after that.
-
If \w appears a lot in defense strings, add whitespace.
-
Set background color: automatically black for now.
-
JS version.
[end]