Textadventure.. ich liebe Textadventure!!!!!!
Da du sowas programmieren willst, vielleicht helfen dir ein paar Tips von mir
Das Problem war immer bei den Textadventuren der Parser, er war der Knackpunkt. Um es mal kurz zu verdeutlichen. Angenommen in deinem Textadventure führst du eine Gruppe von Abenteurern durch eine Höhle voller Trolle und willst dort die Trolle erschlagen und das Gold klauen. Weiter nehmen wir an dein Textadveture gibt dir nun aus:
Du gehst mit deiner Gruppe weiter durch das Höhlenlabyrinth, vor die verzweigt sich nun der Weg. Der linke Gang führt weiter hinab in das Labyrinth, der rechte Gang hört nach etwa 2 Metern auf und auf dem Boden befindet sich eine Falltür aus Holz. In welchen Gang möchtest du mit deiner Gruppe gehen?
>
Da es hier nur 2 Auswahlmöglichkeiten gibt die man eingeben kann (links oder rechts) bietet sich eine einfache Ja/Nein Abfrage an oder wenn man es schöner programmieren will eine Mehrfachauswahl (case).
Übel wird es zb. wenn die Eingabe kompliziert wird, nehmen wir das Beispiel das wir oben "rechts" eingeben:
Du hast dich mit deiner Gruppe für den rechten Gang entschieden. Nach 2 Metern endet der Gang und deine Gruppe steht vor einer schweren Falltür aus Eichenholz. Was möchtest du tun?
>
Nun muß der User bei (einem gut programmierten Textadventure) mindestens 3 Wörter eingeben und dein Programm muß die erkennen:
untersuche die Falltür
öffne die Falltür
Angegommen der User gibt ein "öffne die Falltür" und das Programm gibt nun aus:
Ihr versucht die Falltür zu öffnen - sie bewegt sich keinen Milimeter
Vermutlich wird der User jetzt sowas eingeben:
"Breche die Falltür auf" oder "Benutze ein Schwert als Hebel um die Falltür aufzubrechen"
Und schon bist du in dem einen Fall bei 4 Wörter und im anderen sogar bei 9 Wörter die dein Programm verstehen sollte. Hier ist halt der große Knackpunkt, der Parser deines Programms. Wenn der parser (also die Worterkennung) gut programmiert ist kann er ohne Probleme die 9 Wörter verstehen, aber - großes aber, so einen parser zu programmieren ist kompliziert, sehr kompliziert!!!
Es gab in der Vergangenheit der Textadventure eigentlich nur 2 große Firmen die es fertig brachten einen Parser dermaßen gut zu programmieren das er solche komplizierten Sätze verstand. Einmal war das die Firma Infocom die solch gute Textadventure programmierten das sie heute noch absoluter Kult sind (zb. Zorc, Hitchhiker, North&Bert, Sorcerer, Spellbreaker, Shogun usw.
Und einmal die Firma Magnetic Scrolls die ebenfalls absolut geniale Textadventures rausbrachte und außerdem dort zusätzlichen Bilder einbaute, sie brachten Textadventure raus wie Guild of Thieves, The Pawn, Fish, usw.
Die Parser der beiden genannten Firmen war so gut das man Unsinn eingab das Programm ironisch antworte, passend zu der Eingabe.
Nun zu der dir und zum programmieren solcher Parser.
Es gibt seit einige jahren eine richtige Fangemeinde im Internet um die (leider meist englischen) Textadventure von Infocom. In den frühen 90er jahren wurde der Parser der Infocom Spiele gecrackt, eigentlich die in den textadventure enthaltende Z-machine die die objektorientiere Sprache Inform benötigte. Zum Verständnis: die Firma Infocom entwickelte eine eigene Programmiersprache die speziell dafür ausgelegt war auch komplizierten Parser zu verstehen. Der Compiler (oder besser eine virteulle Maschine) die aus dem Quellcode ein lauffähiges Spiel machte hieß Z-machine). Das es nun gecrackt wurde war der Weg frei das die Fans solcher Textadventure eigene Textadenture in dieser Programmiersprache Inform programmieren konnte und mit solch komplizierten parser Texten.
Um nun selber solche Textadventure mit Inform zu programmieren brauchst du die deutsche Libary, download hier:
und eine Einführung in die Programmiersprache mit Beispielen, das findest du hier (mit Link zu dem Z-Compiler) auf deutsch:
Wenn du nun ein Textadventure fertig programmiert hast gibt es für Windows ein Programm das WinFrotz heißt, damit kann man zum einen die ganzen alten Textadventure von Infocom öffnen und spielen (Das Dateiformat solcher Textadventure ist meisten .z5)
download von WinFrotz (Freeware) hier:
viele weitere solcher .z5 Textadventure gibt es hier:
Und hier kann man übrigens einige Spiele von Infocom Online spielen, zb. Dungeon oder Zorc um mal ein bißchen Textadventure Nostalgie zu schnuppern, aber denkt dran die Textadventure von Infocom sind sauschwer zu lösen aber machen viel Spass:
Ach so etwas zur Ironie von den Infocom Adventuren, geht mal auf das Online Spiel von Zorc:
http://www.ifiction.org/games/play.p...me=2&mode=html
Zitat:
MINI-ZORK I: The Great Underground Empire
Copyright (c) 1988 Infocom, Inc. All rights reserved.
ZORK is a registered trademark of Infocom, Inc.
Release 34 / Serial number 871124
West of House
You are standing in an open field west of a white house, with a boarded front
door. You could circle the house to the north or south.
There is a small mailbox here.
>kill mailbox
[What do you want to kill the mailbox with?]
>kill mailbox with bare hands
Fighting a small mailbox!?!
>Fight small mailbox with bare hands
I've known strange people, but fighting a mailbox?
|
Wie gesagt wenn man da Schrott eingibt kontert der Parser von Infocom sehr geschickt..