Solve triangle solitaire puzzle: Difference between revisions
Algol 68 - tweak and add count of backtracks for starting at each position
(Added Algol 68) |
(Algol 68 - tweak and add count of backtracks for starting at each position) |
||
Line 220:
MODE MOVE = STRUCT( INT from, to );
INT number of pegs = 15;
INT empty start := 1;
[ number of pegs ]BOOL board;
Line 278:
[ number of pegs ]CHAR pegs;
FOR i TO number of pegs DO
pegs[ i ] := IF board[ i ] THEN TOHEX i ELSE "
OD;
println( " " + pegs[ 1 ] );
Line 287:
END; # draw board #
PROC solved = BOOL: s size = number of pegs - 2;
PROC solve = VOID:
Line 324 ⟶ 317:
FI; # solve #
FOR start peg TO number of pegs DO
empty start := start peg;
init board;
solve;
FI;
SOLUTION solution = solutions[ pos ];
split solution( peg, over, land, solution );
board[ peg ] := FALSE;
board[ over ] := FALSE;
board[ land ] := TRUE;
draw board;
print( ( "Peg ", TOHEX peg, " jumped over ", TOHEX over, " to land on ", TOHEX land ) );
print( ( newline, newline ) )
OD
FI;
print( ( whole( backtracks, -8 ), " backtracks were required", newline ) )
OD
END
</syntaxhighlight>
{{out}}
<pre style="height:80ex;overflow:scroll">
.
2 3
4 5 6
Line 355 ⟶ 356:
1
7 8 9 A
B C D E F
Line 362 ⟶ 363:
1
4 . .
7 8 9 A
B C D E F
Peg 6 jumped over 5 to land on 4
.
. .
4
7 8 9 A
B C D E F
Peg 1 jumped over 3 to land on 6
.
2 .
.
B C D E F
Peg 7 jumped over 4 to land on 2
.
2 .
.
B
Peg C jumped over 8 to land on 5
.
2 .
.
B C .
Peg E jumped over D to land on C
.
2 .
. .
B C D
Peg 6 jumped over 9 to land on D
.
. .
. . .
.
B C D
Peg 2 jumped over 5 to land on 9
.
. .
. . .
.
B .
Peg C jumped over D to land on E
.
. .
.
. . 9
B . . E
Peg F jumped over A to land on 6
.
. .
. . .
. . . .
B
Peg 6 jumped over 9 to land on D
.
. .
. . .
. . . .
B C . . .
Peg E jumped over D to land on C
.
. .
. . .
. . . .
. . D .
Peg B jumped over C to land on D
814 backtracks were required
Starting with peg 2 removed 22221 backtracks were required
Starting with peg 3 removed 12274 backtracks were required
Starting with peg 4 removed 15782 backtracks were required
Starting with peg 5 removed 1948 backtracks were required
Starting with peg 6 removed 71565 backtracks were required
Starting with peg 7 removed 814 backtracks were required
Starting with peg 8 removed 98940 backtracks were required
Starting with peg 9 removed 5747 backtracks were required
Starting with peg A removed 814 backtracks were required
Starting with peg B removed 22221 backtracks were required
Starting with peg C removed 19097 backtracks were required
Starting with peg D removed 814 backtracks were required
Starting with peg E removed 18563 backtracks were required
Starting with peg F removed 10240 backtracks were required
</pre>
|