Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Textadventure mit mdTypes

Uploader:RedakteurMOD
Datum/Zeit:02.11.2013 18:56:00

#Include Once "md/util/mdList.bi"
#Include Once "md/util/mdMap.bi"

'########################################

'Item Klasse
Type Item
    Declare Constructor ()
    Declare Operator Cast() As String

    As String itemName
End Type
Constructor Item ()

End Constructor
Operator Item.Cast() As String
    Return itemName
End Operator
Operator = (ByRef lhs As Item, ByRef rhs As Item) As Integer
    Return lhs.itemName = rhs.itemName
End Operator

'########################################

'Wir bereiten ein paar Items vor
Dim As Item backofen
backofen.itemName = "Backofen"

Dim As Item microwelle
microwelle.itemName = "Microwelle"

Dim As Item bett
bett.itemName = "Bett"

Dim As Item fernseher
fernseher.itemName = "Fernseher"

'########################################

'Vorbereiten der Liste, damit sie unsere Items halten kann
mdListDeclare(Item)

'########################################

'Raum Klasse
Type Raum
    Declare Constructor ()
    Declare Operator Cast() As String

    As mdList(Item) itemListe
End Type
Constructor Raum ()

End Constructor
Operator Raum.Cast() As String
    Return Str(itemListe)
End Operator
Operator = (ByRef lhs As Raum, ByRef rhs As Raum) As Integer
    Return lhs.itemListe = rhs.itemListe
End Operator

'########################################

'Vorbereiten der Map, damit sie einen String-Schlüssel und einen Raum dazu halten kann
mdMapDeclare(String, Raum)

'########################################

'Nun erstellen wir ein paar Räume
Dim As Raum kueche
kueche.itemListe.add(backofen)
kueche.itemListe.add(microwelle)

Dim As Raum schlafzimmer
schlafzimmer.itemListe.add(bett)

Dim As Raum wohnzimmer
wohnzimmer.itemListe.add(fernseher)

'########################################

'Wir deklarieren unser Haus mit seinen Räumen und stecken die Räume da rein
Dim As mdMap(String, Raum) haus

Dim As Raum tempRaum 'wird nur temporär gebraucht
tempRaum = haus.put("Kueche", kueche)
tempRaum = haus.put("Schlafzimmer", schlafzimmer)
tempRaum = haus.put("Wohnzimmer", wohnzimmer)

'########################################

'Nun zum Programm:
Dim As mdSet(String) raeume = haus.keySet()

Print "Du betrittst das Haus, wohin gehst du?"

Do
    Dim As String raumName
    ForEach (String, raumName In raeume)
        Print " -" & raumName
    NextEach
    Print " -Exit"

    Input raumName

    If haus.containsKey(raumName) Then
        Print "In diesem Raum befinden sich folgende Items:"

        Dim As mdList(Item) items = haus.get(raumName).itemListe
        Dim As Item tempItem
        ForEach (Item, tempItem In items)
            Print " -" & tempItem.itemName
        NextEach

    ElseIf raumName = "Exit" Then
        Print
        Print "Du verlaesst das Haus."
        Print
        Exit Do

    Else
        Print "Die Eingabe wurde nicht erkannt, bitte versuche es nochmal."

    EndIf

    Print
    Print "Wohin nun?"
Loop

Print "Zum Beenden beliebige Taste druecken."
Sleep