fb:porticula NoPaste
Textadventure mit mdTypes
Uploader: | MOD |
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