blackboxgame

Autres langues

Langue: de

Autres versions - même langue

Version: 310369 (debian - 07/07/09)

Section: 6 (Jeux)

NAME

blackboxgame - guessing game

SYNOPSIS

blackboxgame [--generate n] [--print wxh [--with-solutions] [--scale n] [--colour]] [game-parameters|game-ID|random-seed]

blackboxgame --version

DESCRIPTION

(Note: the Debian version of this game is called blackboxgame to avoid clashing with the window manager blackbox.)

A number of balls are hidden in a rectangular arena. You have to deduce the positions of the balls by firing lasers from positions on the edge of the arena and observing how they are deflected.

Lasers will fire straight until they hit the opposite side of the arena (at which point they emerge), unless affected by balls in one of the following ways:

A laser that hits a ball head-on is absorbed and will never re-emerge. This includes lasers that meet a ball on the first rank of the arena.
A laser with a ball to its front-left square gets deflected 90 degrees to the right.
A laser with a ball to its front-right square gets similarly deflected to the left.
A laser that would re-emerge from the entry location is considered to be `reflected'.
A laser which would get deflected before entering the arena (down the `firing range') by a ball to the front-left or front-right of its entry point is also considered to be `reflected'.

Lasers that are reflected appear as a `R'; lasers that hit balls dead-on appear as `H'. Otherwise, a number appears at the firing point and the location where the laser emerges (this number is unique to that shot).

You can place guesses as to the location of the balls, based on the entry and exit patterns of the lasers; once you have placed enough balls a button appears enabling you to have your guesses checked.

Here is a diagram showing how the positions of balls can create each of the laser behaviours shown above:

  1RHR----
 |..O.O...|
 2........3
 |........|
 |........|
 3........|
 |......O.|
 H........|
 |.....O..|
  12-RH---
 

