Spielfeld Schiffe versenken

Spielfeld Schiffe versenken. Programmieren via FlexGrid, TrueGrid
Probleme: Picture können nicht geladen werden;
Private spielfeld() As Boolean, spielfeldAufbau As Variant sowie: SelStartCol und SelStartRow gibt es nicht.
Sub spielfeldBelegen()
Dim spalte%, zeile%, konvoiGröße%, schiffNr%, s%
Dim vertikalAusrichtung As Boolean, konvoiOk As Boolean
ReDim spielfeld(10, 10)
spielfeldAufbau = Array(6, 5, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1) Anzahl und Größe der Konvois festlegen.
Randomize Timer Zufallszahlengenerator initialisieren.
For schiffNr = 0 To UBound(spielfeldAufbau) Alle Konvois zusammenbauen.
konvoiGröße = spielfeldAufbau(schiffNr) Größe des Konvois bestimmen.
Do Startfeld finden, das nicht belegt ist und Platz für Konvoi bietet.
konvoiOk = True Am Anfang darf der Konvoi gesetzt werden.
spalte = Int(Rnd * 10) + 1 Koordinaten für Startfeld ermitteln.
zeile = Int(Rnd * 10) + 1
If spielfeld(spalte, zeile) = True Then Ist das Feld schon belegt?
konvoiOk = False
Else
vertikalAusrichtung = Rnd > 0.5 Nein. Dann prüfen, ob Konvoi Platz hat.
If vertikalAusrichtung Then
konvoiOk = (zeile + konvoiGröße) <= 10 Ist genug Platz für den Konvoi?
If zeile + konvoiGröße < 10 Then Ist das Nachbarfeld am Ende des Konvois belegt?
If spielfeld(zeile + konvoiGröße + 1, spalte) = True Then
konvoiOk = False
End If
End If
If konvoiOk Then Alle Bedingungen für das Setzen des Konvois erfüllt?
For s = 1 To konvoiGröße Ja, dann prüfen ob alle Felder leer sind.
If spielfeld(zeile + s, spalte) = True Then
konvoiOk = False
Exit For
End If
Next s
End If
Else
konvoiOk = (spalte + konvoiGröße) <= 10 Konvoi soll in die Horizontale gehen.
If spalte + konvoiGröße < 10 Then Ist das Nachbarfeld am Ende des Konvois belegt?
If spielfeld(zeile, spalte + konvoiGröße + 1) = True Then
konvoiOk = False
End If
End If
If konvoiOk Then Sind alle Bedingungen für das Setzen des Konvois erfüllt?
For s = 1 To konvoiGröße
If spielfeld(zeile, spalte + s) = True Then
konvoiOk = False
Exit For
End If
Next s
End If
End If
End If
Loop While konvoiOk = False
For s = 0 To konvoiGröße - 1 Konvoi hat genug Platz. Schiffe setzen.
If vertikalAusrichtung Then Konvoi wird in vertikaler Richtung aufgebaut.
zeile = zeile + 1
Else
spalte = spalte + 1
End If
spielfeld(zeile, spalte) = True
grdSpielfeld.Row = zeile
grdSpielfeld.Col = spalte
' grdSpielfeld.Picture = _
imgSpielstein(konvoiGröße).Picture
Grid funktioniert nicht. (Das für den Konvoityp typische Bild auswählen.)
Next s
Next schiffNr
End Sub
Private Sub Form_Load()
Dim n%, m%, spalte%, zeile%, anzahlSchiffe%
grdSpielfeld.Rows = 11 Als erstes das Spielfeld aufbauen.
grdSpielfeld.Cols = 11
grdSpielfeld.Row = 0
grdSpielfeld.ColWidth(0) = 400
For n = 1 To 10
grdSpielfeld.Col = n
grdSpielfeld.Text = Chr(n + 64)
Next n
grdSpielfeld.Col = 0
For n = 1 To 10
grdSpielfeld.Row = n
grdSpielfeld.Text = n
Next n
For n = 1 To grdSpielfeld.Rows - 1
grdSpielfeld.ColWidth(n) = 800
grdSpielfeld.ColAlignment(n) = vbCenter
grdSpielfeld.RowHeight(n) = 800
Next n
grdSpielfeld.Width = grdSpielfeld.ColWidth(1) * (grdSpielfeld.Cols)
grdSpielfeld.Height = grdSpielfeld.RowHeight(1) * (grdSpielfeld.Rows)
Me.Width = grdSpielfeld.Width * 1.05
Me.Height = grdSpielfeld.Height * 1.1
spielfeldBelegen
For zeile = 1 To 10
For spalte = 1 To 10
If spielfeld(zeile, spalte) = True Then anzahlSchiffe = anzahlSchiffe + 1
Next spalte
Next zeile
Me.Caption = Me.Caption & " - Anzahl der Schiffe: " & anzahlSchiffe
End Sub
Private Sub grdSpielfeld_Click()
Dim treffer, pluralWort1$, pluralWort2$, n%, m%
treffer = 0 Initialisierung notwendig, da Variant.
'If grdSpielfeld.SelStartCol <> grdSpielfeld.SelEndCol Or grdSpielfeld.SelStartRow <> grdSpielfeld.SelEndRow Then Grid funktioniert nicht.
' For n = grdSpielfeld.SelStartRow To grdSpielfeld.SelEndRow Grid funktioniert nicht.
' For m = grdSpielfeld.SelStartCol To grdSpielfeld.SelEndCol Grid funktioniert nicht.
If spielfeld(n, m) = True Then
treffer = treffer + 1
End If
' Next m Grid funktioniert nicht.
' Next n Grid funktioniert nicht.
pluralWort1 = IIf(treffer = 1, "befindet", "befinden")
pluralWort2 = IIf(treffer = 1, " Schiff", " Schiffe")
MsgBox "In dem Bereich " & pluralWort1 & " sich " & treffer & pluralWort2, 48, "Statusbericht"
Exit Sub
'End If Grid funktioniert nicht.
If spielfeld(grdSpielfeld.Row, grdSpielfeld.Col) = True Then
treffer = "ein"
Else
treffer = "kein"
End If
MsgBox "Auf " & Chr(grdSpielfeld.Col + 64) & grdSpielfeld.Row & " ist " & treffer & " Schiff", 48, "Erfolgsmeldung"
End Sub
Private Sub mnuNeuesSpielfeld_Click()
Dim zeile%, spalte%
For zeile = 1 To 10
grdSpielfeld.Row = zeile
For spalte = 1 To 10
grdSpielfeld.Col = spalte
' grdSpielfeld.Picture = LoadPicture() Grid funktioniert nicht.
Next spalte
Next zeile
spielfeldBelegen
End Sub
.
Sponsoren und Investoren

Sponsoren und Investoren sind jederzeit herzlich willkommen!
Wenn Sie die Information(en) auf dieser Seite interessant fanden, freuen wir uns über eine kleine Spende. Empfehlen Sie uns bitte auch in Ihren Netzwerken (z. B. Twitter, Facebook oder Google+). Herzlichen Dank!

Nach oben Sitemap
Impressum & Kontakt