Skip to content

A collection of retro classic 2D slider puzzles for Windows, OSX & most Linux distros. Includes Traffic-Rush, Klotski & Get-My-Goat; written in C++

License

Notifications You must be signed in to change notification settings

fastrgv/RufasSlider

Repository files navigation

screenshot

Click on the large tar.gz file under releases to download all source & binaries (both Mac & Linux), or use this link:

https://github.com/fastrgv/RufasSlider/releases/download/v3.3.5/rsl22oct23.7z

Type "7z x filename.7z" to extract the archive.

  • On OSX, Keka works well for 7Z files. The command-line for Keka is:
    • /Applications/Keka.app/Contents/MacOS/Keka --cli 7z x (filename.7z)

GitHub downloaders Note: Please ignore the "Source code" zip & tar.gz files. (They are auto-generated by GitHub). Click on the large 7z file under releases to download all source & binaries (Windows & Linux). Then, type "7z x filename" to extract the archive.

RufasSlider

What's new:

ver 3.3.5 -- 22oct23

  • Restored OSX build...but without a Mac-bundle.
  • Moved scripts into ./build/ directory, for a clean root directory.
  • Now iconify nexus window between puzzles.

ver 3.3.4 -- 25sep23

  • Updated the linux build process to enhance portability.
  • Reduced annoying key-delay in Flat7.
  • Traffic Rush has a new sound.
  • Added 5 more Annoying Sliders that are seriously difficult.

See full revision history at end of this file


RufasSlider Introduction

RufaSlider is a collection of 16 different block slider puzzles for kids and casual puzzlers that works on laptops and PCs running Windows, OSX, or most Linux distros.

It includes a Klotski-style family, a DirtyDozen family, and a Traffic-Rush family. And now these puzzle families come with AutoSolvers to help you.

The Klotski family uses rectangles of 4 sizes: 1x1, 2x2, 1x2, 2x1. The objective in each game is stated near the window top, but usually involves moving a large block to a specified location within the window.

The DirtyDozen family is similar except there are L-shaped puzzle pieces.

The Traffic-Rush family uses cars or trucks that can only move [roll] lengthwise...the goal being to move the red car toward the shaded "exit door".

The game description files are simple text files that allow users to define additional puzzles.

Several other classic block slider games are included: Fifteen, Eight, Nine, Panama, MaBoy, GetMyGoat, 2-versions of HoleInOne, Suits, and 2-versions of LinkRings.

To move a block, use the arrow keys. If the automatic block selector chooses the wrong block, simply click the cursor on the desired block before using the arrow key. Thusly, the games are laptop friendly.

Rush & maboy allow mouse drags to initiate the moves.

Finally, there are autosolvers embedded into the TrafficRush, Klotski, DirtyDozen, LinkRings, Maboy Flat7, FlatAZ and Annoy games to be used interactively, using the (=)-key. This provides an amazing tool to learn to solve seemingly hopeless problems.

AutoSolvers Note

The slowest of the bunch is in FlatAZ, which can take up to 10 seconds to solve a level 5 shuffle. When it has finished, it will countdown the remaining steps toward a solution as you continue to press the "="-key


Features

  • Works on PCs or laptops running Windows, OSX, or GNU/Linux. And if GNAT is installed you can build it yourself! But first try the delivered, prebuilt binaries.

  • Windows, OSX, & GNU/Linux binaries provided, as well as full source.

  • Laptop friendly controls; can support HiDpi displays.

  • Uses SDL2 or GLFW.

  • Uses OpenAL-audio for sound.

  • all runtime files are in ./data/

  • all game data files are in ./puzzles/

  • no installation

  • no dependencies

  • simply unzip in your Downloads directory, and run;

  • or unzip onto a USB flash drive [w/same file format] and run.


Setup and Running:

Mac/OSX users see "osx-setup.txt". Windows users see "windows-setup.txt".

Unzip the archive.

  • On Linux & Windows, 7z [www.7-zip.org] works well for this. The proper command to extract the archive and maintain the directory structure is "7z x filename".

  • On OSX, Keka works well for 7Z files. The command-line for Keka is:

    • /Applications/Keka.app/Contents/MacOS/Keka --cli 7z x (filename.7z)

Open a command line terminal, then cd to the install directory.


Mac users type "macslid.sh". Another option is to cd ./bin/osx/, then type any individual puzzle name, eg: annoy


Windows users type "winslid.bat" to begin puzzling. You may also cd ./bin/w64/, and then type any individual puzzle name, eg: rush.exe.


Linux users should type "gnuslid.sh" to access any game. You may also cd ./bin/gnu/, and then type any individual puzzle name, eg: rush.

Also, if you have wine installed on your linux system, you can run the windows EXE thusly:

* cd bin/w64/
* wine rush.exe OR
* wine rufaslid.exe

If an older Linux system complains that /dev/dsp/ cannot be opened, prepend the "padsp" command: "padsp ".


Advice

Most of these apps use SDL2, which is pretty extravagent with system memory. The selection program "rufaslid" uses some system memory too. You can economize by simply running your favorite puzzle directly from the command line, thusly: EG1 (linux) : cd bin/gnu; rush EG2 (Windows) : cd bin\w64; rush.exe EG3 (wine) : cd bin/w64; wine rush.exe EG4 (osx) : cd bin/osx; rush


In many puzzles, a mouse drag can initiate a block move. However, the preferred method to move a block is to select it using a mouse click, then use the arrow keys (up),(dn),(lf),(rt). The block selection is not necessary when only one block can move in the indicated direction. EG FourSuits, eight & fifteen never require block selection since there is only 1 empty space.

At any time, hit the letter (r) to reset/restart, or (esc) to quit.

For Rush, Bslider, Annoying and DirtyDozen, you use the (n) key to go to the next puzzle, which in general is more difficult. The (p) key takes you to the previous puzzle.

Note that I created about 20% of the Rush puzzles (filenames that end "my.rush"), including the most difficult one "zzzz_89my.rush".

And for those times when a solution seems impossible, the more difficult puzzle families have an AutoSolver function using the (=)-key to step closer towards the solution: rush, bslider, dirty12, maboy, annoy, and linkRings. Remember that you can stop using the autosolver at any time and try to manually solve the puzzle from a configuration that is a few steps closer to a solution.

Note that there are two "external" solvers available: 1) fbfsr for traffic rush puzzles (writes to rpath.txt); 2) fbfsl (writes to lpath.txt) for a) MaBoy; b) dirtyDozen; c) bslider puzzles. Simply type the executable name followed by the puzzle file name. For example to solve the second DirtyDozen puzzle type "fbfsl ../../puzzles/dd02.blk". The solution is written to a file in the current directory, in this case, named lpath.txt. Then, to follow the output instructions, start the puzzle and reveal the letters by hitting the (a)-key.

Please send questions, comments, corrections or improvements to

fastrgv@gmail.com

Build Requirements:

  • a recent GNU g++/Ada compiler that supports -std=c++11.
  • graphics card that supports OpenGL version 3.3 or later;

Build Instructions:

Begin by installing GNU g++.


OSX => osxAll.sh


Windows64 => w64all.bat

Windows developers, please also read "gnuOnWindows.txt".


GNU/Linux => gnuAll.sh:

utilizes shared libraries that are delivered in this bundle under ./libs/gnu/. These were used to build the executable, which should run in the presence of ./libs/gnu/, whether or not your system already has those libraries. The runtime loader will prefer system libraries if they are present.

If the delivered linux binary does not run, rebuild all using gnuAll.sh. In case of problems.


what is special about this project?

Uses the C++ programming language and fully modern OpenGL methods, with textures, shaders and uniforms. Achieves [at least] version 3.3 core profile contexts. Compiles and runs on Windows, OSX, & GNU/Linux systems.

Focusing on portability and open source freedom, this project relies on SDL2, a PNG-loader by Lode Vandevenne, and OpenAL-Audio.

future plans

Elliminate SDL2 in favor of GLFW. This has been already done for rufaslid, flat7 & flataz.


Open source developers are welcome to help improve or extend this app. Developer or not, send comments, suggestions or questions to: fastrgv@gmail.com

Legal Mumbo Jumbo:

This app is covered by the GNU GPL v3 as indicated in the sources:

Copyright (C) 2023 fastrgv@gmail.com

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You may read the full text of the GNU General Public License at http://www.gnu.org/licenses/.


Media Files for RufasSlider:

General Note

The particular choice of sound file delivered is not essential to the function of the game and is easily replaced. This software is primarily intended as a tutorial example of modern OpenGL methods. The only requirements are that sounds be in WAV format.

It is my intention to use media with copyrights or licenses that are compatible with GPLv3. Please notify me if you believe there is an incompatibility, and it will be removed ASAP, eg a CC-by-NC license is NOT GPL compatible.

SoundFiles

...are either public domain or are from freesound.org and covered by the Creative Commons CC0 license documented in the accompanying file ./docs/creativeCommonsCC0.txt. See "small-applause.txt" for details and URL.

ImageFiles (x.png)

...for text-textures were created using gimp and are also covered by the GNU GPL v3 license. Thanks to unluckystudio.com [Sujit Kumar Yadav] for car sprites, whose colors I modified slightly with GIMP, and to OpenGameArt.org for the playing card symbols under a cc-by-3.0 license (see http://creativecommons.org/) uploaded there by IronStarMedia.co.uk

LodePNG (png loader module: lodepng.cpp lodepng.h)

are files copyrighted by Lode Vandevenne and so marked with all the details of their permitted uses near the tops of those two files.

Other Credits and Thanks:

Serhiy Grabarchuk and Peter Grabarchuk for their "Hole in One", "Hole in One plus 4", "Nine", and "Four Suits" puzzles.

Nick Baxter, J.H.Conway, Jim Lewis, Bob Henderson, Gil Dogon, Ed Pegg Jr., J.I. Wiley, J.H. Fleming, C. L. Diamond, Sam Loyd, H. E. Dudeney, E. B. Escott, Nob Yoshigahara, James W. Stephens, Neil Bickford, et.al., for the classic sliders.


tags: kids, puzzle, rush-hour, klotski, slider


Download Site for all my games:

https://github.com/fastrgv?tab=repositories https://www.indiedb.com/members/fastrgv/games https://fastrgv.itch.io https://sourceforge.net/u/fastrgv/profile/ https://gamejolt.com/@fastrgv/games

====================================================

Older Revision History

ver 3.3.3 -- 05dec22

  • Added solvers for Flat7 & FlatAZ.
  • Abandoned OSX build (because my 2013 macBookPro finally died).

ver 3.3.2 -- 07nov22

  • Added required softlink in ~/libs/gnu/.
  • Improved robustness of auto-solvers.
  • Added "live" embedded solver for annoying sliders puzzles.
  • Added external solver "bfsa" for Annoying sliders that also solves Klotski-class, DirtyDozen, & TrafficRush puzzle files.
  • Revised compilation scripts to hide object files.

ver 3.3.1 -- 22oct22

  • Corrected direction of traffic-rush red car.
  • Added 2 Quzzle puzzles to the Klotski app.
  • Added 16 Annoying Sliders...that look small but are not easy.

ver 3.3.0 -- 01oct22

  • Now using simpler-to-setup GNU g++ for Win64.
  • Now make game subwindow grab focus upon opening.

ver 3.2.4 -- 16sep22

  • Now using GNU g++ rather than defunct AdaCore g++ compiler.

ver 3.2.3 -- 27apr22

  • Repaired errors in "gmg" and "linkRings".
  • Improved sound code.

ver 3.2.2 -- 25apr22

  • Refined libs, scripts.
  • Removed unused SFML libs.
  • Updated lodepng.
  • Added a 64-bit Windows build.

ver 3.2.1 -- 22nov20

  • Improved sound code for robustness;
  • Threads now created as "joinable".

ver 3.2.0 -- 19nov20

  • All new sound system using Pthreads and OpenAL.
  • Completely elliminated SFML-audio.
  • Updated SDL2 to v2.0.12

ver 3.1.1 -- 16oct20

  • Made further improvements in linux sound coding.
  • Improved sound effects; now all stereo, and not too loud.
  • Improved texture handling.

About

A collection of retro classic 2D slider puzzles for Windows, OSX & most Linux distros. Includes Traffic-Rush, Klotski & Get-My-Goat; written in C++

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages