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
No related branches found
No related tags found
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:
``` prob
:help :show
```
%% Output
```
:show
```
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.
```
:show
```
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.
%% Cell type:code id: tags:
``` prob
:load Hanoi.mch
```
%% Output
Loaded machine: Hanoi
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
:show: Machine is not initialised, cannot show animation function visualisation
%% Cell type:code id: tags:
``` prob
:constants
```
%% Output
Machine constants set up using operation 0: $setup_constants()
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
:show: Machine is not initialised, cannot show animation function visualisation
%% 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: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>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:code id: tags:
``` prob
:exec Move
```
%% Output
Executed operation 2: Move(orig,dest,1)
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<td style="padding:0px">![5](images/Disc5.gif)</td>
<td style="padding:0px">![1](images/Disc1.gif)</td>
<td style="padding:0px">![0](images/Disc_empty.gif)</td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:code id: tags:
``` prob
:exec Move
```
%% Output
Executed operation 4: Move(orig,Stakes3,2)
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<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>
</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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<td style="padding:0px">![5](images/Disc5.gif)</td>
<td style="padding:0px">![1](images/Disc1.gif)</td>
<td style="padding:0px">![2](images/Disc2.gif)</td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:markdown id: tags:
The image padding preference is respected.
%% Cell type:code id: tags:
``` prob
:pref TK_CUSTOM_STATE_VIEW_PADDING=8
```
%% Output
Preference changed: TK_CUSTOM_STATE_VIEW_PADDING = 8
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<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>
</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>
</tr>
<tr>
<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>
</tr>
<tr>
<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>
</tr>
<tr>
<td style="padding:8px">![5](images/Disc5.gif)</td>
<td style="padding:8px">![1](images/Disc1.gif)</td>
<td style="padding:8px">![2](images/Disc2.gif)</td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:markdown id: tags:
Text labels are supported.
%% Cell type:code id: tags:
``` prob
:load CrosswordPuzzle.mch
```
%% Output
Loaded machine: CrosswordPuzzle
%% 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">S</td>
<td style="padding:10px">T</td>
<td style="padding:10px">E</td>
<td style="padding:10px">E</td>
<td style="padding:10px">R</td>
</tr>
<tr>
<td style="padding:10px">-</td>
<td style="padding:10px">-</td>
<td style="padding:10px">A</td>
<td style="padding:10px">-</td>
<td style="padding:10px">U</td>
</tr>
<tr>
<td style="padding:10px">-</td>
<td style="padding:10px">I</td>
<td style="padding:10px">R</td>
<td style="padding:10px">O</td>
<td style="padding:10px">N</td>
</tr>
<tr>
<td style="padding:10px">-</td>
<td style="padding:10px">-</td>
<td style="padding:10px">N</td>
<td style="padding:10px">O</td>
<td style="padding:10px">-</td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:markdown id: tags:
The text padding preference is respected.
%% Cell type:code id: tags:
``` prob
:pref TK_CUSTOM_STATE_VIEW_STRING_PADDING=2
```
%% Output
Preference changed: TK_CUSTOM_STATE_VIEW_STRING_PADDING = 2
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:monospace"><tbody>
<tr>
<td style="padding:2px">S</td>
<td style="padding:2px">T</td>
<td style="padding:2px">E</td>
<td style="padding:2px">E</td>
<td style="padding:2px">R</td>
</tr>
<tr>
<td style="padding:2px">-</td>
<td style="padding:2px">-</td>
<td style="padding:2px">A</td>
<td style="padding:2px">-</td>
<td style="padding:2px">U</td>
</tr>
<tr>
<td style="padding:2px">-</td>
<td style="padding:2px">I</td>
<td style="padding:2px">R</td>
<td style="padding:2px">O</td>
<td style="padding:2px">N</td>
</tr>
<tr>
<td style="padding:2px">-</td>
<td style="padding:2px">-</td>
<td style="padding:2px">N</td>
<td style="padding:2px">O</td>
<td style="padding:2px">-</td>
</tr>
</tbody></table>
<Animation function visualisation>
%% Cell type:markdown id: tags:
The font name and size preferences are supported.
%% Cell type:code id: tags:
``` prob
:pref TK_CUSTOM_STATE_VIEW_FONT_NAME=Arial TK_CUSTOM_STATE_VIEW_FONT_SIZE=18
```
%% Output
Preference changed: TK_CUSTOM_STATE_VIEW_FONT_SIZE = 18
Preference changed: TK_CUSTOM_STATE_VIEW_FONT_NAME = Arial
%% Cell type:code id: tags:
``` prob
:show
```
%% Output
<table style="font-family:"Arial" monospace;font-size:18px"><tbody>
<tr>
<td style="padding:2px">S</td>
<td style="padding:2px">T</td>
<td style="padding:2px">E</td>
<td style="padding:2px">E</td>
<td style="padding:2px">R</td>
</tr>
<tr>
<td style="padding:2px">-</td>
<td style="padding:2px">-</td>
<td style="padding:2px">A</td>
<td style="padding:2px">-</td>
<td style="padding:2px">U</td>
</tr>
<tr>
<td style="padding:2px">-</td>
<td style="padding:2px">I</td>
<td style="padding:2px">R</td>
<td style="padding:2px">O</td>
<td style="padding:2px">N</td>
</tr>
<tr>
<td style="padding:2px">-</td>
<td style="padding:2px">-</td>
<td style="padding:2px">N</td>
<td style="padding:2px">O</td>
<td style="padding:2px">-</td>
</tr>
</tbody></table>
<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 {
for (final Object entry : row) {
final int padding;
final String contents;
if (entry instanceof Integer) {
if (entry == null) {
padding = 0;
contents = "";
} else if (entry instanceof Integer) {
padding = imagePadding;
contents = String.format("![%d](%s)", entry, images.get(entry));
} 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