|
@@ -7,12 +7,12 @@ namespace tutorial
|
|
"Welcome to notenogram's tutorial mode! Press A to go forward, START to quit anytime.",
|
|
"Welcome to notenogram's tutorial mode! Press A to go forward, START to quit anytime.",
|
|
"Chances are this is the first time you've ever gave a picross/nonogram game a go, and if so, this tutorial on Picross 101 is here to help!",
|
|
"Chances are this is the first time you've ever gave a picross/nonogram game a go, and if so, this tutorial on Picross 101 is here to help!",
|
|
//2 - basic rules
|
|
//2 - basic rules
|
|
- "The objective of solving a picross puzzle is filling squares in a finite rectangular grid according to numeric hints on the left and the top.",
|
|
|
|
|
|
+ "The objective of solving a picross puzzle is filling squares/cells in a finite rectangular grid according to numeric hints on the left and the top.",
|
|
//3
|
|
//3
|
|
"Kinda like regular crossword, except you get a pixel picture as a result of completion (also \"picross\" = \"picture crossword\", so there you have it).",
|
|
"Kinda like regular crossword, except you get a pixel picture as a result of completion (also \"picross\" = \"picture crossword\", so there you have it).",
|
|
"Each numeric row on the left or column on top represents the number of colored squares in the grid's respective row or column.",
|
|
"Each numeric row on the left or column on top represents the number of colored squares in the grid's respective row or column.",
|
|
"So if second row from the top says '5', it means second row from the top of the grid should have five colored squares.",
|
|
"So if second row from the top says '5', it means second row from the top of the grid should have five colored squares.",
|
|
- "You can color a square by moving the pen cursor to it using the D-pad and pressing A.",
|
|
|
|
|
|
+ "You can color a square by moving the pen cursor to it using the D-pad and pressing A button.",
|
|
//7 - separated
|
|
//7 - separated
|
|
"If there's more than one number of colored squares hinted at, it means that these groups of squares are separated by at least one empty square.",
|
|
"If there's more than one number of colored squares hinted at, it means that these groups of squares are separated by at least one empty square.",
|
|
//8
|
|
//8
|
|
@@ -26,13 +26,13 @@ namespace tutorial
|
|
//13
|
|
//13
|
|
"Same with the row of cells - start with one colored square from the left, then skip the next one to the right, then color the rest.",
|
|
"Same with the row of cells - start with one colored square from the left, then skip the next one to the right, then color the rest.",
|
|
//14
|
|
//14
|
|
- "These empty squares can be crossed out (using B button) to easier keep track of them.",
|
|
|
|
|
|
+ "These empty squares can be crossed out (using B button) to easily keep track of them.",
|
|
"That's all there is to the basic rules. Now, let's smoothly transition to our first Picross Strategy Tip!",
|
|
"That's all there is to the basic rules. Now, let's smoothly transition to our first Picross Strategy Tip!",
|
|
"Picross Strategy Tip #1: always color squares that you know should be colored, and always cross out empty squares you know should be empty.",
|
|
"Picross Strategy Tip #1: always color squares that you know should be colored, and always cross out empty squares you know should be empty.",
|
|
//17 tip 1 full
|
|
//17 tip 1 full
|
|
"If you're solving a 5x5 puzzle and there's a row or a column marked with number '5', it means the entire row or column should be colored.",
|
|
"If you're solving a 5x5 puzzle and there's a row or a column marked with number '5', it means the entire row or column should be colored.",
|
|
//18 empty
|
|
//18 empty
|
|
- "Likewise if a row or column has no number hints, this means there are no colored squares and you can cross them entirely!",
|
|
|
|
|
|
+ "Likewise if a row or column has no number hints, this means there are no colored squares and you can cross them out entirely!",
|
|
"This also can be used for the groups of different amounts of squares - ",
|
|
"This also can be used for the groups of different amounts of squares - ",
|
|
"if they span the entire row or column and can be separated by no more than one empty square inbetween, they can be safely marked accordingly.",
|
|
"if they span the entire row or column and can be separated by no more than one empty square inbetween, they can be safely marked accordingly.",
|
|
//21 group
|
|
//21 group
|
|
@@ -61,17 +61,17 @@ namespace tutorial
|
|
"first imagine coloring from the left with one square gap between,",
|
|
"first imagine coloring from the left with one square gap between,",
|
|
"then imagine coloring from the right (but starting with group of three), again with one square inbetween.",
|
|
"then imagine coloring from the right (but starting with group of three), again with one square inbetween.",
|
|
"Here, the remaining squares should be colored 100%, but that may not work for other numbers.",
|
|
"Here, the remaining squares should be colored 100%, but that may not work for other numbers.",
|
|
- "This method won't work with separate groups of one colored square or for total square count that's less than half of the row or column size, though.",
|
|
|
|
|
|
+ "For example, this won't work with single colored square groups or for less than half of the row or column of colored squares.",
|
|
"Last Picross Strategy Tip for now, and it's the only tip that can be applied for video games.",
|
|
"Last Picross Strategy Tip for now, and it's the only tip that can be applied for video games.",
|
|
"Picross Strategy Tip #3: take risks!",
|
|
"Picross Strategy Tip #3: take risks!",
|
|
- "If you're not sure what to do and making a mistake won't cost you too much, take a guess and color the square you think should be colored!",
|
|
|
|
|
|
+ "If you're not sure what to do and making a mistake isn't critical, take a guess and color the square you think should be colored!",
|
|
"Whether you're right or not, you'll still gain some valuable information that will help you out in solving the puzzle.",
|
|
"Whether you're right or not, you'll still gain some valuable information that will help you out in solving the puzzle.",
|
|
"Truth be told, not every picross puzzle pattern is designed to be logically solveable 100% (and this game is no exception).",
|
|
"Truth be told, not every picross puzzle pattern is designed to be logically solveable 100% (and this game is no exception).",
|
|
- "As long as you expect minimal losses from it, some guesswork can definitely come in handy.",
|
|
|
|
- "...Aaaaand that's it for now! Hope this was easy enough to understand and help you get started with notenogram's 12-by-12 puzzles.",
|
|
|
|
|
|
+ "As long as you expect minimal losses from it, some guesswork can definitely be of use.",
|
|
|
|
+ "...Aaaaand that's it for now! Hope this was easy enough to understand for getting started with notenogram's 12x12 puzzles.",
|
|
"With the basics now in your grasp, try solving puzzle #1 in the Things category, as it should be the easiest one of them!",
|
|
"With the basics now in your grasp, try solving puzzle #1 in the Things category, as it should be the easiest one of them!",
|
|
"Let me know if there is anything I should clarify or add to this tutorial via game's itch.io page's comment section.",
|
|
"Let me know if there is anything I should clarify or add to this tutorial via game's itch.io page's comment section.",
|
|
- "I myself am still not very well-versed in picross, so in case I made a mistake or something, feel free to notify me!",
|
|
|
|
|
|
+ "I myself am still not very well-versed in picross, so in case I made a mistake or something be sure to notify me!",
|
|
"Have fun д"
|
|
"Have fun д"
|
|
};
|
|
};
|
|
}
|
|
}
|
|
@@ -105,6 +105,8 @@ void TutorialMode::initScreen()
|
|
PaperSheetPattern_Holed();
|
|
PaperSheetPattern_Holed();
|
|
refreshScreen(map);
|
|
refreshScreen(map);
|
|
_text->redraw(tutorial::text[0]);
|
|
_text->redraw(tutorial::text[0]);
|
|
|
|
+ //sprite.valid(true);
|
|
|
|
+ //sprite->set_visible(false);
|
|
}
|
|
}
|
|
|
|
|
|
int TutorialMode::drawText()
|
|
int TutorialMode::drawText()
|
|
@@ -123,10 +125,13 @@ int TutorialMode::drawText()
|
|
switch (script_ptr)
|
|
switch (script_ptr)
|
|
{
|
|
{
|
|
case 2:
|
|
case 2:
|
|
- BasicRulesExample(false);
|
|
|
|
|
|
+ BasicRulesExample(false,false);
|
|
break;
|
|
break;
|
|
case 3:
|
|
case 3:
|
|
- BasicRulesExample(true);
|
|
|
|
|
|
+ BasicRulesExample(true,false);
|
|
|
|
+ break;
|
|
|
|
+ case 5:
|
|
|
|
+ BasicRulesExample(true,true);
|
|
break;
|
|
break;
|
|
case 7:
|
|
case 7:
|
|
clearBG();
|
|
clearBG();
|
|
@@ -206,6 +211,7 @@ int TutorialMode::drawText()
|
|
//clearing the screen's area for puzzle examples
|
|
//clearing the screen's area for puzzle examples
|
|
void TutorialMode::clearBG()
|
|
void TutorialMode::clearBG()
|
|
{
|
|
{
|
|
|
|
+ sprite->set_visible(false);
|
|
for (int i = map_redraw_start_x; i < map_redraw_width; ++i)
|
|
for (int i = map_redraw_start_x; i < map_redraw_width; ++i)
|
|
{
|
|
{
|
|
for (int j = map_redraw_start_y; j < map_redraw_height; ++j)
|
|
for (int j = map_redraw_start_y; j < map_redraw_height; ++j)
|
|
@@ -217,7 +223,7 @@ void TutorialMode::clearBG()
|
|
|
|
|
|
//heart picross puzzle
|
|
//heart picross puzzle
|
|
//parameter - checks whether to color in the solution
|
|
//parameter - checks whether to color in the solution
|
|
-void TutorialMode::BasicRulesExample(bool squares_colored)
|
|
|
|
|
|
+void TutorialMode::BasicRulesExample(bool squares_colored, bool highlight)
|
|
{
|
|
{
|
|
//row hints
|
|
//row hints
|
|
setCellTile(12, 10, 4);
|
|
setCellTile(12, 10, 4);
|
|
@@ -246,6 +252,12 @@ void TutorialMode::BasicRulesExample(bool squares_colored)
|
|
setCellTile(15, 13, 3);
|
|
setCellTile(15, 13, 3);
|
|
setCellTile(16, 12, 3);
|
|
setCellTile(16, 12, 3);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if (highlight)
|
|
|
|
+ {
|
|
|
|
+ sprite = buildSprite(bn::sprite_items::bar_horz, -9, -8);
|
|
|
|
+ sprite->set_visible(true);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
//single-row example of separated square groups
|
|
//single-row example of separated square groups
|
|
//parameter - flag that decides which example to draw (upper is correct, lower is not)
|
|
//parameter - flag that decides which example to draw (upper is correct, lower is not)
|
|
@@ -265,6 +277,12 @@ void TutorialMode::SeparatedSquaresExample(bool upper_row)
|
|
setCellTile(13, row_index+1, 3);
|
|
setCellTile(13, row_index+1, 3);
|
|
setCellTile(15, row_index+1, 3);
|
|
setCellTile(15, row_index+1, 3);
|
|
setCellTile((upper_row ? 16 : 14), row_index+1, 3);
|
|
setCellTile((upper_row ? 16 : 14), row_index+1, 3);
|
|
|
|
+
|
|
|
|
+ if (!upper_row)
|
|
|
|
+ {
|
|
|
|
+ sprite = buildSprite(bn::sprite_items::good, 40, -22);
|
|
|
|
+ sprite->set_visible(true);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
//single-row/column example of ordering separated square groups
|
|
//single-row/column example of ordering separated square groups
|
|
//parameter - flags that decide which example to draw (row or column or crossed squares)
|
|
//parameter - flags that decide which example to draw (row or column or crossed squares)
|
|
@@ -272,15 +290,17 @@ void TutorialMode::SeparatedSquaresOrderExample(bool row, bool cross)
|
|
{
|
|
{
|
|
if (row)
|
|
if (row)
|
|
{
|
|
{
|
|
- setCellTile(13, 11, 4);
|
|
|
|
- setCellTile(14, 11, 5);
|
|
|
|
- setCellTile(15, 11, 3);
|
|
|
|
- setCellTile(17, 11, 3);
|
|
|
|
- setCellTile(18, 11, 3);
|
|
|
|
|
|
+ setCellTile(13, 10, 4);
|
|
|
|
+ setCellTile(14, 10, 5);
|
|
|
|
+ setCellTile(15, 10, 3);
|
|
|
|
+ setCellTile(17, 10, 3);
|
|
|
|
+ setCellTile(18, 10, 3);
|
|
|
|
+ sprite = buildSprite(bn::sprite_items::arrow_row, -9, -8);
|
|
|
|
+ sprite->set_visible(true);
|
|
}
|
|
}
|
|
else if (cross)
|
|
else if (cross)
|
|
{
|
|
{
|
|
- setCellTile(16, 11, 2);
|
|
|
|
|
|
+ setCellTile(16, 10, 2);
|
|
setCellTile(10, 13, 2);
|
|
setCellTile(10, 13, 2);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
@@ -291,6 +311,8 @@ void TutorialMode::SeparatedSquaresOrderExample(bool row, bool cross)
|
|
setCellTile(10, 12, 3);
|
|
setCellTile(10, 12, 3);
|
|
setCellTile(10, 14, 3);
|
|
setCellTile(10, 14, 3);
|
|
setCellTile(10, 15, 3);
|
|
setCellTile(10, 15, 3);
|
|
|
|
+ sprite = buildSprite(bn::sprite_items::arrow_col, -9, -8);
|
|
|
|
+ sprite->set_visible(true);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|