puzzles: compress extensive help text

This is only really needed to save a few bytes on the c200v2, but
since it adds negligible overhead, so it's implemented for all
targets.

A stripped down version of the LZ4 reference implementation is found
in lz4tiny.c.

Change-Id: Ib914ba71c84e04da282328662c752e533912e197
This commit is contained in:
Franklin Wei 2017-08-16 11:32:28 -04:00
parent 5645135092
commit bf25f3e6e7
46 changed files with 7347 additions and 2838 deletions

View file

@ -1,62 +1,149 @@
/* auto-generated by genhelp.sh */
/* auto-generated on Aug 16 2017 by genhelp.sh */
/* orig 2029 comp 1393 ratio 0.686545 level 4 saved 636 */
/* DO NOT EDIT! */
const char help_text[] =
"#Chapter 35: Range "
"\n"
"You have a grid of squares; some squares contain numbers. Your job "
"is to colour some of the squares black, such that several criteria "
"are satisfied: "
"\n"
"- no square with a number is coloured black. "
"\n"
"- no two black squares are adjacent (horizontally or vertically). "
"\n"
"- for any two white squares, there is a path between them using "
"only white squares. "
"\n"
"- for each square with a number, that number denotes the total "
"number of white squares reachable from that square going in a "
"straight line in any horizontal or vertical direction until "
"hitting a wall or a black square; the square with the number is "
"included in the total (once). "
"\n"
"For instance, a square containing the number one must have four "
"black squares as its neighbours by the last criterion; but then it's "
"impossible for it to be connected to any outside white square, which "
"violates the second to last criterion. So no square will contain the "
"number one. "
"\n"
"Credit for this puzzle goes to Nikoli, who have variously called it "
"`Kurodoko', `Kuromasu' or `Where is Black Cells'. [18]. "
"\n"
"Range was contributed to this collection by Jonas Koelker. "
"\n"
"[18] http://www.nikoli.co.jp/en/puzzles/where_is_black_cells.html "
"\n"
"\n#35.1 Range controls "
"\n"
"Click with the left button to paint a square black, or with the "
"right button to mark a square with a dot to indicate that you are "
"sure it should _not_ be painted black. Repeated clicking with either "
"button will cycle the square through the three possible states "
"(filled, dotted or empty) in opposite directions. "
"\n"
"You can also use the cursor keys to move around the grid squares. "
"Pressing Return does the same as clicking with the left button, "
"while pressing Space does the same as a right button click. Moving "
"with the cursor keys while holding Shift will place dots in all "
"squares that are moved through. "
"\n"
"(All the actions described in section 2.1 are also available.) "
"\n"
"\n#35.2 Range parameters "
"\n"
"These parameters are available from the `Custom...' option on the "
"`Type' menu. "
"\n"
"_Width_, _Height_ "
"\n"
"Size of grid in squares. "
"\n"
;
#include "help.h"
const char help_text[] = {
0xf4, 0x25, 0x23, 0x43, 0x68, 0x61, 0x70, 0x74, 0x65, 0x72,
0x20, 0x33, 0x35, 0x3a, 0x20, 0x52, 0x61, 0x6e, 0x67, 0x65,
0x20, 0x0a, 0x59, 0x6f, 0x75, 0x20, 0x68, 0x61, 0x76, 0x65,
0x20, 0x61, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, 0x6f, 0x66,
0x20, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x73, 0x3b, 0x20,
0x73, 0x6f, 0x6d, 0x65, 0x0e, 0x00, 0xf0, 0x15, 0x20, 0x63,
0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x20, 0x6e, 0x75, 0x6d,
0x62, 0x65, 0x72, 0x73, 0x2e, 0x20, 0x59, 0x6f, 0x75, 0x72,
0x20, 0x6a, 0x6f, 0x62, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f,
0x20, 0x63, 0x6f, 0x6c, 0x11, 0x00, 0x01, 0x34, 0x00, 0x56,
0x6f, 0x66, 0x20, 0x74, 0x68, 0x3b, 0x00, 0xf3, 0x27, 0x62,
0x6c, 0x61, 0x63, 0x6b, 0x2c, 0x20, 0x73, 0x75, 0x63, 0x68,
0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x73, 0x65, 0x76, 0x65,
0x72, 0x61, 0x6c, 0x20, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72,
0x69, 0x61, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x61, 0x74,
0x69, 0x73, 0x66, 0x69, 0x65, 0x64, 0x3a, 0x20, 0x0a, 0x2d,
0x20, 0x6e, 0x6f, 0x3f, 0x00, 0x73, 0x20, 0x77, 0x69, 0x74,
0x68, 0x20, 0x61, 0x78, 0x00, 0x00, 0x6d, 0x00, 0x02, 0x6a,
0x00, 0x22, 0x65, 0x64, 0x58, 0x00, 0x13, 0x2e, 0x2e, 0x00,
0x32, 0x74, 0x77, 0x6f, 0x11, 0x00, 0x05, 0x77, 0x00, 0x00,
0x3d, 0x00, 0xf0, 0x00, 0x61, 0x64, 0x6a, 0x61, 0x63, 0x65,
0x6e, 0x74, 0x20, 0x28, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0xc4,
0x00, 0xd0, 0x6c, 0x6c, 0x79, 0x20, 0x6f, 0x72, 0x20, 0x76,
0x65, 0x72, 0x74, 0x69, 0x63, 0x0e, 0x00, 0x11, 0x29, 0x43,
0x00, 0x71, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6e, 0x79, 0x48,
0x00, 0x45, 0x77, 0x68, 0x69, 0x74, 0xbf, 0x00, 0x10, 0x2c,
0xcc, 0x00, 0x20, 0x72, 0x65, 0x7a, 0x00, 0xe0, 0x61, 0x20,
0x70, 0x61, 0x74, 0x68, 0x20, 0x62, 0x65, 0x74, 0x77, 0x65,
0x65, 0x6e, 0x18, 0x00, 0xca, 0x6d, 0x20, 0x75, 0x73, 0x69,
0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x37, 0x00, 0x05,
0x55, 0x00, 0x4f, 0x65, 0x61, 0x63, 0x68, 0xcc, 0x00, 0x02,
0x12, 0x2c, 0x0d, 0x01, 0x03, 0xd9, 0x00, 0x71, 0x64, 0x65,
0x6e, 0x6f, 0x74, 0x65, 0x73, 0x39, 0x01, 0x54, 0x74, 0x6f,
0x74, 0x61, 0x6c, 0x19, 0x00, 0x2a, 0x6f, 0x66, 0x59, 0x00,
0x20, 0x20, 0x72, 0x52, 0x00, 0x93, 0x61, 0x62, 0x6c, 0x65,
0x20, 0x66, 0x72, 0x6f, 0x6d, 0x52, 0x01, 0x02, 0x60, 0x00,
0x20, 0x67, 0x6f, 0x8d, 0x00, 0xf1, 0x03, 0x69, 0x6e, 0x20,
0x61, 0x20, 0x73, 0x74, 0x72, 0x61, 0x69, 0x67, 0x68, 0x74,
0x20, 0x6c, 0x69, 0x6e, 0x65, 0x13, 0x00, 0x36, 0x6e, 0x79,
0x20, 0x05, 0x01, 0x08, 0x03, 0x01, 0xf0, 0x06, 0x20, 0x64,
0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x75,
0x6e, 0x74, 0x69, 0x6c, 0x20, 0x68, 0x69, 0x74, 0x74, 0x49,
0x00, 0x51, 0x61, 0x20, 0x77, 0x61, 0x6c, 0x2b, 0x00, 0x19,
0x61, 0x5c, 0x01, 0x17, 0x3b, 0xdf, 0x01, 0x02, 0xd4, 0x00,
0x00, 0x10, 0x00, 0x06, 0xa2, 0x01, 0x80, 0x69, 0x6e, 0x63,
0x6c, 0x75, 0x64, 0x65, 0x64, 0x77, 0x00, 0x06, 0xd0, 0x00,
0x50, 0x28, 0x6f, 0x6e, 0x63, 0x65, 0x6d, 0x01, 0xf4, 0x00,
0x46, 0x6f, 0x72, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
0x63, 0x65, 0x2c, 0x20, 0x61, 0x49, 0x00, 0x03, 0x62, 0x02,
0x00, 0x79, 0x00, 0x07, 0x4f, 0x00, 0x82, 0x6f, 0x6e, 0x65,
0x20, 0x6d, 0x75, 0x73, 0x74, 0xa6, 0x02, 0x10, 0x66, 0x64,
0x02, 0x0b, 0xe7, 0x01, 0xf1, 0x04, 0x73, 0x20, 0x69, 0x74,
0x73, 0x20, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x75,
0x72, 0x73, 0x20, 0x62, 0x79, 0x41, 0x00, 0x44, 0x6c, 0x61,
0x73, 0x74, 0x63, 0x02, 0x70, 0x6f, 0x6e, 0x3b, 0x20, 0x62,
0x75, 0x74, 0x18, 0x00, 0xe1, 0x6e, 0x20, 0x69, 0x74, 0x27,
0x73, 0x20, 0x69, 0x6d, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x47,
0x01, 0x00, 0x90, 0x00, 0x10, 0x74, 0xc5, 0x02, 0x11, 0x62,
0x86, 0x00, 0x60, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10,
0x00, 0x00, 0x34, 0x01, 0x79, 0x6f, 0x75, 0x74, 0x73, 0x69,
0x64, 0x65, 0x85, 0x01, 0x10, 0x2c, 0x0e, 0x00, 0x84, 0x63,
0x68, 0x20, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0xb6, 0x01, 0x51,
0x73, 0x65, 0x63, 0x6f, 0x6e, 0x37, 0x00, 0x0a, 0x7a, 0x00,
0x49, 0x2e, 0x20, 0x53, 0x6f, 0xd0, 0x02, 0x25, 0x6c, 0x6c,
0x4e, 0x03, 0x0a, 0xe9, 0x00, 0x91, 0x2e, 0x20, 0x0a, 0x43,
0x72, 0x65, 0x64, 0x69, 0x74, 0x93, 0x00, 0xa0, 0x74, 0x68,
0x69, 0x73, 0x20, 0x70, 0x75, 0x7a, 0x7a, 0x6c, 0xd9, 0x01,
0x11, 0x65, 0x66, 0x03, 0x60, 0x4e, 0x69, 0x6b, 0x6f, 0x6c,
0x69, 0x7f, 0x00, 0x12, 0x6f, 0x11, 0x01, 0xa0, 0x76, 0x61,
0x72, 0x69, 0x6f, 0x75, 0x73, 0x6c, 0x79, 0x20, 0xcc, 0x02,
0x00, 0x73, 0x01, 0xd2, 0x74, 0x20, 0x60, 0x4b, 0x75, 0x72,
0x6f, 0x64, 0x6f, 0x6b, 0x6f, 0x27, 0x2c, 0x0c, 0x00, 0x50,
0x6d, 0x61, 0x73, 0x75, 0x27, 0xc7, 0x01, 0x24, 0x60, 0x57,
0xcb, 0x02, 0x11, 0x42, 0x44, 0x01, 0xf2, 0x00, 0x43, 0x65,
0x6c, 0x6c, 0x73, 0x27, 0x2e, 0x20, 0x5b, 0x31, 0x38, 0x5d,
0x2e, 0x20, 0x0a, 0x14, 0x04, 0x22, 0x77, 0x61, 0xee, 0x03,
0x43, 0x72, 0x69, 0x62, 0x75, 0x08, 0x01, 0x22, 0x74, 0x68,
0x78, 0x03, 0x13, 0x6c, 0x27, 0x02, 0xf0, 0x04, 0x62, 0x79,
0x20, 0x4a, 0x6f, 0x6e, 0x61, 0x73, 0x20, 0x4b, 0x6f, 0x65,
0x6c, 0x6b, 0x65, 0x72, 0x2e, 0x20, 0x0a, 0x43, 0x00, 0xd1,
0x20, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77,
0x77, 0x2e, 0x6e, 0xaa, 0x00, 0xa2, 0x2e, 0x63, 0x6f, 0x2e,
0x6a, 0x70, 0x2f, 0x65, 0x6e, 0x2f, 0xc9, 0x00, 0x30, 0x73,
0x2f, 0x77, 0x82, 0x00, 0x41, 0x5f, 0x69, 0x73, 0x5f, 0xc6,
0x01, 0x20, 0x5f, 0x63, 0x82, 0x00, 0xd3, 0x2e, 0x68, 0x74,
0x6d, 0x6c, 0x20, 0x0a, 0x0a, 0x23, 0x33, 0x35, 0x2e, 0x31,
0x9a, 0x04, 0x01, 0x82, 0x00, 0xa6, 0x6f, 0x6c, 0x73, 0x20,
0x0a, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x67, 0x02, 0x40, 0x6c,
0x65, 0x66, 0x74, 0xcc, 0x01, 0x30, 0x74, 0x6f, 0x6e, 0x9b,
0x00, 0x56, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x45, 0x02, 0x03,
0x6c, 0x04, 0x26, 0x6f, 0x72, 0x31, 0x00, 0x11, 0x72, 0x07,
0x03, 0x06, 0x32, 0x00, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x20,
0x61, 0x93, 0x03, 0x21, 0x64, 0x6f, 0x01, 0x02, 0x82, 0x69,
0x6e, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x56, 0x03, 0x32,
0x79, 0x6f, 0x75, 0x9b, 0x04, 0x10, 0x75, 0x35, 0x01, 0xe0,
0x74, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x5f,
0x6e, 0x6f, 0x74, 0x5f, 0x2c, 0x02, 0x01, 0x7c, 0x00, 0x06,
0x89, 0x04, 0x50, 0x52, 0x65, 0x70, 0x65, 0x61, 0x10, 0x00,
0x10, 0x63, 0xb2, 0x00, 0x00, 0xc8, 0x02, 0x01, 0x5d, 0x00,
0x20, 0x65, 0x69, 0x41, 0x04, 0x04, 0x81, 0x00, 0x02, 0xff,
0x01, 0x48, 0x79, 0x63, 0x6c, 0x65, 0x45, 0x03, 0x62, 0x74,
0x68, 0x72, 0x6f, 0x75, 0x67, 0xb0, 0x00, 0x65, 0x74, 0x68,
0x72, 0x65, 0x65, 0x20, 0x9e, 0x02, 0x21, 0x73, 0x74, 0x62,
0x02, 0x30, 0x28, 0x66, 0x69, 0xe0, 0x01, 0x10, 0x2c, 0xaa,
0x00, 0x00, 0x64, 0x00, 0x00, 0x5a, 0x04, 0x50, 0x6d, 0x70,
0x74, 0x79, 0x29, 0x65, 0x03, 0x50, 0x6f, 0x70, 0x70, 0x6f,
0x73, 0x9f, 0x02, 0x05, 0xca, 0x03, 0x22, 0x73, 0x2e, 0xdc,
0x05, 0xb2, 0x63, 0x61, 0x6e, 0x20, 0x61, 0x6c, 0x73, 0x6f,
0x20, 0x75, 0x73, 0x71, 0x00, 0xa1, 0x63, 0x75, 0x72, 0x73,
0x6f, 0x72, 0x20, 0x6b, 0x65, 0x79, 0x51, 0x02, 0x20, 0x6d,
0x6f, 0xfc, 0x05, 0x51, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x1f,
0x00, 0x01, 0x05, 0x06, 0x05, 0xc3, 0x04, 0x41, 0x50, 0x72,
0x65, 0x73, 0xe0, 0x04, 0x94, 0x52, 0x65, 0x74, 0x75, 0x72,
0x6e, 0x20, 0x64, 0x6f, 0xec, 0x02, 0x30, 0x61, 0x6d, 0x65,
0x7a, 0x03, 0x0a, 0xea, 0x00, 0x0b, 0x9f, 0x01, 0x01, 0x26,
0x03, 0x44, 0x6c, 0x65, 0x20, 0x70, 0x46, 0x00, 0x5e, 0x53,
0x70, 0x61, 0x63, 0x65, 0x45, 0x00, 0x1a, 0x61, 0xa3, 0x01,
0x01, 0x54, 0x00, 0x59, 0x2e, 0x20, 0x4d, 0x6f, 0x76, 0x59,
0x00, 0x08, 0xb9, 0x00, 0x02, 0x58, 0x00, 0x41, 0x68, 0x6f,
0x6c, 0x64, 0x57, 0x00, 0x42, 0x68, 0x69, 0x66, 0x74, 0x59,
0x01, 0x22, 0x70, 0x6c, 0x62, 0x00, 0x21, 0x74, 0x73, 0xf3,
0x04, 0x25, 0x6c, 0x6c, 0x27, 0x04, 0x01, 0xd1, 0x01, 0x00,
0x6b, 0x01, 0x00, 0xf2, 0x00, 0x14, 0x64, 0x71, 0x01, 0x71,
0x2e, 0x20, 0x0a, 0x28, 0x41, 0x6c, 0x6c, 0x61, 0x00, 0x12,
0x61, 0x39, 0x01, 0x82, 0x20, 0x64, 0x65, 0x73, 0x63, 0x72,
0x69, 0x62, 0xbf, 0x04, 0x13, 0x73, 0xf2, 0x02, 0x32, 0x32,
0x2e, 0x31, 0x51, 0x06, 0x00, 0x4c, 0x01, 0x50, 0x61, 0x76,
0x61, 0x69, 0x6c, 0x82, 0x05, 0x23, 0x2e, 0x29, 0xb6, 0x02,
0x13, 0x32, 0xb6, 0x02, 0xf9, 0x01, 0x70, 0x61, 0x72, 0x61,
0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x20, 0x0a, 0x54, 0x68,
0x65, 0x73, 0x12, 0x00, 0x01, 0x40, 0x00, 0x04, 0x3b, 0x00,
0x04, 0xbd, 0x05, 0xf1, 0x01, 0x65, 0x20, 0x60, 0x43, 0x75,
0x73, 0x74, 0x6f, 0x6d, 0x2e, 0x2e, 0x2e, 0x27, 0x20, 0x6f,
0x70, 0x6e, 0x00, 0x22, 0x6f, 0x6e, 0x1a, 0x00, 0xf0, 0x09,
0x54, 0x79, 0x70, 0x65, 0x27, 0x20, 0x6d, 0x65, 0x6e, 0x75,
0x2e, 0x20, 0x0a, 0x5f, 0x57, 0x69, 0x64, 0x74, 0x68, 0x5f,
0x2c, 0x20, 0x5f, 0x48, 0xec, 0x04, 0x71, 0x74, 0x5f, 0x20,
0x0a, 0x53, 0x69, 0x7a, 0x6e, 0x07, 0x01, 0xb6, 0x01, 0x00,
0xae, 0x00, 0xa0, 0x71, 0x75, 0x61, 0x72, 0x65, 0x73, 0x2e,
0x20, 0x0a, 0x00,
};
const unsigned short help_text_len = 2029;
const char quick_help_text[] = "Place black squares to limit the visible distance from each numbered cell.";