[13. Nov 2022] Upgrade auf SMF 2.1.
Zitat von: Stiepen am 29. August 2011, 18:40:20Die Webseite wurde auch zu einer Zeit gestaltet, als noch niemand 64-Bit-Systeme hatte und deswegen steht Windows dort generell für 32-Bit-Windows.
Auf der Webseite steht was anderes...
Zitat von: Jojo am 29. August 2011, 15:41:08Ok, wusste ich nichtZitat von: Stiepen am 29. August 2011, 01:15:41Das war mir auch klar und deswegen habe ich ja auch so geantwortet.
das bezog sich eher auf hintergrundmusik, aber ich leite es mal witer...
ZitatOk, hatte aber die Code-Funktion nicht gesehehenZitatSagmal Jojo, kannste nicht ne Spoilerfunktion ins Forum einbauen?Der Code wird doch in der Größe begrenzt, das reicht völlig. Ich installiere keine Forenmods, die machen nur das Aktualisieren den Forensoftware zum Albtraum.
ZitatAuf der Webseite steht was anderes...ZitatEDIT: Mir fällt grad auf Dungeon2 läuft unter Win7 64-Bit nichtKlar, ist ja auch wie ein Großteil meiner Spiele ein DOS-Spiel.
Zitat von: Stiepen am 29. August 2011, 01:15:41Das war mir auch klar und deswegen habe ich ja auch so geantwortet.
das bezog sich eher auf hintergrundmusik, aber ich leite es mal witer...
ZitatSagmal Jojo, kannste nicht ne Spoilerfunktion ins Forum einbauen?Der Code wird doch in der Größe begrenzt, das reicht völlig. Ich installiere keine Forenmods, die machen nur das Aktualisieren den Forensoftware zum Albtraum.
ZitatEDIT: Mir fällt grad auf Dungeon2 läuft unter Win7 64-Bit nichtKlar, ist ja auch wie ein Großteil meiner Spiele ein DOS-Spiel.
Public Class clsHotelKette
#Region "Declares (Private)"
Private _Geld As UInt64
Private _Hotels As List(Of clsFiliale)
#End Region
#Region "Declares (Public)"
Public Event MoneyChanged(ByVal sender As System.Object, ByVal e As EventArgs)
Public Event GameOver(ByVal sender As System.Object, ByVal e As GameOverEventArgs)
Public Structure GameOverEventArgs
Dim Reason As GameOverReason
End Structure
Public Enum GameOverReason
Unknown = 0
NotEnougthMoney = 1
HotelToBad = 2
End Enum
#End Region
#Region "Propertys (Public)"
''' <summary>
''' Das Geld, dass dem Spieler zur Verfügung steht
''' </summary>
''' <value>Der Wert in $</value>
''' <returns>Der Wert in $</returns>
''' <remarks></remarks>
Public Property Money As UInt64
Set(ByVal value As UInt64)
If value < GameOverMoney Then
Dim tmpEventArgs As GameOverEventArgs
tmpEventArgs.Reason = GameOverReason.NotEnougthMoney
RaiseEvent GameOver(Me, tmpEventArgs)
Else
_Geld = value
RaiseEvent MoneyChanged(Me, Nothing)
End If
End Set
Get
Return _Geld
End Get
End Property
#End Region
#Region "Methoden/Funktionen (Private)"
#End Region
#Region "Methoden (Public)"
''' <summary>
''' Fügt der Liste der Filialen eine neue Filiale hinzu
''' </summary>
''' <param name="Filiale">Die hinzuzufügende Filiale</param>
''' <exception cref="NotConstructedException">Der Konstruktor der übergebenden Filiale wurde noch nicht aufgerufen</exception>
''' <exception cref="ArgumentException">Es existiert bereits eine Filiale mit dem angegebenen Nameen</exception>
''' <remarks></remarks>
Public Sub AddFiliale(ByVal Filiale As clsFiliale)
For Each el In _Hotels
If el.Name = Filiale.Name Then
Throw New ArgumentException("Es existiert schon eine Filiale mit diesem namen")
Else
If Filiale.IsConstructed Then
_Hotels.Add(Filiale)
Else
Throw New NotConstructedException("Der konstrukter der Filiale wurde nicht aufgerufen")
End If
End If
Next
End Sub
#End Region
End Class
Public Class clsFiliale
#Region "Declares (Private)"
Private _Name As String
Private _isConstructed = False 'Wurde der Konstruktor aufgerufen?
Private _Hotel(102, 99) As Roominfo
#End Region
#Region "Declares (Public)"
Public Enum RoomType As Integer
Kein = 0 'Hier ist Luft
Leer = 1 'Leerer Raum
'---Wohnen---
EinzelNormal = 2
DoppelNormal = 3
EinzelLuxus = 4
EinzelLuxs = 5
Suite = 6
'---Attraktionen---
Kiosk = 7
Gesellschaft = 8
Casino = 9
Sporthalle = 10
Schwimmbad = 11
Kino = 12
'---Sonstige---
Empfang = 13 '13 - Muhahaha da krigt man ja schon beim check-in das kalte grausen ;)
Küche = 14
Tiefgarage = 15
Kühlraum = 16
Aufzug = 17
End Enum
Public Enum RoomPosition As Integer
none = 0
Links = 1
Rechts = 2
ObenLinks = 1
ObenRechts = 2
UntenLinks = 3
UntenRechts = 4
End Enum
Public Structure RoomInfo
Dim Type As RoomType
Dim Position As RoomPosition 'Nur für mehrfeld-Räume interessant
Dim Belegt As Boolean
Dim BelegtTage As UInteger 'Wenn ja, wie lange noch?
End Structure
#End Region
#Region "Propertys (Public)"
''' <summary>
''' Der Name der Filiale
''' </summary>
''' <value> Der Name der Filiale</value>
''' <returns> Der Name der Filiale</returns>
''' <exception cref="ArgumentException">Ungültiger Name</exception>
''' <remarks></remarks>
Public Property Name As String
Set(ByVal value As String)
Select Case value
Case ""
Throw New ArgumentException("Der Name kann nicht leer Sein")
Case value.Length > 32
Throw New ArgumentException("Der Name darf Maximal 32 Zeichen lang sein")
Case Else
_Name = value
End Select
End Set
Get
Return _Name
End Get
End Property
''' <summary>
''' Prüft, Ob bereits der Constructor aufgerufen wurde
''' </summary>
''' <returns>Ein Boolscher Wert, der Angibt, ob der Konstruktor bereits aufgerufen wurde</returns>
''' <remarks></remarks>
Public ReadOnly Property IsConstructed
Get
Select Case _isConstructed
Case True
Return True
Case False
Return False
Case Else 'schließt den Fall nothing ein
Return False
End Select
End Get
End Property
#End Region
#Region "Methoden/Funktionen (Private)"
#End Region
#Region "Methoden/Funktionen (Public)"
''' <summary>
''' Erstellt eine neue Instanz
''' </summary>
''' <param name="FilialenName">Der Name der Neuen Filiale</param>
''' <exception cref="ArgumentException">Ungültiger Name</exception>
''' <remarks></remarks>
Public Sub New(ByVal FilialenName As String)
Try
Name = FilialenName
_isConstructed = True
Catch ex As Exception
Throw ex 'Die Arbeit an den Aufrufenden delegieren - Nein, wir sind nicht faul ;) *unschuldig*
End Try
End Sub
''' <summary>
''' Setzt die Informationen für ein Hotelzimmer
''' </summary>
''' <param name="Etage">Die Etage des Zimmers: U2 = -2; U1 = -1; EG = 0; OGxx = xx</param>
''' <param name="ZimmerNr">Vertikale Zimmerposition 1 = ganz Links</param>
''' <param name="value">Der Wert den Das Zimmer erhalten soll</param>
''' <remarks></remarks>
Public Sub SetRoomInfo(ByVal Etage As Int16, ByVal ZimmerNr As UInt16, ByVal value As RoomInfo)
_Hotel(Etage + 2, ZimmerNr - 1) = value
End Sub
''' <summary>
''' Gibt die Informationen für ein Hotelzimmer zurück
''' </summary>
''' <param name="Etage">Die Etage des Zimmers: U2 = -2; U1 = -1; EG = 0; OGxx = xx</param>
''' <param name="ZimmerNr">Vertikale Zimmerposition 1 = ganz Links</param>
''' <returns>Der Wert den Das Zimmer derzeit hat</returns>
''' <remarks></remarks>
Public Function getRoomInfo(ByVal Etage As Int16, ByVal ZimmerNr As UInt16)
Return _Hotel(Etage + 2, ZimmerNr - 1)
End Function
#End Region
End Class