Skip to content

Instantly share code, notes, and snippets.

@Stingby12
Created July 8, 2024 11:04
Show Gist options
  • Save Stingby12/c3444e495893c9c97b06fc05bd45fa2b to your computer and use it in GitHub Desktop.
Save Stingby12/c3444e495893c9c97b06fc05bd45fa2b to your computer and use it in GitHub Desktop.
Exchanging the Kings (Puzzlescript Plus Script)
Play this game by pasting the script in https://auroriax.github.io/PuzzleScript/editor.html
title Exchanging the Kings
author Stingby12
homepage www.puzzlescript.net
run_rules_on_level_start
text_color #0ff
sprite_size 15
========
OBJECTS
========
Background
gray
Tile0
#999 #888
000000000000000
011111111111110
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
011111111111110
000000000000000
Tile1
#777 #666
000000000000000
011111111111110
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
010000000000010
011111111111110
000000000000000
TargetWX
transparent
TargetBX
transparent
TargetW0
#DDD #CCC
000000000000000
011111111111110
011111111111110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011111111111110
011111111111110
000000000000000
TargetW1
#BBB #AAA
000000000000000
011111111111110
011111111111110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011111111111110
011111111111110
000000000000000
TargetB0
#555 #444
000000000000000
011111111111110
011111111111110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011111111111110
011111111111110
000000000000000
TargetB1
#777 #666
000000000000000
011111111111110
011111111111110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011000000000110
011111111111110
011111111111110
000000000000000
Wall
#022 #dff
111111111111111
100000000000001
100000000000001
100010000010001
100111111111001
100010010010001
100010000010001
100011000110001
100010000010001
100010010010001
100111111111001
100010000010001
100000000000001
100000000000001
111111111111111
Void
#000
VoidU
#077
000000000000000
00....000....00
0......0......0
.......0.......
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
VoidD
#077
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
.......0.......
0......0......0
00....000....00
000000000000000
VoidL
#077
000............
00.............
0..............
0..............
0..............
0..............
00.............
0000...........
00.............
0..............
0..............
0..............
0..............
00.............
000............
VoidR
#077
............000
.............00
..............0
..............0
..............0
..............0
.............00
...........0000
.............00
..............0
..............0
..............0
..............0
.............00
............000
VoidUL
#077
0000...........
000............
00.............
0..............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
VoidUR
#077
...........0000
............000
.............00
..............0
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
VoidDL
#077
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
0..............
00.............
000............
0000...........
VoidDR
#077
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
...............
..............0
.............00
............000
...........0000
Player
#0ff
...............
.00000...00000.
.0...........0.
.0...........0.
.0.....0.....0.
.0.....0.....0.
.......0.......
....0000000....
.......0.......
.0.....0.....0.
.0.....0.....0.
.0...........0.
.0...........0.
.00000...00000.
...............
RookW
#fff #066 #ccc #aaa
...............
..11.1.1.1.11..
..10101010101..
..10000000001..
..12222222221..
..10000000001..
...122222221...
....1333331....
....1333331....
....1333331....
...122222221...
..10000000001..
.1222222222221.
.1000000000001.
.1111111111111.
RookB copy:RookW
#666 #044 #333 #111
BishopW
#fff #066 #ccc #aaa #066
.......1.......
.....11011.....
....1000001....
...100040001...
...100444001...
...104404401...
...100000001...
....1000001....
....1333331....
....1333331....
...100000001...
..12222222221..
..10000000001..
..10000000001..
..11111111111..
BishopB copy:BishopW
#666 #044 #333 #111 #044
KnightW
#fff #066 #ccc #aaa
...............
......11.......
.....10011.....
....1000001....
...100001001...
...1000000001..
...1000011001..
...100000111...
....1000001....
....1222221....
.....13331.....
....1222221....
...100000001...
..10000000001..
..11111111111..
KnightB
#666 #044 #333 #111
...............
.......11......
.....11001.....
....1000001....
...100100001...
..1000000001...
..1001100001...
...111000001...
....1000001....
....1222221....
.....13331.....
....1222221....
...100000001...
..10000000001..
..11111111111..
KingW
#fff #066 #ccc #aaa
....1002001....
...100000001...
....1333331....
....1222221....
....1000001....
....1000001....
....1000001....
...100000001...
...100000001...
...100000001...
...122222221...
..10000000001..
..10000000001..
..10000000001..
..11111111111..
KingWX
#fff #066 #ccc #aaa
...............
...............
...............
...............
...............
...............
...............
...............
.......1.......
......101......
.....10001.....
....1110111....
...100020001...
...100222001...
...100222001...
KingB copy:KingW
#666 #044 #333 #111
KingBX copy:KingWX
#666 #044 #333 #111
MoveCheck
#0F0
...............
...............
...............
...............
...............
...............
......000......
......000......
......000......
...............
...............
...............
...............
...............
...............
TurnW
transparent
TurnB
transparent
RookWtp copy:RookW
#fff #333 #ccc #aaa
BishopWtp copy:BishopW
#fff #333 #ccc #aaa #aaa
KnightWtp copy:KnightW
#fff #333 #ccc #aaa
KingWtp copy:KingW
#fff #333 #ccc #aaa
KingWtpX copy:KingWX
#fff #333 #ccc #aaa
RookBtp copy:RookW
#666 #000 #333 #111
BishopBtp copy:BishopW
#666 #000 #333 #111 #111
KnightBtp copy:KnightB
#666 #000 #333 #111
KingBtp copy:KingW
#666 #000 #333 #111
KingBtpX copy:KingWX
#666 #000 #333 #111
BishopX
transparent
KnightXH1
transparent
KnightXH2
transparent
KnightXV1
transparent
KnightXV2
transparent
KingX1
transparent
KingX2
transparent
KingX3
transparent
=======
LEGEND
=======
. = Background
# = Wall
% = Void
! = Void and TurnW
@ = Player
R = RookW and TargetWX
B = BishopW and TargetWX
K = KnightW and TargetWX
I = KingW and TargetBX
O = RookB and TargetBX
P = BishopB and TargetBX
T = KnightB and TargetBX
G = KingB and TargetWX
PieceW = RookW or BishopW or KnightW or KingW
PieceB = RookB or BishopB or KnightB or KingB
Pieces = PieceW or PieceB
PiecesTP = RookWtp or BishopWtp or KnightWtp or KingWtp or RookBtp or BishopBtp or KnightBtp or KingBtp
Tile = Tile0 or Tile1
TargetW = TargetW0 or TargetW1
TargetB = TargetB0 or TargetB1
KingX = KingX1 or KingX2 or KingX3
Temp = BishopX or KnightXH1 or KnightXH2 or KnightXV1 or KnightXV2 or KingX
Block = Wall or Pieces or PiecesTP or Void
=======
SOUNDS
=======
startgame 9727100947007300
sfx0 82034306
sfx1 57409304
sfx2 80803102
endlevel 97277300
================
COLLISIONLAYERS
================
Background
Tile, TargetW, TargetB
TurnW, TurnB
Wall, Void
Pieces, PiecesTP
MoveCheck
BishopX
KnightXH1
KnightXH2
KnightXV1
KnightXV2
KingX1
KingX2
KingX3
VoidU
VoidD
VoidL
VoidR
VoidUL
VoidUR
VoidDL
VoidDR
KingWX, KingWtpX
KingBX, KingBtpX
TargetWX
TargetBX
Player
======
RULES
======
[ Player no Tile no TargetW no TargetB ] -> [ Player Tile0 ]
+ [ Tile0 | no Tile ] -> [ Tile0 | Tile1 ]
+ [ Tile1 | no Tile ] -> [ Tile1 | Tile0 ]
[ TargetWX Tile0 ] -> [ TargetWX TargetW0 ]
[ TargetWX Tile1 ] -> [ TargetWX TargetW1 ]
[ TargetBX Tile0 ] -> [ TargetBX TargetB0 ]
[ TargetBX Tile1 ] -> [ TargetBX TargetB1 ]
up [ Void | no Void ] -> [ Void VoidU | ]
down [ Void | no Void ] -> [ Void VoidD | ]
left [ Void | no Void ] -> [ Void VoidL | ]
right [ Void | no Void ] -> [ Void VoidR | ]
up [ Void no VoidL | VoidL ] -> [ Void VoidUL | VoidL ]
up [ Void no VoidR | VoidR ] -> [ Void VoidUR | VoidR ]
down [ Void no VoidL | VoidL ] -> [ Void VoidDL | VoidL ]
down [ Void no VoidR | VoidR ] -> [ Void VoidDR | VoidR ]
late [ RookWtp ] -> [ RookW ]
late [ BishopWtp ] -> [ BishopW ]
late [ KnightWtp ] ->[ KnightW ]
late [ KingWtp ] -> [ KingW ]
late [ RookBtp ] -> [ RookB ]
late [ BishopBtp ] -> [ BishopB ]
late [ KnightBtp ] -> [ KnightB ]
late [ KingBtp ] -> [ KingB ]
[ KingWX ] -> [ ]
[ KingBX ] -> [ ]
[ KingWtpX ] -> [ ]
[ KingBtpX ] -> [ ]
late up [ KingW | ] -> [ KingW | KingWX ]
late up [ KingB | ] -> [ KingB | KingBX ]
late [ Temp ] -> [ ]
late [ MoveCheck ] -> [ ]
late [ TurnW ] [ RookB ] -> [ TurnW ] [ RookBtp ]
late [ TurnW ] [ BishopB ] -> [ TurnW ] [ BishopBtp ]
late [ TurnW ] [ KnightB ] -> [ TurnW ] [ KnightBtp ]
late [ TurnW ] [ KingB ] -> [ TurnW ] [ KingBtp ]
late [ TurnW ] [ KingBX ] -> [ TurnW ] [ KingBtpX ]
late [ TurnB ] [ RookW ] -> [ TurnB ] [ RookWtp ]
late [ TurnB ] [ BishopW ] -> [ TurnB ] [ BishopWtp ]
late [ TurnB ] [ KnightW ] -> [ TurnB ] [ KnightWtp ]
late [ TurnB ] [ KingW ] -> [ TurnB ] [ KingWtp ]
late [ TurnB ] [ KingWX ] -> [ TurnB ] [ KingWtpX ]
late [ Player RookW | no Block ] -> [ Player RookW | MoveCheck ]
late [ Player RookB | no Block ] -> [ Player RookB | MoveCheck ]
late vertical [ Player BishopW | ] -> [ Player BishopW | BishopX ]
late vertical [ Player BishopB | ] -> [ Player BishopB | BishopX ]
late horizontal [ BishopX | no Block ] -> [ BishopX | MoveCheck ]
late vertical [ Player KnightW | ] -> [ Player KnightW | KnightXV1 ]
late vertical [ Player KnightB | ] -> [ Player KnightB | KnightXV1 ]
late vertical [ KnightXV1 | no Player ] -> [ KnightXV1 | KnightXV2 ]
late horizontal [ KnightXV2 | no Block ] -> [ KnightXV2 | MoveCheck ]
late horizontal [ Player KnightW | ] -> [ Player KnightW | KnightXH1 ]
late horizontal [ Player KnightB | ] -> [ Player KnightB | KnightXH1 ]
late horizontal [ KnightXH1 | no Player ] -> [ KnightXH1 | KnightXH2 ]
late vertical [ KnightXH2 | no Block ] -> [ KnightXH2 | MoveCheck ]
late vertical [ Player KingW | ] -> [ Player KingW | KingX1 ]
late vertical [ Player KingB | ] -> [ Player KingB | KingX1 ]
late horizontal [ Player KingW | ] -> [ Player KingW | KingX2 ]
late horizontal [ Player KingB | ] -> [ Player KingB | KingX2 ]
late horizontal [ KingX1 | ] -> [ KingX1 | KingX3 ]
late [ KingX no Block ] -> [ KingX MoveCheck ]
[ action Player RookW ] [ MoveCheck ] [ TurnW ] -> [ Player ] [ RookW ] [ TurnB ] sfx0
[ action Player BishopW ] [ MoveCheck ] [ TurnW ] -> [ Player ] [ BishopW ] [ TurnB ] sfx0
[ action Player KnightW ] [ MoveCheck ] [ TurnW ] -> [ Player ] [ KnightW ] [ TurnB ] sfx0
[ action Player KingW ] [ MoveCheck ] [ TurnW ] -> [ Player ] [ KingW ] [ TurnB ] sfx0
[ action Player RookB ] [ MoveCheck ] [ TurnB ] -> [ Player ] [ RookB ] [ TurnW ] sfx0
[ action Player BishopB ] [ MoveCheck ] [ TurnB ] -> [ Player ] [ BishopB ] [ TurnW ] sfx0
[ action Player KnightB ] [ MoveCheck ] [ TurnB ] -> [ Player ] [ KnightB ] [ TurnW ] sfx0
[ action Player KingB ] [ MoveCheck ] [ TurnB ] -> [ Player ] [ KingB ] [ TurnW ] sfx0
[ action Player Pieces ] -> sfx1
[ action Player PiecesTP ] -> sfx2
[ > Player ] -> [ > Player ] nosave
==============
WINCONDITIONS
==============
all PieceW on TargetWX
all PieceB on TargetBX
=======
LEVELS
=======
message Two kingdoms has been in war for ages, with no sign of a conclusion.
message So their king decided to make a thruce and end their endless battle.
message Just like in their battle, White take the first move. They then let Black plan their next move.
%%%!%%%
%bk#tp%
%#g@i#%
%kr#ot%
%%%%%%%
message The two kingdoms finally settled their differences.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment