From d59f21776b46d933d8c0b9ace9a06fc400a89d04 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Fri, 7 Mar 2025 16:17:03 +0200 Subject: [PATCH] examples: use textures in the sokoban game, instead of colors --- examples/sokoban/box.png | Bin 0 -> 3618 bytes examples/sokoban/box_on_storage.png | Bin 0 -> 4113 bytes examples/sokoban/floor.png | Bin 0 -> 3220 bytes examples/sokoban/other.png | Bin 0 -> 3703 bytes examples/sokoban/player.png | Bin 0 -> 5836 bytes examples/sokoban/sokoban.v | 49 +++++++++++++++++++--------- examples/sokoban/storage.png | Bin 0 -> 5163 bytes examples/sokoban/wall.png | Bin 0 -> 3239 bytes 8 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 examples/sokoban/box.png create mode 100644 examples/sokoban/box_on_storage.png create mode 100644 examples/sokoban/floor.png create mode 100644 examples/sokoban/other.png create mode 100644 examples/sokoban/player.png create mode 100644 examples/sokoban/storage.png create mode 100644 examples/sokoban/wall.png diff --git a/examples/sokoban/box.png b/examples/sokoban/box.png new file mode 100644 index 0000000000000000000000000000000000000000..3873daa552893501b3d3133cffa744d7c08defdf GIT binary patch literal 3618 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 literal 0 HcmV?d00001 diff --git a/examples/sokoban/box_on_storage.png b/examples/sokoban/box_on_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..13f957b2209709a9b831c6c150463287ba550c31 GIT binary patch literal 4113 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 P00000NkvXXu0mjfkz=Pl literal 0 HcmV?d00001 diff --git a/examples/sokoban/floor.png b/examples/sokoban/floor.png new file mode 100644 index 0000000000000000000000000000000000000000..4e9c70084d7b021ec8bb2ac5957b0216c433b20d GIT binary patch literal 3220 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 literal 0 HcmV?d00001 diff --git a/examples/sokoban/player.png b/examples/sokoban/player.png new file mode 100644 index 0000000000000000000000000000000000000000..104d5be31f4a4d5e2c8db5fcc71e0d11bb51d137 GIT binary patch literal 5836 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 Z_-|q_n7()J!$AN5002ovPDHLkV1fvQZ-@W@ literal 0 HcmV?d00001