{"id":19523323,"url":"https://github.com/niklasb/3d-puzzle","last_synced_at":"2025-06-27T19:32:12.333Z","repository":{"id":141703346,"uuid":"39071313","full_name":"niklasb/3d-puzzle","owner":"niklasb","description":null,"archived":false,"fork":false,"pushed_at":"2015-07-14T11:39:49.000Z","size":124,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T01:23:15.102Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/niklasb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-14T11:38:01.000Z","updated_at":"2015-07-14T11:38:14.000Z","dependencies_parsed_at":"2023-03-13T10:29:40.859Z","dependency_job_id":null,"html_url":"https://github.com/niklasb/3d-puzzle","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/niklasb/3d-puzzle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2F3d-puzzle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2F3d-puzzle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2F3d-puzzle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2F3d-puzzle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/niklasb","download_url":"https://codeload.github.com/niklasb/3d-puzzle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/niklasb%2F3d-puzzle/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262319016,"owners_count":23292995,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T00:43:04.488Z","updated_at":"2025-06-27T19:32:12.297Z","avatar_url":"https://github.com/niklasb.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"In diesem Ordner befinden sich die gesammelten elektronischen\nErzeugnisse der Gruppe \"3D-Puzzle\" auf der Modellierungswoche 2009.\n\n\n### Grids und Cubes\n\nJeder Würfel ist durch seine Teile definiert. Die Dateien im Ordner\n\"cubes\" enthalten solche Definitionen von 6er-Tupeln von\nPuzzleteilen. Die Bedingungen für den Aufbau eines Würfels werden\nin sogenannten Grid-Definitionsdateien (Grid = Gitter) gespeichert.\nSie befinden sich im Unterordner \"grids\" und legen fest, welche\nKanten und Ecken für ein Puzzlenetz übereinstimmen müssen.\n\nFür den 6er-Würfel (5x5x6, wegen 6 Teilen mit der Kantenlänge 5)\nwird die Datei grids/5x5x6.rb als Parameter an die Scripts übergeben.\n\n\n### Scripts\n\nEs handelt sich um Ruby-Scripts, der entsprechende Interpreter für\nWindows kann z.B. unter http://rubyforge.org/frs/download.php/69035/rubyinstaller-1.9.1-p378-rc2.exe bezogen\nwerden.\n\n\n    define_cube.rb  -- Einen Würfel \"interaktiv\" eingeben. Erwartet wird\n                    für jedes Teil eine Bitkette, die es beschreibt.\n                    Die Bitkette beginnt mit dem zweiten Bit in der\n                    oberen Kante:\n\n                        1 0 1 0 1\n                        1       0\n                        0       0\n                        1 1 0 1 1\n\n                    würde also zu 01010011011011\n\n    dump_cube.rb    -- Einen Würfel ausgeben (erwartet wird eine von\n                    define_cube.rb generierte Würfeldefinition).\n                    Das obige Teil würde wie folgt dargestellt werden:\n\n                        O   O   O\n                        O\n\n                        O O   O O\n\n    solve_puzzle.rb -- Unser Puzzle-Lösungs-Programm. Kann nicht nur Würfel\n                    lösen sondern auch alle möglichen anderen Varianten.\n                    Die Parameter können aufgelistet werden, indem man\n                    das Script ohne Parameter aufruft.\n\n                    Die Interpretation der Ausgaben im \"Verbose Mode\"\n                    folgt einem speziellen Schema: In der Grid-Definition\n                    wird ein gewisses Gitter festgelegt. solve_puzzle.rb\n                    gibt nun als eine Lösung für alle Positionen in\n                    diesem Gitter die Nummer des Teils an, welches auf der\n                    Position liegt, und dessen Orientierung (0 bis 7).\n                    Falls jemand Interesse an dem Programm hat, für\n                    den die eher problematische Ausgabe ein Hindernis\n                    darstellt, darf gerne eine Mail an den Autor des Script\n                    geschrieben werden: niklas.baumstark@gmail.com\n                    Feedback erwünscht ;)\n\n    generate_puzzle.rb -- Unvollständiges Tool zum Erstellen eines Puzzles.\n\n\n### Beispielaufrufe\n\n    # Würfel definieren\n    ruby define_cube.rb cubes/neuer_wuerfel.yml\n\n    # Würfel ausgeben\n    ruby dump_cube.rb cubes/hc1.yml\n\n    # Puzzle lösen\n    ruby solve_puzzle.rb grids/5x5x6.rb cubes/hc1.yml\n    # mit Schwierigkeitsmaß\n    ruby solve_puzzle.rb -r grids/5x5x6.rb cubes/hc1.yml\n    # Lösungen ausgeben\n    ruby solve_puzzle.rb -v grids/5x5x6.rb cubes/hc1.yml\n    # Für Statistiken: CSV Ausgabe benutzen (Beispiel in bash unter Linux)\n    (echo -n \"hc1,\"; ruby solve_puzzle.rb -r -c grids/5x5x6.rb cubes/hc1.yml) \\\n         \u003e\u003e stats.csv\n\n\n### Interna\n\nOrientierungen:\n\n    0   - Normalstellung\n    1   - 90° nach links gedreht\n    2   - 180° gedreht\n    3   - 90° nach rechts (oder 270° nach links) gedreht\n    4   - an der Diagonale von links oben nach rechts unten\n            umgedreht (Vorderseite nach hinten)\n    5-7 - wie 1-3, nur mit Orientierung 4 als Ausgangsstellung\n\npuzzle_lib.rb:\n\nDie Puzzle-Bibliothek, auf der alle Frontend-Scripts aufbauen.\nRecht unkommentiert, aber selbsterklärende Namen etc.\n\n### Kontakt und Support ;)\n\nBei Fragen einfach eine Mail an niklas.baumstark@gmail.com schreiben.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniklasb%2F3d-puzzle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fniklasb%2F3d-puzzle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fniklasb%2F3d-puzzle/lists"}