README

Systemvoraussetzungen

   Der Server läuft unter einem Unix-System mit installiertem
   SWI-Prolog Version 5.10.2 (http://www.swi-prolog.org/) und z.T. (leider meist
   mit Fehler!) unter Windows mit installiertem SWI-Prolog (s. "Probleme unter Windows").
   Der Client läuft unter Linux, Mac und Windows mit installiertem SWI-Prolog.
   Windows: Die Datei anmeldebildschirm.pl mit dem Programm swipl-win.exe starten.
   Linux und Mac: Das Spiel kann über das Skript mrjack.sh gestartet werden.


Wie startet man den Server?

   KONFIGURATION DES SERVERS:
   In der Datei 'settings.pl' kann man den Port einstellen auf dem der
   Server lauschen soll. Die Clients müssen ebenfalls zu diesem Port
   verbinden.
   Man kann die Performance des Servers steigern wenn man
   performance(true). eingestellt hat. Wenn dies zu Problemen führt,
   sollte man das auf performance(false). lassen. Dieses Feature ist
   standardmäßig deaktiviert. (Ohne Probleme getestet unter: Mac OS X
   und Suse Linux (Kernel 2.6.27.56-0.1-default), beides mit SWI-Prolog 5.10.2)
   
   START DES SERVERS:
   Man wechselt über das Terminal in den Ordner, in dem sich die Datei
   'starte-server.sh' befindet (bsp. 'cd mrjack/') und führt diese wie
   folgt aus: './starte-server.sh' (ohne Anführungszeichen).
   Der Server erstellt automatisch Logs im Ordner 'logs/' mit Datum und 
   Uhrzeit wann der Server gestarte wurde.
   Das Terminal darf nicht geschlossen werden, sonst wird der Server
   ebenfalls geschlossen. Ordnungsgemäß kann man den Server
   schliessen / herunterfahren indem man folgendes eingibt: 'exit.'
   Man muss Schreibrechte für diese Aktion besitzen!

   Die Logs enthalten Farbcodes für die Konsole, wenn man das Logfile
   mit einem Programm öffnet, kann dies zu überflüssigen Zeichen führen.
   Mit 'cat LOGFILE' (wobei LOGFILE ersetzt werden muss mit der gewünschten
   Log-Datei) kann man sich das Log inkl. Farben ansehen.
   
   FEHLERMELDUNGEN:
   - bash: ./starte-server.sh: Permission denied
     Das Ausführen der Datei wird verhindert, dies kann man beheben in dem
     man folgendes eingibt: 'chmod +x starte-server.sh', dies erlaubt dem
     aktuellen Nutzer das Ausführen der Datei. Falls dies nicht
     hilft, kann man folgendes Probieren: 'chmod +r logs/', dies erteilt
     dem aktuellen Nutzer Schreibrechte auf den 'logs'-Ordner.

   MÖGLICHE PROBLEME UNTER WINDOWS
   Unter Windows besteht die Gefahr, dass der Server die Befehle in einer falschen
   Reihenfolge sendet, wodurch die GUI der Clienten nicht vollständig angezeigt wird.
   Wodurch der Fehler entsteht ist nicht bekannt.
   Oft tritt der Fehler nach einem Neustart des Servers nicht mehr auf.


Wie startet man den Clienten?

   Über das Terminal mit mrjack.sh:
   Man wechselt über das Terminal in den Ordner, in dem sich die Datei
   'mrjack.sh' befindet (bsp. 'cd mrjack/') und führt diese wie
   folgt aus: './mrjack.sh' (ohne Anführungszeichen).

   FEHLERMELDUNGEN:
   - bash: ./mrjack.sh: Permission denied
     Das Ausführen der Datei wird verhindert, dies kann man beheben in dem
     man folgendes eingibt: 'chmod +x mrjack.sh', dies erlaubt dem
     aktuellen Nutzer das Ausführen der Datei.

   Über den Ordner:
   Man wechselt in den Ordner, in dem sich die Datei 'mrjack.sh' befindet.
   Dort drückt man, mit der rechten Maustaste, die Datei.
   Danach klickt man auf Eigenschaften und es erscheint ein neues Fenster.
   In dem neuen Fenster wechselt man in den Reiter 'Zugriffsrechte', mit
   einem Klick auf den Reiter.
   Dort setzt man ein einen Haken bei 'Datei als Programm ausführen'.
   Nun schließt man das Fenster.
   Als nächstes kann man die Datei mit einem Doppelklick öffnen.
   Wenn man nun 'im Terminal ausführen' anklickt, dann öffnet sich das 
   Programm.

   Über das Terminal mit Client.pl:
   Man wechselt über das Terminal in den Ordner, in dem sich die Datei
   'client.pl' befindet.
   Über das Terminal muss man folgenden Ausdruck eingeben 'swipl -s client.pl'.
   Als nächstes muss man sich auf den Server connecten.
   Durch 'connect(Host,Port)' kann man sich nun auf den Server verbinden,
   als Client.
   Host: localhost(der eigene Rechner) oder eine gültige IP
   Port: einen gültigen Port meist zwischen 10000-11000
   Alle weiteren Befehle stehen im Kommunikationsprotokoll (siehe: Datei).

   Beenden des Clienten über das Terminal:
   Will man den Clienten über das Terminal beenden, dann kann man mit
   'quit.' den Clienten beenden, solange man noch keinem Spiel beigetreten ist.
   Nicht mit 'halt.'!!! Dies führt zu Störungen des Servers.
   Ist man gerade in einem Spiel und möchte man das Spiel beenden und zurück zum
   Chat zurückkehren, dann schreibt man im Terminal 'aufgaben.' .
   Wichtig: Wenn man 'quit.' eingibt und in einem Spiel ist, dann schließt sich
   das Programm und man kehrt NICHT zum Chat zurück. Also möchte man zum Chat
   zurück kehren, so muss man ein Spiel mit 'aufgaben.' beenden.


Bedienung des (grafischen) Anmeldebildschirms

   "Mr. Jack in New York" ist ein Netzwerkspiel, d.h. es kann mit
   verschiedenen Computern gegeneinander gespielt werden.
   Dazu muss auf einem Computer ein Server für das Spiel gestartet sein (s.o.).
   Die Spieler (Clients) müssen sich dann bei diesem Server anmelden.

   Der Anmeldebildschirm besteht aus 2 Buttons und 3 Textfeldern
   (die Textfelder haben bereits eingegebene Werte, die aber überschrieben werden koennen):
   Jeder Spieler muss einen Nick-Namen wählen und diesen in das oberste Textfeld eingeben.
   Im 2.Textfeld wird der Server (Host) angegeben, zu dem man sich verbinden möchte.
   Dazu gibt man den Netzwerk-Namen des Server-Computers an.
   Dies kann eine IP-Adresse sein (z.B. 192.168.178.2) oder ein Computer-Name (z.B. rzpc150).
   (Wenn Server und Client auf dem gleichen Computer laufen, kann man auch 'localhost' angeben.)
   Das 3.Textfeld gibt an, auf welchem Port das Spiel beim Server läuft. (siehe "settings.pl" im Kapitel Server)
   Um sich mit den eingegebenen Einstellungen anzumelden, muss Connect geklickt werden, daraufhin öffnet
   sich der Chatroom/die Lobby.
   Um das Spiel zu beenden kann man Exit (oben rechts) klicken.

   PROBLEME:
   - Sollte der gewuenschte Nick-Name bereits an einen anderen Spieler vergeben sein, wird die
     Anmeldung nicht akzeptiert. Eine entsprechende Fehlermeldung wird (leider) NUR auf der Konsole
     ausgegeben. (Zur Not kann man einfach eine beliebige Tastenfolge als Name wählen.)
   - Wenn ein Error-Fenster mit dem Text: "socket(...): Cannot connect socket: ..." aufpoppt, sind
     höchstwahrscheinlich die Host- und Port-Angaben fehlerhaft bzw. der Server ist nicht bereit.
     Man kann einige Zeit (1 Minute) warten und es dann erneut versuchen.


