Skip to content
Snippets Groups Projects
Commit 5d8fa845 authored by dgelessus's avatar dgelessus
Browse files

Fix :show for animation functions with empty cells

parent f455956c
Branches
Tags
No related merge requests found
MACHINE AnimationFunctionTestProB2
DEFINITIONS
ANIMATION_FUNCTION0 == (1..2)*(1..2)*{0};
ANIMATION_FUNCTION1 == x;
ANIMATION_FUNCTION2 == {(0,0,"Overview")};
ANIMATION_IMG0 == "images/small_empty_w.gif";
ANIMATION_IMG1 == "images/small_wqueen_w.gif"
CONSTANTS x
PROPERTIES
x = {1|->2|->1, 2|->1|->1}
END
\ No newline at end of file
notebooks/tests/images/small_empty_w.gif

139 B

notebooks/tests/images/small_wqueen_w.gif

387 B

%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:help :show :help :show
``` ```
%% Output %% Output
``` ```
:show :show
``` ```
Show the machine's animation function visualisation for the current state. Show the machine's animation function visualisation for the current state.
The visualisation is static, any defined right-click options cannot be viewed or used. The visualisation is static, any defined right-click options cannot be viewed or used.
``` ```
:show :show
``` ```
Show the machine's animation function visualisation for the current state. Show the machine's animation function visualisation for the current state.
The visualisation is static, any defined right-click options cannot be viewed or used. The visualisation is static, any defined right-click options cannot be viewed or used.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:load Hanoi.mch :load Hanoi.mch
``` ```
%% Output %% Output
Loaded machine: Hanoi Loaded machine: Hanoi
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
:show: Machine is not initialised, cannot show animation function visualisation :show: Machine is not initialised, cannot show animation function visualisation
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:constants :constants
``` ```
%% Output %% Output
Machine constants set up using operation 0: $setup_constants() Machine constants set up using operation 0: $setup_constants()
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
:show: Machine is not initialised, cannot show animation function visualisation :show: Machine is not initialised, cannot show animation function visualisation
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:init :init
``` ```
%% Output %% Output
Machine initialised using operation 1: $initialise_machine() Machine initialised using operation 1: $initialise_machine()
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
<table style="font-family:monospace"><tbody> <table style="font-family:monospace"><tbody>
<tr> <tr>
<td style="padding:0px">![1](images/Disc1.gif)</td> <td style="padding:0px">![1](images/Disc1.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![2](images/Disc2.gif)</td> <td style="padding:0px">![2](images/Disc2.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![3](images/Disc3.gif)</td> <td style="padding:0px">![3](images/Disc3.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![4](images/Disc4.gif)</td> <td style="padding:0px">![4](images/Disc4.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![5](images/Disc5.gif)</td> <td style="padding:0px">![5](images/Disc5.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
</tbody></table> </tbody></table>
<Animation function visualisation> <Animation function visualisation>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:exec Move :exec Move
``` ```
%% Output %% Output
Executed operation 2: Move(orig,dest,1) Executed operation 2: Move(orig,dest,1)
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
<table style="font-family:monospace"><tbody> <table style="font-family:monospace"><tbody>
<tr> <tr>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![2](images/Disc2.gif)</td> <td style="padding:0px">![2](images/Disc2.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![3](images/Disc3.gif)</td> <td style="padding:0px">![3](images/Disc3.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![4](images/Disc4.gif)</td> <td style="padding:0px">![4](images/Disc4.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![5](images/Disc5.gif)</td> <td style="padding:0px">![5](images/Disc5.gif)</td>
<td style="padding:0px">![1](images/Disc1.gif)</td> <td style="padding:0px">![1](images/Disc1.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
</tbody></table> </tbody></table>
<Animation function visualisation> <Animation function visualisation>
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:exec Move :exec Move
``` ```
%% Output %% Output
Executed operation 4: Move(orig,Stakes3,2) Executed operation 4: Move(orig,Stakes3,2)
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
<table style="font-family:monospace"><tbody> <table style="font-family:monospace"><tbody>
<tr> <tr>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![3](images/Disc3.gif)</td> <td style="padding:0px">![3](images/Disc3.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![4](images/Disc4.gif)</td> <td style="padding:0px">![4](images/Disc4.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td> <td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:0px">![5](images/Disc5.gif)</td> <td style="padding:0px">![5](images/Disc5.gif)</td>
<td style="padding:0px">![1](images/Disc1.gif)</td> <td style="padding:0px">![1](images/Disc1.gif)</td>
<td style="padding:0px">![2](images/Disc2.gif)</td> <td style="padding:0px">![2](images/Disc2.gif)</td>
</tr> </tr>
</tbody></table> </tbody></table>
<Animation function visualisation> <Animation function visualisation>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
The image padding preference is respected. The image padding preference is respected.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:pref TK_CUSTOM_STATE_VIEW_PADDING=8 :pref TK_CUSTOM_STATE_VIEW_PADDING=8
``` ```
%% Output %% Output
Preference changed: TK_CUSTOM_STATE_VIEW_PADDING = 8 Preference changed: TK_CUSTOM_STATE_VIEW_PADDING = 8
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
<table style="font-family:monospace"><tbody> <table style="font-family:monospace"><tbody>
<tr> <tr>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:8px">![3](images/Disc3.gif)</td> <td style="padding:8px">![3](images/Disc3.gif)</td>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:8px">![4](images/Disc4.gif)</td> <td style="padding:8px">![4](images/Disc4.gif)</td>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
<td style="padding:8px">![0](images/Disc_empty.gif)</td> <td style="padding:8px">![0](images/Disc_empty.gif)</td>
</tr> </tr>
<tr> <tr>
<td style="padding:8px">![5](images/Disc5.gif)</td> <td style="padding:8px">![5](images/Disc5.gif)</td>
<td style="padding:8px">![1](images/Disc1.gif)</td> <td style="padding:8px">![1](images/Disc1.gif)</td>
<td style="padding:8px">![2](images/Disc2.gif)</td> <td style="padding:8px">![2](images/Disc2.gif)</td>
</tr> </tr>
</tbody></table> </tbody></table>
<Animation function visualisation> <Animation function visualisation>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Text labels are supported. Text labels are supported.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:load CrosswordPuzzle.mch :load CrosswordPuzzle.mch
``` ```
%% Output %% Output
Loaded machine: CrosswordPuzzle Loaded machine: CrosswordPuzzle
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:constants :constants
``` ```
%% Output %% Output
Machine constants set up using operation 0: $setup_constants() Machine constants set up using operation 0: $setup_constants()
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:init :init
``` ```
%% Output %% Output
Machine initialised using operation 1: $initialise_machine() Machine initialised using operation 1: $initialise_machine()
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
<table style="font-family:monospace"><tbody> <table style="font-family:monospace"><tbody>
<tr> <tr>
<td style="padding:10px">S</td> <td style="padding:10px">S</td>
<td style="padding:10px">T</td> <td style="padding:10px">T</td>
<td style="padding:10px">E</td> <td style="padding:10px">E</td>
<td style="padding:10px">E</td> <td style="padding:10px">E</td>
<td style="padding:10px">R</td> <td style="padding:10px">R</td>
</tr> </tr>
<tr> <tr>
<td style="padding:10px">-</td> <td style="padding:10px">-</td>
<td style="padding:10px">-</td> <td style="padding:10px">-</td>
<td style="padding:10px">A</td> <td style="padding:10px">A</td>
<td style="padding:10px">-</td> <td style="padding:10px">-</td>
<td style="padding:10px">U</td> <td style="padding:10px">U</td>
</tr> </tr>
<tr> <tr>
<td style="padding:10px">-</td> <td style="padding:10px">-</td>
<td style="padding:10px">I</td> <td style="padding:10px">I</td>
<td style="padding:10px">R</td> <td style="padding:10px">R</td>
<td style="padding:10px">O</td> <td style="padding:10px">O</td>
<td style="padding:10px">N</td> <td style="padding:10px">N</td>
</tr> </tr>
<tr> <tr>
<td style="padding:10px">-</td> <td style="padding:10px">-</td>
<td style="padding:10px">-</td> <td style="padding:10px">-</td>
<td style="padding:10px">N</td> <td style="padding:10px">N</td>
<td style="padding:10px">O</td> <td style="padding:10px">O</td>
<td style="padding:10px">-</td> <td style="padding:10px">-</td>
</tr> </tr>
</tbody></table> </tbody></table>
<Animation function visualisation> <Animation function visualisation>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
The text padding preference is respected. The text padding preference is respected.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:pref TK_CUSTOM_STATE_VIEW_STRING_PADDING=2 :pref TK_CUSTOM_STATE_VIEW_STRING_PADDING=2
``` ```
%% Output %% Output
Preference changed: TK_CUSTOM_STATE_VIEW_STRING_PADDING = 2 Preference changed: TK_CUSTOM_STATE_VIEW_STRING_PADDING = 2
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
<table style="font-family:monospace"><tbody> <table style="font-family:monospace"><tbody>
<tr> <tr>
<td style="padding:2px">S</td> <td style="padding:2px">S</td>
<td style="padding:2px">T</td> <td style="padding:2px">T</td>
<td style="padding:2px">E</td> <td style="padding:2px">E</td>
<td style="padding:2px">E</td> <td style="padding:2px">E</td>
<td style="padding:2px">R</td> <td style="padding:2px">R</td>
</tr> </tr>
<tr> <tr>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">A</td> <td style="padding:2px">A</td>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">U</td> <td style="padding:2px">U</td>
</tr> </tr>
<tr> <tr>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">I</td> <td style="padding:2px">I</td>
<td style="padding:2px">R</td> <td style="padding:2px">R</td>
<td style="padding:2px">O</td> <td style="padding:2px">O</td>
<td style="padding:2px">N</td> <td style="padding:2px">N</td>
</tr> </tr>
<tr> <tr>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">N</td> <td style="padding:2px">N</td>
<td style="padding:2px">O</td> <td style="padding:2px">O</td>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
</tr> </tr>
</tbody></table> </tbody></table>
<Animation function visualisation> <Animation function visualisation>
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
The font name and size preferences are supported. The font name and size preferences are supported.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:pref TK_CUSTOM_STATE_VIEW_FONT_NAME=Arial TK_CUSTOM_STATE_VIEW_FONT_SIZE=18 :pref TK_CUSTOM_STATE_VIEW_FONT_NAME=Arial TK_CUSTOM_STATE_VIEW_FONT_SIZE=18
``` ```
%% Output %% Output
Preference changed: TK_CUSTOM_STATE_VIEW_FONT_SIZE = 18 Preference changed: TK_CUSTOM_STATE_VIEW_FONT_SIZE = 18
Preference changed: TK_CUSTOM_STATE_VIEW_FONT_NAME = Arial Preference changed: TK_CUSTOM_STATE_VIEW_FONT_NAME = Arial
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` prob ``` prob
:show :show
``` ```
%% Output %% Output
<table style="font-family:"Arial" monospace;font-size:18px"><tbody> <table style="font-family:"Arial" monospace;font-size:18px"><tbody>
<tr> <tr>
<td style="padding:2px">S</td> <td style="padding:2px">S</td>
<td style="padding:2px">T</td> <td style="padding:2px">T</td>
<td style="padding:2px">E</td> <td style="padding:2px">E</td>
<td style="padding:2px">E</td> <td style="padding:2px">E</td>
<td style="padding:2px">R</td> <td style="padding:2px">R</td>
</tr> </tr>
<tr> <tr>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">A</td> <td style="padding:2px">A</td>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">U</td> <td style="padding:2px">U</td>
</tr> </tr>
<tr> <tr>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">I</td> <td style="padding:2px">I</td>
<td style="padding:2px">R</td> <td style="padding:2px">R</td>
<td style="padding:2px">O</td> <td style="padding:2px">O</td>
<td style="padding:2px">N</td> <td style="padding:2px">N</td>
</tr> </tr>
<tr> <tr>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
<td style="padding:2px">N</td> <td style="padding:2px">N</td>
<td style="padding:2px">O</td> <td style="padding:2px">O</td>
<td style="padding:2px">-</td> <td style="padding:2px">-</td>
</tr> </tr>
</tbody></table> </tbody></table>
<Animation function visualisation> <Animation function visualisation>
%% Cell type:markdown id: tags:
Empty cells are supported.
%% Cell type:code id: tags:
``` prob
:load AnimationFunctionTestProB2.mch
```
%% Output
Loaded machine: AnimationFunctionTestProB2
%% Cell type:code id: tags:
``` prob
:constants
```
%% Output
Machine constants set up using operation 0: $setup_constants()
%% Cell type:code id: tags:
``` prob
:init
```
%% Output
Machine initialised using operation 1: $initialise_machine()
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<tr>
<td style="padding:10px">Overview</td>
<td style="padding:0px"></td>
<td style="padding:0px"></td>
</tr>
<tr>
<td style="padding:0px"></td>
<td style="padding:0px">![0](images/small_empty_w.gif)</td>
<td style="padding:0px">![1](images/small_wqueen_w.gif)</td>
</tr>
<tr>
<td style="padding:0px"></td>
<td style="padding:0px">![1](images/small_wqueen_w.gif)</td>
<td style="padding:0px">![0](images/small_empty_w.gif)</td>
</tr>
</tbody></table>
<Animation function visualisation>
......
...@@ -99,7 +99,10 @@ public final class ShowCommand implements Command { ...@@ -99,7 +99,10 @@ public final class ShowCommand implements Command {
for (final Object entry : row) { for (final Object entry : row) {
final int padding; final int padding;
final String contents; final String contents;
if (entry instanceof Integer) { if (entry == null) {
padding = 0;
contents = "";
} else if (entry instanceof Integer) {
padding = imagePadding; padding = imagePadding;
contents = String.format("![%d](%s)", entry, images.get(entry)); contents = String.format("![%d](%s)", entry, images.get(entry));
} else if (entry instanceof String) { } else if (entry instanceof String) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment