sokoban | Sokoban game in Python for Artificial Intelligence class

 by   janecakemaster Python Version: Current License: MIT

kandi X-RAY | sokoban Summary

kandi X-RAY | sokoban Summary

sokoban is a Python library. sokoban has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. However sokoban build file is not available. You can download it from GitHub.

Sokoban game in Python for Artificial Intelligence class. See assignment.txt for specs. #Specs OS: Mac OSX Language: Python 2.7.1 Editor: Sublime Text 3.

            kandi-support Support

              sokoban has a low active ecosystem.
              It has 5 star(s) with 1 fork(s). There are 2 watchers for this library.
              It had no major release in the last 6 months.
              sokoban has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of sokoban is current.

            kandi-Quality Quality

              sokoban has 0 bugs and 0 code smells.

            kandi-Security Security

              sokoban has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              sokoban code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              sokoban is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              sokoban releases are not available. You will need to build from source code and install.
              sokoban has no build file. You will be need to create the build yourself to build the component from source.
              Installation instructions are not available. Examples and code snippets are available.
              It has 508 lines of code, 39 functions and 12 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed sokoban and discovered the below as its top functions. This is intended to give you an instant insight into sokoban implemented functionality, and help decide if they suit your requirements.
            • Return a list of possible moves
            • Return a double point
            Get all kandi verified functions for this library.

            sokoban Key Features

            No Key Features are available at this moment for sokoban.

            sokoban Examples and Code Snippets

            No Code Snippets are available at this moment for sokoban.

            Community Discussions


            How do I permanently store data in a class python
            Asked 2021-Oct-14 at 09:58

            I have to create a game of Sokoban in Python and I have defined methods in my Sokoban class to find_player() , complete() , get_steps() and move() . I need to create a restart() method and an undo() method but I don't know how to do that. I can't find a way to store the original board or previous boards. I tried making defining another board in the __init__ but it just updates with self.__board instead of saving the initial board. I've also tried making a list in the __init__ and tried appending each move's "board" to the list but it changes every board in the list. I've attached my code if anyone can help.



            Answered 2021-Oct-12 at 11:24

            You'll need to (deep) copy the board list-of-lists if you don't want the same value (all the way up to test_board) to get changed.



            In Rust, how can I create a function which will accept a "Marker Component" as a type parameter?
            Asked 2021-Sep-01 at 10:28

            I'm currently looking at the Rust Sokoban tutorial, playing with the code as I type it in, to see how I can "improve" it without breaking it. In the chapter on Pushing boxes they introduce two "marker components" to "tell us which entities are movable and which aren't":



            Answered 2021-Sep-01 at 10:28

            As we discussed in the comments, there are two sources of errors:

            1. Methods operating on ReadStorage or WriteStorage require T to be a Component, luckily both Movable and Immovable already were, so to fix it we can simply constraint the T on this trait. Declaration of the function would look like so fn collect (...)
            2. Because of copy-pasting, the .join() method was called on object (&entities, &storable, &positions), where entities, storable, positions are references already as specified in the function declaration, thus .join() was called (simply speaking) on type (&&A, &&B, &&C), while it's defined for (&A, &B, &C). To fix it we need to call (entities, storable, positions).join() inside the collect function

            The final version of the code would look like this:



            CMake and vcpkg x86_64-w64-mingw32/bin/ld: cannot find -lOpenGL32 when cross compiling
            Asked 2021-Mar-12 at 00:30

            I'm making project which uses sfml, imgui-sfml and nlohmann json. For my dependences im using vcpkg. My host machine is Arch and I wanna cross build to Windows x64. Im getting strange linking error, am I missing something easy here? Here is my toolchain file:



            Answered 2021-Mar-12 at 00:30

            I managed to get this to work by symlinking libopengl32.a with libOpenGL32.a. Maybe its dirty but atleast it works. I don't know if that is typo in imgui/sfml packages or what.



            Intermittent error while trying to play .wav file with OpenJFX
            Asked 2020-Nov-03 at 15:32

            I need an internal .wav (in the source folder) to load into a Media Player without errors.

            I got it working yesterday and committed the code with which it worked. Today, rolling back to that commit shows the following error:



            Answered 2020-Nov-03 at 15:32

            Per ArchWiki, that exception might be thrown as a result of some incompatibilities.

            Working solution is to install ffmpeg-compat-55 AUR package.



            How can I store 10x10 map / game field in MySQL workbench?
            Asked 2020-Mar-23 at 14:33

            I'm creating the game Sokoban in java.

            The map / playing field is a 10x10 array. One field in the array can contain one of the 5 different objects

            1. Target Field
            2. Chest
            3. Player
            4. Wall
            5. Empty Field ( this is just a blank field where a player can walk over)

            now i want to store that map in the MySql database i'm not so sure how to approach this. I don't know what the table would look like. Later on i should be able to pull the map so a player can instantly play or modify the field.

            I thought about using a string of 100 chars and each object has a specific char so i know the meaning and place of it.



            Answered 2020-Mar-23 at 14:33

            Yeah so one approach would be to have a table that has a unique-key based on the column/row. Then you can store the key(s) relative to that column/row that link to the target field, the chest, the player, the wall, empty field.

            Edit: To answer your question on this answer, you can create a Location class that has and x and y that represents a spot in the grid. Then override equals/hashCode to make it unique. Then you can use a Map to store the Location and the relative GameObject at that location!



            how to convert a String in to a 2d array (java)(GameBoard)
            Asked 2020-Feb-25 at 16:29

            I have a String text which represents a level in the game Sokoban. I have a few different characters which each has a different meaning.

            • '#' = a wall
            • '$' = the player

            • '@' = the baggage to move

            • '.' = the target the baggage has to drop in to

            I'm using a 2d array (10x10)

            this is the level for example:



            Answered 2020-Feb-25 at 16:17

            First, declare spelbord as a char array (char[][]). It is a lot more efficient and easy to deal with. By the looks if it, you don't need it to contain strings.

            Then just write:


            Community Discussions, Code Snippets contain sources that include Stack Exchange Network


            No vulnerabilities reported

            Install sokoban

            You can download it from GitHub.
            You can use sokoban like any standard Python library. You will need to make sure that you have a development environment consisting of a Python distribution including header files, a compiler, pip, and git installed. Make sure that your pip, setuptools, and wheel are up to date. When using pip it is generally recommended to install packages in a virtual environment to avoid changes to the system.


            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
          • HTTPS


          • CLI

            gh repo clone janecakemaster/sokoban

          • sshUrl


          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Consider Popular Python Libraries


            by public-apis


            by donnemartin


            by TheAlgorithms


            by jackfrued


            by ytdl-org

            Try Top Libraries by janecakemaster


            by janecakemasterJava


            by janecakemasterJavaScript


            by janecakemasterJavaScript


            by janecakemasterShell


            by janecakemasterPython