Schiffe versenken

  • Allgemein

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    Schiffe versenken

    Hi Leute,

    ich würde gerne ein Spiel programmieren. Ich hatte da Schiffe versenken im Sinn, allerdings bin ich in Visual Basic nicht sonderlich weit, weshalb eine primitive Version erst mal reichen würde. Diese ließe sich ja schließlich noch erweitern.

    Ich bin nun soweit, dass ich 2 Userformen habe. In jeder Userform sind 2 Kästchen von 2x2 Kästchen Größe.

    Diese färben sich beim anklickenb schwarz. Ich wollte es erst mal so machen, dass ein Kasten ein Schiff darstellt, das dann evtl. noch auf ein großes Feld übertragen.

    Die Abfrage, ob die Schiffe auch richtig platziert werden lasse ich erst mal raus.

    Nun meine Frage:

    Wie kann ich den Beschuss darstellen? So mit Treffer und nicht getroffen und so. Vielleicht wüsstet ihr auch noch, wie ich das zweite Kästchen einbinden kann, wo dann angezeigt wird welches getroffen wurde welches nicht. Vielleicht durch verschiedene Farben.

    Ich bin nun soweit, dass ich den einzelenen Labels erstmal Namen gebe. Also z.B Sektor = 1, Sektor = 2 und so weiter. Ich benutze Den VB-Editor in Microsoft Office Word 2003.

    Hier mein Code aus der ersten Userform:

    VB.NET-Quellcode

    1. Private Sub CommandButton1_Click()
    2. Unload Me
    3. spiel2.Show
    4. End Sub
    5. Private Sub Label1_Click()
    6. feld = 1
    7. schwarz = &H0&
    8. Label1.BackStyle = fmBackStyleOpaque
    9. Label1.BackColor = schwarz
    10. End Sub
    11. Private Sub Label2_Click()
    12. feld = 2
    13. schwarz = &H0&
    14. Label2.BackStyle = fmBackStyleOpaque
    15. Label2.BackColor = schwarz
    16. End Sub
    17. Private Sub Label3_Click()
    18. feld = 3
    19. schwarz = &H0&
    20. Label3.BackStyle = fmBackStyleOpaque
    21. Label3.BackColor = schwarz
    22. End Sub
    23. Private Sub Label4_Click()
    24. feld = 4
    25. schwarz = &H0&
    26. Label4.BackStyle = fmBackStyleOpaque
    27. Label4.BackColor = schwarz
    28. End Sub
    29. Private Sub Label5_Click()
    30. feld = 5
    31. schwarz = &H0&
    32. Label5.BackStyle = fmBackStyleOpaque
    33. Label5.BackColor = schwarz
    34. End Sub
    35. Private Sub Label6_Click()
    36. schwarz = &H0&
    37. Label6.BackStyle = fmBackStyleOpaque
    38. Label6.BackColor = schwarz
    39. End Sub
    40. Private Sub Label7_Click()
    41. schwarz = &H0&
    42. Label7.BackStyle = fmBackStyleOpaque
    43. Label7.BackColor = schwarz
    44. End Sub
    45. Private Sub Label8_Click()
    46. schwarz = &H0&
    47. Label8.BackStyle = fmBackStyleOpaque
    48. Label8.BackColor = schwarz
    49. End Sub
    50. Private Sub UserForm_Click()
    51. End Sub


    Danke schon mal im Vorraus



    SVVB09
    Ich glaube dass das mit Buttons nicht gut lösbar ist. Du solltest eher Bilder einbauen im Form und diese dann je nach Situation austauschen. Das heisst du brauchst verschiedene Bilder: See, Schiff getroffen usw...

    Vielleicht wäre auch Visual Basic Express 2008 was für dich, ist kostenlos.
    Hat sich eh schon gelöst. Ich habs jetzt anders hinbekommen :D

    Neue Frage:

    Wie begrenze ich die Anzahl der setzbaren Schiffe auf 3? Sie müssen auch nicht in besonderer Reihenfolge stehen.

    Ich habe eine Variable definiert und würde das nun mit einem if Befehl machen.

    Aber wie sage ich, dass wenn die Anzahl schwarzer Punkte größer als 3 ist man keine mehr setzen kann?
    In VB ist es leider nicht direkt falsch, sondern einfach nur sehr, sehr, sehr unsauber:
    1. Wenn im String nicht nur Ziffern stehen, treten Fehler auf.
    2. String-Arithmetik existiert de facto nicht, daher untersucht die Laufzeitumgebung erst, was für ein Typ Zahl da drinn steht, konvertiert in den entsprechenden Datentyp, führt den Arithmetikbefehl durch und konvertiert in String zurück. Allein an der Länge der Erklärung, was passiert, siehst du schon, dass es für eine einfache Addition zu viel ist.
    3. Es verbraucht mehr Speicher. Das kann durchaus mal von Belang sein, wenn es ganze viele Zahlen werden.

    Man kann mit der stumpfen Seite eines Beils auch Nägel einschlagen, ja, aber mit einem Hammer geht es besser. Und kein normaler Mensch nimmt ein Beil dafür, wenn er auch einen Hammer hat.