As shown, it is possible for a ball to receive multiple reflections before re-emerging (see turn 3). Similarly, a ball may be reflected (possibly more than once) before receiving a hit (the `H' on the left side of the example).

Note that any layout with more that 4 balls may have a non-unique solution. The following diagram illustrates this; if you know the board contains 5 balls, it is impossible to determine where the fifth ball is (possible positions marked with an x):

  --------
 |........|
 |........|
 |..O..O..|
 |...xx...|
 |...xx...|
 |..O..O..|
 |........|
 |........|
  --------
 

For this reason when you have your guesses checked the game will check that your solution produces the same results as the computer's, rather than that your solution is identical to the computer's. So in the above example, you could put the fifth ball at any of the locations marked with an x, and you would still win.

Black Box was contributed to this collection by James Harvey.

Black Box controls

To fire a laser, left-click in a square around the side of the arena. The results will be displayed immediately. Lasers may not be fired twice (because the results will never change). Holding down the left button will highlight the current go (or a previous go) to confirm the exit point for that laser, if applicable.

To guess the location of a ball, left-click within the arena and a black circle will appear marking the guess; to remove the guessed ball click again.

Locations in the arena may be locked against modification by right-clicking; whole rows and columns may be similarly locked by right-clicking in the laser firing range above/below that column, or to the left/right of that row.

The cursor keys may also be used to move around the grid. Pressing the Enter key will add a new ball-location guess, and pressing Space will lock a cell or a row/column.

When an appropriate number of balls have been guessed a button will appear at the top-left corner of the grid; clicking that (with mouse or cursor) will mark your guesses.

If you click the `mark' button and your guesses are not correct, the game will show you as little information as possible to demonstrate this to you, so you can try again. If your ball positions are not consistent with the laser paths you already know about, one laser path will be circled to indicate that it proves you wrong. If your positions match all the existing laser paths but are still wrong, one new laser path will be revealed (written in red) which is not consistent with your current guesses.

If you decide to give up completely, you can select Solve to reveal the actual ball positions. At this point, correctly-placed balls will be displayed as filled black circles; incorrectly-placed balls are displayed as filled black circles with red crosses, and missing balls are filled red circles. In addition, a red circle marks any laser you had already fired which is not consistent with your ball layout (just as when you press the mark button), and red text marks any laser you could have fired in order to distinguish your ball layout from the right one.

(Alle below beschriebene Aktionen sind auch verfgbar.)

Black Box parameters

Diese Parameter sind von der Option `Custom...' im Men `Type' verfgbar.

Breite, Hhe
Size of grid in squares. There are 2 × Width × Height lasers per grid, two per row and two per column.
No. of balls
Number of balls to place in the grid. This can be a single number, or a range (separated with a hyphen, like `2-6'), and determines the number of balls to place on the grid. The `reveal' button is only enabled if you have guessed an appropriate number of balls; a guess using a different number to the original solution is still acceptable, if all the laser inputs and outputs match.

Gemeinsame Aktionen

Diese Aktionen sind vom Menpunkt `Game' und ber Tastaturkrzel verfgbar, zustzlich zu allen spielspezifischen Aktionen.

(Unter Mac OS X befinden sich diese Aktionen unter den Mens `File' und `Edit', um den lokalen Benutzerschnittstellenstandards zu gengen.)

New game (`N', Ctrl+`N')
Beginnt ein neues Spiel, mit einem zuflligen Startzustand.
Restart game
Setzt das aktuelle Spiel auf seinen Startzustand zurck. (Dies kann rckgngig gemacht werden.)
Load
Ldt ein gespeichertes Spiel aus einer Datei auf der Platte.
Save
Speichert den aktuellen Zustand Ihres Spiels in einer Datei auf der Platte.

Die Operationen Load und Save erhalten Ihren gesamten Spielverlauf (daher knnen Sie speichern, neuladen und immer noch Aktionen, die Sie vor dem Speichern durchgefhrt hatten, rckgngig machen (Undo) oder erneut ausfhren (Redo)).
Print
Wo untersttzt (derzeit nur unter Windows) wird ein Dialog gezeigt, der es Ihnen erlaubt, eine beliebige Anzahl von Puzzlen zu drucken, die aus den aktuellen Parametern generiert werden, darunter optional auch das aktuelle Puzzle. (Natrlich nur fr Puzzles, die sinnvoll gedruckt werden knnen - fr Fifteen ist es schwer, eine vernnftige druckbare Darstellung zu ersinnen.)
Undo (`U', Ctrl+`Z', Ctrl+`_')
Setzt einen einzelnen Spielzug zurck. (Sie knnen Spielzge bis zum Beginn der Sitzung zurcksetzen.)
Redo (`R', Ctrl+`R')
Nimmt einen vorher zurckgesetzten Spielzug wieder vor.
Copy
Kopiert den aktuellen Zustand Ihres Spiels im Textformat in die Zwischenablage, so dass Sie ihn in sagen wir Ihren E-Mail-Client oder ein Web-Diskussionsforum einfgen knnen, falls Sie das Spiel mit jemanden diskutieren. (Nicht alle Spiele untersttzen diese Funktion.)
Solve
berfhrt das Puzzle sofort in seinen gelsten Zustand. Bei einigen Spielen (Cube) wird diese Funktion berhaupt nicht untersttzt, da sie keinen besonderen Zweck erfllt. Bei anderen Spielen (wie Pattern) kann der gelste Zustand Ihnen Informationen geben, falls Sie nicht erkennen knnen, ob berhaupt eine Lsung existiert oder wo Sie einen Fehler gemacht haben. Fr wieder andere Spiele (wie Sixteen) teilt Ihnen die automatische Lsung nicht darber mit, wie Sie zu der Lsung kommen, aber sie stellt eine ntzliche Methode dar, schnell dorthin zu gelangen, so dass Sie mit den Stein-Setz-Spielzgen und Transformationen experimentieren knnen.

Einige Spiele (wie Solo) sind in der Lage, eine Spiele-ID zu lsen, die Sie aus anderer Quelle erhalten haben. Andere Spiele (wie Rectangles) knnen keine Spiele-ID lsen, die sie nicht selbst erfunden haben, aber wenn sie die Spiel-ID selbst erfunden haben, kennen sie die Lsung bereits. Wieder andere Spiele (Pattern) knnen einige externe Spiele-IDs lsen, aber nur falls diese nicht zu schwer sind.
Der `Solve'-Befehl fgt den gelsten Zustand an das Ende der Undo-Kette fr das Puzzle hinzu. Mit anderen Worten, falls Sie zum eigenstndigen Lsen zurckkehren wollen, nachdem Sie die Antwort gesehen habe, whlen Sie einfach Undo aus.
Quit (`Q', Ctrl+`Q')
Schliet die Anwendung komplett.

Spiele ber die Spiele-ID auswhlen

Es gibt zwei verschiedene Arten eine Spielspezifikation in einem Puzzle zu speichern und dieses spter wieder herzustellen, entweder in Ihrer Umgebung oder in der Ausgabe des gleichen Puzzles bei einer anderen Person.

Die Optionen `Specific' und `Random Seed' aus dem Men `Game' (oder `File' unter Mac OS X) zeigen jeweils ein Stck Text (eine `Spiele-ID'), der ausreicht, um genau dieses Spiel zu einem spteren Zeitpunkt zu rekonstruieren.

Sie knnen eines dieser Textstcke spter wieder im Programm eingeben (ber die gleiche Menoption `Specific' oder `Random Seed') und es wird das gleiche Spiel wieder erzeugt. Sie knnen auch eines davon (unter Windows oder Unix) als Befehlszeilen-Argument verwenden; lesen Sie below fr weitere Details.

Der Unterschied in der zwei Formen besteht darin, dass die beschreibende Spiele-ID eine Beschreibung des Anfangszustands des Spieles ist, whrend der Zufallsstartwert lediglich ein Stck beliebiger Text ist, der als Eingabe fr den Zufallszahlengenerator zur Erzeugung des Puzzles verwandt wurde. Dies bedeutet:

Beschreibende Spiele-IDs sind typischerweise fr viele Puzzle lnger (wobei einige, wie Cube (cube(6)) nur eine sehr kurze Beschreibung bentigen). Daher ist der Zufallsstartwert oft ein schnellerer Weg um das gerade gespielte Puzzle aufzuschreiben oder es jemanden anderen mitzuteilen, so dass er das gleiche wie Sie spielen kann.
Jeder beliebige Text ist ein gltiger Zufallsstartwert. Bei den automatisch generierten handelt es sich um fnfzehnstellige Zahlen, es funktioniert aber alles, Sie knnen Ihren vollstndigen Namen oder ein erfundenes Wort eingeben und ein gltiges Puzzle wird daraus erstellt. Dies gibt zwei oder mehr Leuten die Mglichkeit, das gleiche Puzzle um die Wette zu lsen: Sie denken sich einen Zufallsstartwert aus und jeder tippt ihn zur gleichen Zeit ein. Damit hat keiner einen Vorteil dadurch, dass er das erstellte Puzzle vor jemanden anderen gesehen hat.
Oft ist es mglich, Puzzle aus anderen Quellen (wie `Nonograms' oder `Sudoku' aus Zeitungen) in beschreibende Spiele-IDs zu verwandeln, die mit diesen Programmen verwandt werden knnen.
Zufallsstartwerte erzeugen nicht notwendigerweise die gleichen Ergebnisse, wenn sie mit einer anderen Version des Puzzle-Programms verwandt werden. Dies beruht darauf, dass der Erzeugungsalgorithmus in neueren Versionen des Codes verbessert oder verndert worden sein knnte und daher ein anderes Ergebnis erzeugen wird, wenn die gleiche Sequenz an Ziffern als Zufallszahl angegeben wird. Verwenden Sie eine beschreibende Spiele-ID, falls Sie sich nicht sicher sind, dass sie auf der gleichen Version des Programms wie der Ihren verwandt wird.

(Verwenden Sie die Menoption `About' um die Versionsnummer des Programms herauszufinden. Programme mit der gleichen Versionsnummer auf verschiedenen Plattformen sollten im Hinblick auf die Zufallsstartwerte kompatibel sein.)

Ein beschreibende Spiele-ID beginnt mit einem Stck Text, der die Parameter des aktuellen Spiels kodiert (wie beispielsweise die Gittergre). Dann folgt ein Doppelpunkt und danach eine Beschreibung des Anfangszustandes des Spieles. Ein Zufallsstartwert beginnt mit einer hnlichen Zeichenkette, enthlt dann aber ein Rautezeichen gefolgt von beliebigen Daten.

Falls Sie eine beschreibende Spiele-ID eingeben wird das Programm nicht in der Lage sein, Ihnen den erzeugenden Zufallsstartwert anzuzeigen, da es nicht aus einem Zufallsstartwert erzeugt wurde. Falls Sie allerdings einen Zufallsstartwert eingeben, wird das Programm in der Lage sein, Ihnen den daraus abgeleiteten Zufallsstartwert anzuzeigen.

Beachten Sie, dass die Spieleparameterzeichenketten sich in den zwei Formen unterscheiden knnen. Bei einigen Spielen werden beim Zufallsstartwert zustzliche Parameterdaten angegeben werden, die bei der beschreibenden Spiele-ID entfallen. Dies kommt daher, dass diese Parameterinformationen nur zur Erstellung von Gittern, aber nicht beim Spielen relevant sind. So wird beispielsweise der Schwierigkeitsgrad von Solo (solo(6)) in der beschreibenden Spiele-ID nicht erwhnt.

Diese zustzlichen Parameter werden auch nicht permanent gesetzt, falls Sie eine Spiele-ID eingeben. Nehmen wir beispielsweise an, Sie haben den Schwierigkeitsgrad `Advanced' in Solo eingestellt und ein Freund bittet Sie um Untersttzung bei einem Spiel der Schwierigkeit `Trivial'. Er liest daher einen einen Zufallsstartwert unter Benutzung der Schwierigkeit `Trivial' aus und Sie geben diesen ein. Das Programm wird Ihnen das gleiche Gitter mit der Schwierigkeit `Trivial' erstellen, mit dem Ihr Freund Probleme hatte, aber sobald Sie es zuende gespielt haben und um ein neues Spiel bitten, wird wieder automatisch auf die Schwierigkeit `Advanced' zurckgeschaltet, die vorher eingestellt worden war.

Das Men `Type'

Das Men `Type' kann, falls vorhanden, eine Liste der voreingestellten Spieleeinstellungen enthalten. Wird eines dieser Eintrge ausgewhlt, wird ein neues Spiel mit den angegebenen Parametern gestartet.

Das Men `Type' kann auch eine Option `Custom' enthalten, die es Ihnen erlaubt, die Parameter des Spiels im Detail einzustellen. Die Parameter sind spielspezifisch und werden in den folgenden Abschnitten beschrieben.

Spieleparameter auf der Befehlszeile eingeben

(Dieser Abschnitt betrifft nicht die Mac OS X-Version.)

Die Spiele in dieser Sammlung speichern absichtlich niemals Informationen auf dem Computer, auf dem sie ausgefhrt werden: sie haben keine Bestenliste und keine abgespeicherten Voreinstellungen. (Dies kommt daher, dass ich annehme, das einige Personen sie auf der Arbeit spielen werden und diese Personen mchten wahrscheinlich so wenige Nachweise wie mglich hinterlassen!)

Falls Sie allerdings erreichen wollen, dass diese Spiele mit mit einem vorgegebenen Satz an bestimmten Parametern gestartet werden, knnen Sie diese auf der Befehlszeile angeben.

Am einfachsten erfolgt dies, indem Sie die gewnschten Parameter mit dem Men `Type' einrichten (siehe above) und dann `Random Seed' aus dem Men `Game' oder `File' (siehe above) auswhlen. Der Text in dem Kasten `Game ID' wird dann aus zwei Teilen bestehen, getrennt durch eine Raute. Der erste dieser Teile stellt die Spieleparameter das (beispielsweise die Gre des Spielbereichs, und alles was Sie ber das Men `Type' eingestellt haben).

Falls Sie das Spiel mit genau diesem Parametertext auf der Befehlszeile ausfhren wird es mit den von Ihnen angegebenen Einstellungen gestartet.

Beispiel: Sie fhren Cube aus (siehe cube(6)), whlen `Octahedron' aus dem Men `Type' aus und gehen dann zu der Auswahl der Spiele-ID. Dort sehen Sie eine Zeichenkette der Form `o2x2#338686542711620'. Verwenden Sie nur den Teil vor der Raute (`o2x2') und starten Sie Cube mit diesem Text auf der Befehlszeile: `cube o2x2'.

Falls Sie die gesamte Spiele-ID auf der Befehlszeile angeben wird das Spiel mit dem speziellen beschriebenen Spiel gestartet. Dies ist manchmal der bequemere Weg eine bestimmte Spiele-ID zu starten, statt diese in den Auswahlkasten fr die Spiele-ID einzufgen.

(Sie knnen die kodierten Spieleparameter auch aus der Menoption `Specific' statt `Random Seed' auslesen, allerdings werden dann einige Parameter wie der Schwierigkeitsgrad in Sole fehlen. Lesen Sie above fr weitere Details darber.)

Unix Befehlszeilenoptionen

(Dieser Abschnitt betrifft nur die Unix-Portierung.)

Zustzlich zu der Mglichkeit, die Spieleparameter auf der Befehlszeile zu bergeben (siehe above) gibt es verschiedene andere Optionen:

--game
--load
Diese Optionen bestimmen ob das angegebene Befehlszeilenargument als spezieller Spieleparameter oder als eine zuvor gespeicherte und jetzt zu ladende (`--load') Datei betrachtet wird. Nur eine der beiden Parameter sollte angegeben werden. Falls keine der Optionen angegeben ist, wird basierend auf dem Format des Arguments der zutreffende Fall erraten.
--generate n
Falls diese Option angegeben wird, dann werden eine Reihe von beschreibenden Spiele-IDs ausgedacht und auf der Standardausgabe ausgegeben. Dies ist hilfreich, um Zugriff auf die Spieleerzeugungsalgorithmen zu erhalten, ohne notwendigerweise die Oberflche zu verwenden.

Falls auf der Befehlszeile Spieleparameter angegeben sind, werden diese zur Erzeugung von Spiele-IDs verwandt; andernfalls wird eine voreingestellter Satz an Parametern verwandt.
Der hufigste Einsatzfall dieser Option besteht im Zusammenhang mit der Option --print. Dabei unterscheidet sich das Verhalten etwas, siehe unten.
--print wxh
Falls diese Option angegeben wird, wird eine gedruckte Darstellung eines oder mehrerer ungelster Puzzles im PostScript-Format auf die Standardausgabe gesandt, anstatt dass das Puzzle angezeigt wird.

Auf jeder Seite mit Puzzlen wird es w quer und h nach unten geben. Falls es mehr Puzzle als w×h gibt wird mehr als eine Seite gedruckt.
Falls auch --generate angegeben wurde, werden die ausgedachten Spiele-IDs zur Erzeugung der gedruckten Ausgabe verwandt. Andernfalls wird eine Liste von Spiele-IDs im gleichen Format wie diese von --generate erzeugt werden auf der Standardeingabe erwartet (diese knnen beschreibend oder mit Zufallsstartwert sein).
Zum Beispiel:
 net --generate 12 --print 2x3 7x7w | lpr
 

Erstellt zwei Seiten an gedruckten Net-Puzzlen (jedes wird ein 7×7 Umlauf-Gitter enthalten) erstellen und diese ber eine Pipe an den lpr-Befehl senden, der die Ausgabe auf vielen Systemen auf den eigentlichen Drucker schicken wird.

Es gibt verschiedene weitere Optionen mit Auswirkungen auf das Drucken, siehe unten.

--save file-prefix [ --save-suffix file-suffix ]
Falls diese Option angegeben wird, wird statt der Anzeige eines Puzzles die gespeicherten Spieledateien fr ein oder mehrere Puzzles in Dateien geschrieben, die aus den angegebenen Pr- und/oder Suffixen konstruiert werden.

Falls auch --generate angegeben wurde, werden die ausgedachten Spiele-IDs zur Erzeugung der gedruckten Ausgabe verwandt. Andernfalls wird eine Liste von Spiele-IDs im gleichen Format wie diese von --generate erzeugt werden auf der Standardeingabe erwartet (diese knnen beschreibend oder mit Zufallsstartwert sein).
Zum Beispiel:
 net --generate 12 --save game --save-suffix .sav
 

wird zwlf gespeicherte Spieledateien fr Net mit den Namen game0.sav bis game11.sav erstellen.

--version
Gibt nur die Versionsinformationen ber das Spiel aus.

Die folgenden Optionen sind nur von Bedeutung, falls auch --print angegeben wird:

--with-solutions
Die mit ungelsten Puzzlen gefllte Seite wird von den Lsungen zu diesen Puzzlen gefolgt.
--scale n
Passt die Gre jedes Puzzles im Ausdruck an. Grere Zahlen vergrern die Puzzle; der Standardwert ist 1.0.
--colour
Die Puzzles werden in Farbe statt schwarz-wei ausgedruckt (falls dies vom Puzzle untersttzt wird).

SEE ALSO

Full documentation in /usr/share/doc/sgt-puzzles/puzzles.txt.gz.