Bedienung des (grafischen) Chatrooms/der Lobby

   CHATTEN
   Im grau hinterlegten Bereich wird eine eine Liste aller angemeldeten Spieler angezeigt.
   Im weißen Bereich werden empfangenen Chatnachrichten angezeigt; eigene Chatnachrichten können
   im weißen Feld darunter eingegeben und über das Briefsymbol abgeschickt werden.
   Unter Windows können nur die ersten zwei gesendeten Chatnachrichten angezeigt werden, da das Bild
   oben von dem grauen bereich überschrieben wird.

   SPIEL STARTEN
   Um ein Spiel zu starten, klickt man auf den "Detektiv"- oder den "Mr. Jack"-Button (je nachdem,
   welchen Charakter man spielen möchte). Darunter wird angezeigt, wie viele freie Detektive oder
   Mr.Jacks es schon gibt. Wenn es einen freier Detektiv und einen freien Mr. Jack gibt, startet
   der Server automatisch ein Spiel. Bei den Spielern öffnet sich daraufhin die Spielfeld-GUI
   (der Chatroom wird dabei NICHT geschlossen).

   BEENDEN
   Um das Spiel ganz zu beenden kann man auf den Exit-Button (oben rechts) klicken.
   Wenn man nur den Server verlassen möchte (z.B. um sich mit einem anderen Namen oder bei einem
   anderen Server anzumelden), klickt man auf "Server verlassen" und gelangt zum Anmeldebildschirm.


GUI (Grafische Benutzeroberfläche) 

   DAS SPIELFELD
   Das Spielfeld besteht aus sechseckigen Feldern, auf die verschiedene Sonderfelder
   gelegt werden können. Am linken Rand befinden sich vier zufällig ausgewählte Zugkarten, 
   welche für die Bewegung der Figuren zuständig sind. Am rechten Rand wird mit den 
   Farben Gold und Silber angegeben, welcher Spieler am Zug ist und die wievielte 
   Runde gespielt wird. Dazu befindet sich am rechten Rand eine Sanduhr, die pro Runde um einen
   Platz nach oben wandert. Unter der Sanduhr sind jeweils vier kleine Karten, zwei in gold, zwei
   in silber. Die aktive Karte wird jeweils mit roter Umrandung angezeigt.
   Die Farbe gold hat der Detektiv, die Farbe Silber Mr. Jack.
   Die Spielerfarbe ist gleichzeitig die Farbe des Spielfeldrands.
   In der unteren linken Ecke liegt die sogenannte Sichtbarkeitskarte. 
   Die Sichtbarkeitskarte hat entweder einen gelben oder einen schwarzen Rand.
   Ein gelber Rand bedeutet Jack ist sichbar, ein schwarzer Jack ist unsichbar.
   In der rechten unteren Ecke befinden sich zwei Buttons. Das Buch öffnet die Spielanleitung
   als PDF und der Lautsprecher spielt einen Soundtrack ab. Nach Beendigung des Stückes kann
   dieses durch einen erneuten Klick wiederholt werden.
   Hinweis!
   Der Soundtrack kann nur unter Linux abgespielt werden und auch nur dann, wenn paplay 
   installiert ist.

   DIE ZUGKARTEN
   Zu Beginn einer Runde werden vier Zugkarten zufällig am linken Rand angezeigt.
   Die Zugkarten werden mit einem Klick ausgewählt. 
   Die Farbe der Zugkarte entspricht der zu bewegenden Figur. Nach der ersten Auswahl erscheinen die restlichen Karte 
   ausgegraut. Ein weiterer Klick öffnet ein Informationsfenster über die Fähigkeiten 
   der jeweiligen Figur. 
   Achtung: Auch der Spieler, der nicht am Zug ist, kann eine Karte anklicken, damit
   er sich über die möglichen Aktionen dieser Figur informieren kann. Dies hat jedoch keine
   Auswirkung auf das Spiel. 
   Auf den Zugkarten gibt es jeweils zwei kleine Auswahlkreise.
   Der linke Kreis entspricht dabei immer der Option: Ziehe 1 bis 3 Felder.
   Der rechte Kreis entspricht immer der individuellen Sonderfähigkeit.
   (Ausnahme: Bei der lilafarbene Figur erscheint zusätzlich ein Button, um nach der 
   normalen Bewegung keine Sonderfähigkeit mehr auszuführen.)  
   Nachdem entweder die Fähigkeit oder die Bewegung ausgewählt und ausgeführt wurde, erscheint der
   Kreis durchgestrichen. Dieser Button ist nun nicht mehr auswählbar. Bei den normalen Karten
   muss man nun den jeweils anderen Kreis anklicken. Bei der lilanen Karte kann man stattdessen auf den
   erscheinenden Skip- Button drücken. Bei der schwarzen Karte kann man nur entweder die Fähigkeit
   oder die Bewegung auswählen. Danach erscheint die gesamte Karte sofort durchgestrichen.
   Am Ende eines Zuges wird die gesamte Spielkarte durchgestrichen. Sie kann nun nicht mehr benutzt werden.
   Dies sieht auch der Spieler, der bis dahin nicht am Zug war. Er sieht jedoch während des Zuges nicht,
   welche Karte ausgewählt wurde. Auf seinem Spielfeld werden trotzdem die entsprechenden Aktionen
   ausgeführt.

   DIE FIGUREN
   Die Spielfiguren haben jeweils eine Seite mit einem farbigen Bild und eine Seite 
   mit einem schwarz-weißen Bild. Der Detektiv kann zwischen diesen Bildern durch einen 
   Klick auf die Figuren wechseln. Dies ist am Ende jeder Runde möglich. Dann ändert sich unten
   die Sichtbarkeitskarte von Mr. Jack oder sie bleibt wie vorher. Danach hat der Detektiv die
   Möglichkeit Figuren auf weiß zu drehen oder weiße Figuren wieder auf farbig zu drehen.
   Das farbige Bild bedeutet hierbei, dass diese Figur ein
   potentieller Mr. Jack ist und das schwarz-weiße, dass diese Figur bereits ausgeschlossen ist.

   Wie bewegt man eine Figur?
   Um eine Figur zu bewegen, muss zunächst die passende Zugkarte aktiviert werden. 
   Jetzt wird über die Auswahlkreise die gewünschte Fähigkeit durch einen Klick ausgewählt.
   Wurde eine Fähigkeit ausgewählt, werden alle möglichen Felder, auf denen die Fähigkeit
   ausgeführt werden kann, blau markiert. Zum einfachen Ziehen wird nur das Endfeld angeklickt,
   ebenso zum neu errichten eines Sonderfeldes. Um ein Sonderfeld (bei der lilafarbenen und der
   schwarzen Figur auch eine andere Figur) zu bewegen, bzw. zu verändern, muss zunächst das
   gewünschte Sonderfeld ausgewählt werden. Danach kann das Endfeld gewählt werden.
   Auch hierbei werden alle Möglichkeiten blau markiert. 
   Nachdem man eine Fähigkeit oder die Bewegung ausgewählt hat, muss man diese Aktion ausführen.
   Man hat danach keine Möglichkeit mehr, seine Entscheidung zurückzunehmen. 
   Während dieser Zeit kann nur auf markierte Felder geklickt werden. Alle anderen Klicks (außer auf
   die Spielanleitung und den Sound unten rechts) werden ignoriert.
   Sollte der unwahrscheinliche Fall auftreten, dass man eine Bewegung oder ein Fähifkeit ausgewählt hat
   und es gibt keine Möglichkeit, diese auszuführen, wird man durch eine Fehlermeldung darauf hingewiesen
   und der jeweilige Teilzug ist beendet.
   Nachdem eine Fähigkeit benutzt wurde, wird der entsprechende Auswahlkreis rot durchgestrichen.
   Nachdem eine Figur zu Ende bewegt wurde, wird die Zugkarte rot durchgestrichen.
   
   Wie beendet man eine Runde?
   Nachdem vier Figuren bewegt wurden, ändert sich die Sichtbarkeitskarte automatisch.
   Erscheint ein gelber Mond und ein gelber Rand um die Karte, so ist Mr. Jack sichtbar.
   Erscheint ein weißer Mond und ein schwarzer Rand, so ist Mr. Jack unsichtbar.
   Der Detektiv kann nun durch einen Klick auf die entsprechenden Figuren, diese ausschließen 
   (das schwarz-weiße Bild liegt nun oben). Hat er alle gewünschten Figuren ausgeschlossen, 
   beendet er durch einen Klick auf die Sichtbarkeitskarte die aktuelle Runde und eine neue 
   Runde beginnt.

   Alles weitere zur Spiellogik und den einzelnen grafischen Elementen kann durch Klick auf das Buch- Symbol
   unten rechts in der Spielanleitung nachgelesen werden.


Spiellogik (Spion): (Unterschiede zum Brettspiel) 
        - Nachdem man den Spion befragt hat wird dieser anders als im Brettspiel zufällig auf ein 
          freies Feld (leer, Metro, Park) platziert und ist für den Rest der Runde nicht mehr 
          gesprächig!

-- MaxBlochberger -- 03 Mar 2011
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback