aboutsummaryrefslogtreecommitdiff
path: root/src/helppages.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/helppages.h645
1 files changed, 645 insertions, 0 deletions
diff --git a/src/helppages.h b/src/helppages.h
new file mode 100644
index 0000000..5ee0e4a
--- /dev/null
+++ b/src/helppages.h
@@ -0,0 +1,645 @@
1/* To generate this help page, use the script makedoc.sh */
2
3int Npages = 21;
4
5char *helppages[][10] = {
6
7{ "add",
8"\
9\n\
10HELP PAGE FOR COMMAND add\n\
11\n\
12SYNTAX\n\
13add [MOVES|$ID1|@ID1] $ID2\n\
14\n\
15DESCRIPTION\n\
16Appends either MOVES, the scramble memorized under $ID1 or the output sequence\n\
17memorized under @ID1 at the end of the scramble memorized under $ID2. If none\n\
18of MOVES, $ID1 or @ID1 is specified, the user will be asked to type the moves.\n\
19Menmonic: \"add x to y\" or just \"add to y\".\n\
20\n\
21EXAMPLES\n\
22add $1\n\
23 The user is required to type the moves that will be appended to $1.\n\
24add F R B $1\n\
25 Appends the moves F R B to scramble $1. Now scramble $1 ends with F R B.\n\
26\n\
27"
28},
29
30{ "change",
31"\
32\n\
33HELP PAGE FOR COMMAND change\n\
34\n\
35SYNTAX\n\
36change $ID1 [MOVES|$ID2|@ID2]\n\
37\n\
38DESCRIPTION\n\
39Changes the scramble $ID1 to either MOVES, the scramble $ID2, the output @ID2\n\
40or, if none is specified, the moves entered by the user. The scramble that was\n\
41memorized under $ID1 is then lost.\n\
42Mnemonic: \"change x to y\", or just \"change x\".\n\
43\n\
44EXAMPLES\n\
45change $1\n\
46 The user is required to type the moves that will replace $1.\n\
47change $2 $3\n\
48 Saves the scramble that was saved under $3 in $2. Now $2 and $3 are the same\n\
49 scrambles, and the old $2 is lost.\n\
50change $1 U R\n\
51 Saves U R as scramble $1.\n\
52\n\
53"
54},
55
56{ "clear",
57"\
58\n\
59HELP PAGE FOR COMMAND clear\n\
60\n\
61SYNTAX\n\
62clear\n\
63\n\
64DESCRIPTION\n\
65Resets all saved scrambles and output sequences.\n\
66\n\
67"
68},
69
70{ "dr",
71"\
72\n\
73HELP PAGE FOR COMMAND dr\n\
74\n\
75SYNTAX\n\
76dr [OPTIONS] [MOVES|$ID|@ID]\n\
77\n\
78DESCRIPTION\n\
79Solves DR for a given scramble. A scramble can be given as last argument of the\n\
80command, or an ID of a saved scramble can be provided. If none of the two is\n\
81given, a prompt will ask the user to input a new scramble.\n\
82If the option \"from\" is given (see below), it solves DR from an EO (if edges\n\
83are oriented) without breaking that EO.\n\
84The first time this command is called without the option from (and, to some\n\
85extent, also the first time it is called with the option from), nissy loads\n\
86some pruning tables that were not loaded on startup, causing a small but\n\
87noticeable delay.\n\
88\n\
89OPTIONS\n\
90axis={fb,rl,ud} Specify the axis for the DR. One to three axes can be given,\n\
91 comma separated, no spaces.\n\
92 Default: DR on any of the three axis (omitting the option is\n\
93 the same as specifying axis=fb,rl,ud).\n\
94b=N Specify a bound for the number of moves. N must be a number.\n\
95 Default value: 20.\n\
96h Show hidden DRs.\n\
97 Default, if an DR ending in e.g. R is shown, the equivalent\n\
98 one ending in R' is hidden.\n\
99from {fb|rl|ud} Solve DR from the specified EO, which must be solved,\n\
100 without breaking the EO.\n\
101niss Use NISS. It works only if solving DR from EO.\n\
102 Default: does not use NISS.\n\
103n=N Specify a maximum number of EOs to be output. N must be a\n\
104 number.\n\
105 Default value: 1.\n\
106\n\
107EXAMPLES\n\
108dr from rl axis=ud $1\n\
109 Finds optimal DR on ud, starting from EO on rl, for the first saved scramble.\n\
110\n\
111dr niss from fb n=10 m=6 F2 R L B' F D U' R2 L' F D B\n\
112 Finds up to 10 DRs of length at most 6 from EO on fb, possibly using NISS.\n\
113\n\
114dr n=100 axis=ud h\n\
115 Finds 100 DRs on ud, including \"hidden\" DRs.\n\
116\n\
117"
118},
119
120{ "drcorners",
121"\
122\n\
123HELP PAGE FOR COMMAND drcorners\n\
124\n\
125SYNTAX\n\
126drcorners [OPTIONS] [MOVES|$ID|@ID]\n\
127\n\
128DESCRIPTION\n\
129Similar to drfinish, but only solves corners. CO must be solved. The scramble\n\
130can be given as the last argument of the command, or it may be given as an $ID\n\
131or @ID, or it can be typed out on the following line.\n\
132\n\
133OPTIONS\n\
134from {ud|fb|rl} Allows to specify on which axis the CO is solved. It is\n\
135 usually not necessary, since nissy will find a CO on any\n\
136 axis.\n\
137i Ignores E-layer centers. By default cornersare solved\n\
138 relatively to centers; this options allows for solutions\n\
139 which solve corners relatively to each other and to the\n\
140 U and D sides, but not to the E layer (or any equivalent\n\
141 if the CO is not on U/D).\n\
142b=N Specify a bound for the number of moves. N must be a number.\n\
143 Default value: 20.\n\
144n=N Specify a maximum number of solutions to be output. N must\n\
145 be a number.\n\
146 Default value: 1.\n\
147\n\
148EXAMPLES\n\
149drcorners n=3 R' D R2 D' R' U2 R D R' U2 R' D' R\n\
150 Produces the following output:\n\
151Found 3 results.\n\
152@1: U' F2 U R2 U2 F2 U F2 U R2 (10)\n\
153@2: U' F2 U R2 U2 B2 U R2 D R2 (10)\n\
154@3: U' F2 U R2 U2 B2 U L2 U L2 (10)\n\
155\n\
156"
157},
158
159{ "drfinish",
160"\
161\n\
162HELP PAGE FOR COMMAND drfinish\n\
163\n\
164SYNTAX\n\
165drfinish [OPTIONS] [MOVES|$ID|@ID]\n\
166\n\
167DESCRIPTION\n\
168Solves the given scramble using the DR moveset. DR must be solved. The scramble\n\
169can be given as the last argument of the command, or it may be given as an $ID\n\
170or @ID, or it can be typed out on the following line.\n\
171\n\
172OPTIONS\n\
173from {ud|fb|rl} Allows to specify on which axis the DR is solved. It is\n\
174 usually not necessary, since nissy will find a DR on any\n\
175 axis, but it can be useful if one want to e.g. solve an HTR\n\
176 state allowing quarter-turns from a specific DR.\n\
177b=N Specify a bound for the number of moves. N must be a number.\n\
178 Default value: 20.\n\
179n=N Specify a maximum number of solutions to be output. N must\n\
180 be a number.\n\
181 Default value: 1.\n\
182\n\
183EXAMPLES\n\
184dr from ud R L' U2 R' L F2\n\
185 Solves the given scramble using the moveset <U,D,R2,L2,F2,B2>. In this case:\n\
186@1: U2 R2 F2 R2 U2 R2 F2 R2 (8)\n\
187drfinish b=7 n=10 $1\n\
188 Finds (at most) 10 solutions of length at most 7 for the scramble $1.\n\
189\n\
190"
191},
192
193{ "eo",
194"\
195\n\
196HELP PAGE FOR COMMAND eo\n\
197\n\
198SYNTAX\n\
199eo [OPTIONS] [MOVES|$ID|@ID]\n\
200\n\
201DESCRIPTION\n\
202Solves EO for a given scramble. A scramble can be given as last argument of the\n\
203command, or an ID of a saved scramble can be provided. If none of the two is\n\
204given, a prompt will ask the user to input a new scramble.\n\
205\n\
206OPTIONS\n\
207axis={fb,rl,ud} Specify the axis for the EO. One to three axes can be given,\n\
208 comma separated, no spaces.\n\
209 Default: EO on any of the three axis (omitting the option is\n\
210 the same as specifying axis=fb,rl,ud).\n\
211b=N Specify a bound for the number of moves. N must be a number.\n\
212 Default value: 20.\n\
213h Show hidden EOs.\n\
214 Default, if an EO ending in e.g. F is shown, the equivalent\n\
215 one ending in F' is hidden.\n\
216niss Use NISS.\n\
217 Default: does not use NISS.\n\
218n=N Specify a maximum number of EOs to be output. N must be a\n\
219 number.\n\
220 Default value: 1.\n\
221\n\
222EXAMPLES\n\
223eo axis=fb $1\n\
224 Finds one optimal EO on fb for the first saved scramble.\n\
225\n\
226eo n=5 b=4 U R F \n\
227 Finds up to 5 EOs of length at most 4 for scramble U R F.\n\
228\n\
229eo n=100 b=5 niss axis=fb,ud h R' U' F L R'U'F\n\
230 Finds up to 100 EOs of lenth at most 4, possibly using NISS, including\n\
231 \"hidden\" EOs, excluding the rl axis.\n\
232\n\
233"
234},
235
236{ "exit",
237"\
238\n\
239HELP PAGE FOR COMMAND exit\n\
240\n\
241SYNTAX\n\
242exit\n\
243\n\
244DESCRIPTION\n\
245Exits nissy.\n\
246\n\
247"
248},
249
250{ "help",
251"\
252\n\
253HELP PAGE FOR COMMAND help\n\
254\n\
255SYNTAX\n\
256help [nissy|COMMAND]\n\
257\n\
258DESCRIPTION\n\
259'help nissy' prints a general user manual. 'help COMMAND' prints a detailed\n\
260help page for the command COMMAND, if it exists. 'help' prints a list of all\n\
261available commands a short description for each.\n\
262\n\
263EXAMPLES\n\
264help help\n\
265 Prints this help page.\n\
266\n\
267"
268},
269
270{ "htr",
271"\
272\n\
273HELP PAGE FOR COMMAND htr\n\
274\n\
275SYNTAX\n\
276htr [OPTIONS] [MOVES|$ID|@ID]\n\
277\n\
278DESCRIPTION\n\
279Finds HTR for a given scramble. DR must be solved. A scramble can be given as\n\
280last argument of the command, or an ID of a saved scramble can be provided. If\n\
281none of the two is given, a prompt will ask the user to input a new scramble.\n\
282\n\
283OPTIONS\n\
284from {ud|fb|rl} Allows to specify on which axis the DR is. This is usually\n\
285 not needed, since nissy will automatically find it out.\n\
286b=N Specify a bound for the number of moves. N must be a number.\n\
287 Default value: 20.\n\
288h Show hidden HTRs.\n\
289 Default, if an HTR ending in e.g. R is shown, the equivalent\n\
290 one ending in R' is hidden.\n\
291niss Use NISS.\n\
292 Default: does not use NISS.\n\
293n=N Specify a maximum number of HTRs to be output. N must be a\n\
294 number.\n\
295 Default value: 1.\n\
296\n\
297EXAMPLES\n\
298eo n=10 b=7 niss $1\n\
299 Finds up to 100 HTRs of lenth at most 7, possibly using NISS, including\n\
300 \"hidden\" HTRs, for scramble $1. DR must be solved.\n\
301\n\
302"
303},
304
305{ "htrfinish",
306"\
307\n\
308HELP PAGE FOR COMMAND htrfinish\n\
309\n\
310SYNTAX\n\
311htrfinish [OPTIONS] [MOVES|$ID|@ID]\n\
312\n\
313DESCRIPTION\n\
314Similar to drfinish, but uses the moveset <U2,D2,R2,L2,F2,B2>. HTR must be\n\
315solved. The scramble can be given as the last argument of the command, or it\n\
316may be given as an $ID or @ID, or it can be typed out on the following line.\n\
317\n\
318OPTIONS\n\
319b=N Specify a bound for the number of moves. N must be a number.\n\
320 Default value: 20.\n\
321n=N Specify a maximum number ofsolutions to be output. N must be\n\
322 a number.\n\
323 Default value: 1.\n\
324\n\
325EXAMPLES\n\
326htrfinish R L' U2 R' L F2\n\
327 Produces the following solution:\n\
328@1: U2 R2 F2 R2 U2 R2 F2 R2 (8)\n\
329\n\
330"
331},
332
333{ "invert",
334"\
335\n\
336HELP PAGE FOR COMMAND invert\n\
337\n\
338SYNTAX\n\
339invert [MOVES|$ID|@ID]\n\
340\n\
341DESCRIPTION\n\
342Inverts a sequence of moves, which can be given also as $ID or @ID. The given\n\
343sequence must not use NISS (if it does, use the command unniss first).\n\
344\n\
345EXAMPLES\n\
346invert F R D'\n\
347 Prints D R' F'\n\
348\n\
349"
350},
351
352{ "nissy",
353"\
354\n\
355*******************************************************************************\n\
356********************* NISSY: a cube solver and FMC helper *********************\n\
357*******************************************************************************\n\
358\n\
359If you just want to solve the cube, type 'solve' followed by the scramble. This\n\
360will not always give you an optimal solution, unless it is 10 moves or less or\n\
361you use the \"o\" option. Finding the optimal solution might take very long if it\n\
362is 16 moves or more, especially for the first time.\n\
363\n\
364Now the fun stuff. With nissy you can save and manipulate move sequences, for\n\
365example:\n\
366\n\
367nissy-# save R' U' F\n\
368$1: R' U' F\n\
369nissy-# add L2D' $1\n\
370$1: R' U' F L2 D'\n\
371\n\
372You can then ask nissy to solve certain substepson a saved scramble:\n\
373\n\
374nissy-# eo axis=rl $1\n\
375@1: U D F' R (4)\n\
376\n\
377And of course it uses also NISS, if you ask:\n\
378\n\
379nissy-# eo niss axis=rl $1\n\
380@1: (R) (1)\n\
381\n\
382Notice that the sequences you save are marked with a $, while the \"output\"\n\
383sequences are marked with @. The difference between these two type of sequences\n\
384is that those marked with @ are temporary and get lost once you get new output.\n\
385Most commands accept as input either a move sequence typed out, a $-sequence or\n\
386a @-sequence. For example, you can however save a @-sequence and make it\n\
387persistent:\n\
388\n\
389nissy-# save @1\n\
390$2: (R)\n\
391\n\
392Nissy also understands NISS. Let's see a more complicated example where you\n\
393save a scramble, ask for some EOs (using NISS) and then a DR on inverse:\n\
394\n\
395nissy-# save R' U' F R U R2 F2 R2 D R2 U L2 U R2 D2 B' D U' R D R' D U2 F2 R' U' F\n\
396$3: R' U' F R U R2 F2 R2 D R2 U L2 U R2 D2 B' D U' R D R' D U2 F2 R' U' F \n\
397nissy-# eo n=10 niss axis=fb,rl $3\n\
398Found 10 results.\n\
399@1: (U' L B D F) (5)\n\
400@2: (U' L B' D F) (5)\n\
401@3: (L B U D F) (5)\n\
402@4: (L B' U D F) (5)\n\
403@5: R U B U L (5)\n\
404@6: R U' L (B L) (5)\n\
405@7: R U' B U L (5)\n\
406@8: R L (L B L) (5)\n\
407@9: R (U2 D' F R) (5)\n\
408@10: R (U2 F D' R) (5)\n\
409nissy-# add @6 $3\n\
410$3: R' U' F R U R2 F2 R2 D R2 U L2 U R2 D2 B' D U' R D R' D U2 F2 R' U' F R U' L (B L) \n\
411nissy-# unniss $3\n\
412@1: L' B' R' U' F R U R2 F2 R2 D R2 U L2 U R2 D2 B' D U' R D R' D U2 F2 R' U' F R U' L \n\
413nissy-# invert @1\n\
414@1: L' U R' F' U R F2 U2 D' R D' R' U D' B D2 R2 U' L2 U' R2 D' R2 F2 R2 U' R' F' U R B L \n\
415nissy-# save @1\n\
416$5: L' U R' F' U R F2 U2 D' R D' R' U D' B D2 R2 U' L2 U' R2 D' R2 F2 R2 U' R' F' U R B L \n\
417nissy-# dr from rl $5\n\
418@1: F2 U D2 F' B D B (7)\n\
419nissy-# \n\
420\n\
421If you ask nissy to solve a substep (or the whole cube) using a sequence with\n\
422NISS as scramble, it will first un-NISS it (but without saving the unNISSed\n\
423scramble anywhere):\n\
424\n\
425print $3\n\
426$3: R' U' F R U R2 F2 R2 D R2 U L2 U R2 D2 B' D U' R D R' D U2 F2 R' U' F R U' L (B L) \n\
427nissy-# solve $3\n\
428@1: F U' R2 F2 U2 F U2 R2 L2 D R2 U B2 D' L2 D B2 D2 (18)\n\
429\n\
430Nissy knows how to solve certain common sub-steps for DR (or Thistlethwaite /\n\
431Kociemba algorithms). For now it does know more common speedsolving methods.\n\
432\n\
433For a full list of commands type \"help\". For a more detailed help on a specific\n\
434command, type \"help (command)\". The help pages can also be found in the docs\n\
435folder.\n\
436\n\
437If you want to report a bug (I'm sure there are many!) or give a suggestion,\n\
438you can send an email to sebastiano.tronto@gmail.com.\n\
439\n\
440Have fun!\n\
441\n\
442"
443},
444
445{ "pic",
446"\
447\n\
448HELP PAGE FOR COMMAND pic\n\
449\n\
450SYNTAX\n\
451pic [MOVES|$ID|@ID]\n\
452\n\
453DESCRIPTION\n\
454Prints the cube state after applying the given scramble.\n\
455\n\
456EXAMPLES\n\
457pic R' U' F R U R2 F2 R2 D R2 U L2 U R2 D2 B' D U' R D R' D U2 F2 R' U' F \n\
458 Gives the following output:\n\
459 UF UL UB UR DF DL DB DR FR FL BL BR \n\
460EP: FR UL FL UR UF DB DR BL UB BR DL DF \n\
461EO(F/B): x x x x x x x x \n\
462\n\
463 UFR UFL UBL UBR DFR DFL DBL DBR \n\
464CP: UBR UFR DFL DBL UFL UBL DBR DFR \n\
465CO(U/D): ccw cw ccw cw\n\
466\n\
467"
468},
469
470{ "print",
471"\
472\n\
473HELP PAGE FOR COMMAND print\n\
474\n\
475SYNTAX\n\
476print [$ID|@ID]\n\
477\n\
478DESCRIPTION\n\
479Prints memorized sequences. If no argument is given, it prints all memorized\n\
480scrambles ($ only). If $ID or @ID is specified, it only prints the relative\n\
481memorized sequence.\n\
482\n\
483EXAMPLES\n\
484print\n\
485 Prints a list of all memorized scrambles (only $).\n\
486print $2\n\
487 Prints the second memorized scramble.\n\
488print @13\n\
489 Prints the 13th sequence that was part of the output of the last command.\n\
490\n\
491"
492},
493
494{ "quit",
495"\
496\n\
497HELP PAGE FOR COMMAND quit\n\
498\n\
499SYNTAX\n\
500quit\n\
501\n\
502DESCRIPTION\n\
503Exits nissy.\n\
504\n\
505"
506},
507
508{ "replace",
509"\
510\n\
511HELP PAGE FOR COMMAND replace\n\
512\n\
513SYNTAX\n\
514eo [OPTIONS] [MOVES|$ID|@ID]\n\
515\n\
516DESCRIPTION\n\
517Looks for non-optimal subsequences and replaces them to shorten the given\n\
518sequence. By default it tries to shorten every subsequence of up to 10 moves,\n\
519but this can be change with the \"b\" option.\n\
520It outputs at most 10 equivalent optimal sequences for each replaceable part.\n\
521\n\
522OPTIONS\n\
523b=N Finds non-optimal subsequences of up to N moves.\n\
524\n\
525EXAMPLES\n\
526replace D2 F' D2 U2 F' L2 R2 U' D B2 D B2 U B2 F L2 R' F' D U' \n\
527 Produces the following output:\n\
528Replace [ R2 U' D B2 D B2 ] (moves 7-12) with: [ D R2 D U' ] (-6+4)\n\
529Replace [ R2 U' D B2 D B2 U ] (moves 7-13) with: [ D R2 D ] (-7+3)\n\
530Replace [ U' D B2 D B2 U ] (moves 8-13) with: [ R2 D R2 D ] (-6+4)\n\
531\n\
532"
533},
534
535{ "save",
536"\
537\n\
538HELP PAGE FOR COMMAND save\n\
539\n\
540SYNTAX\n\
541save [MOVES|@ID|$ID]\n\
542\n\
543DESCRIPTION\n\
544Memorizes the scramble specified by MOVES, given as input or temporarily saved\n\
545as @ID, where ID is a number ('help nissy' for for more on IDs). If an $ID is\n\
546given, it makes a copy of the scramble. An identifier of the form $ID, where ID\n\
547is a number, is assigned to the memorized scramble.\n\
548\n\
549EXAMPLES\n\
550save R U R' U'\n\
551 Saves the scramble R U R' U'.\n\
552save F (B)\n\
553 Saves the scramble F (B) (NISS notation).\n\
554save @3\n\
555 Saves the third output sequence of the last command.\n\
556save $2\n\
557 Makes a copy of the second saved scramble.\n\
558\n\
559"
560},
561
562{ "scramble",
563"\
564\n\
565HELP PAGE FOR COMMAND scramble\n\
566\n\
567SYNTAX\n\
568scramble [OPTIONS]\n\
569\n\
570DESCRIPTION\n\
571Produces a random-state scramble. There are options to get a corners-only,\n\
572edges-only or dr-state scramble.\n\
573\n\
574OPTIONS\n\
575c Scrambles corners only (edges are solved).\n\
576e Scrambles edges only (corners are solved).\n\
577dr DR-state scramble. The DR is always on the U/D axis.\n\
578\n\
579\n\
580EXAMPLES\n\
581scramble\n\
582 Gives a random-state scramble\n\
583scramble dr\n\
584 Gives a random-DR-state scramble\n\
585\n\
586"
587},
588
589{ "solve",
590"\
591\n\
592HELP PAGE FOR COMMAND solve\n\
593\n\
594SYNTAX\n\
595solve [MOVES|$ID|@ID]\n\
596\n\
597DESCRIPTION\n\
598Solves the given scramble, which can be given as a sequence of moves or as $ID\n\
599or @ID. If none is given, the user can type it on the next line.\n\
600The algorithm first tries to find a short (<=10 moves) solution, and then\n\
601switches to a 2-step algorithm (unless the option \"o\" is specified, in which\n\
602case it keeps looking for an optimal solution).\n\
603The first time it uses the 2-step algorithm it needs to load some tables, which\n\
604can take a few seconds. It runs much faster after that. If the option \"o\" is\n\
605specified, the first time it loads some large tables, which can take a minute\n\
606or two.\n\
607\n\
608OPTIONS\n\
609b=N Only looks for solutions up to N moves.\n\
610n=N Tries to find multiple solutions, at most N. Multiple\n\
611 Solutions will only be found if they are <=10 moves.\n\
612o Looks for optimal solution.\n\
613\n\
614\n\
615EXAMPLES\n\
616solve R' U' F\n\
617 Solves the scramble R' U' F.\n\
618solve o b=14 $1\n\
619 Tries to solve the scramble $1 optimally, but stops if no solution of 14\n\
620 moves or shorter is found.\n\
621solve n=16 R L' U2 R' L F2\n\
622 Finds the 16 shortest solutions for the scramble above.\n\
623\n\
624"
625},
626
627{ "unniss",
628"\
629\n\
630HELP PAGE FOR COMMAND unniss\n\
631\n\
632SYNTAX\n\
633unniss [MOVES|$ID|@ID]\n\
634\n\
635DESCRIPTION\n\
636Removes NISS from a sequence of moves, which can be given also as $ID or @ID.\n\
637A sequence of the form A (B) is translated to B' A.\n\
638\n\
639EXAMPLES\n\
640invert F R (D' L2)\n\
641 Prints L2 D F R\n\
642\n\
643"
644},
645};

Generated with cgit - Back to sebastiano.tronto.net