Spielfeld Schiffe versenken

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
.



 Ranking-Hits zurück Sitemap
Designed by www.wbrnet.info