schiffe versenken mit Visual Basic?
Ich würde gerne ein "Schiffe versenken spiel" programmieren, sodass man im selben Netzwerk zusammen zu 2 spielen kann.
Allerdings bin ich ein ziemlicher Neuling in diesem gebiet und bräuchte dabei Hilfe 🤔 ich habe bis jetzt ein 9x9 Feld aus Buttons und um das Aussehen hab ich mich bereits gekümmert. Der Client kann sich auch schon mit dem server verbinden und man kann ebenfalls chatten. Ich habe allerdings absolut keine Ahnung, was nun in den Programmcode soll.
Ich hatte gerne, dass:
1. sich die Buttons orange färben, wenn man getroffen hat und weiß, wenn man daneben geschossen hat.
2. dass es rundenbasiert ist
3. dass der andere ebenfalls Nachrichten bekommt, wenn man ihn getroffen hat.
Danke schonmal für die Hilfe 😊


1 Antwort
Also ehrlich gesagt werde ich mir nicht die Mühe machen, den Quellcode auf deinem Bild zu entziffern.
1.) Wenn geschossen wurde, musst du diese Nachricht ja an den anderen Client schicken, um zu erfahren, ob getroffen wurde oder nicht. Je nachdem, wie das Ergebnis lautet, kannst du doch die Farbe des Button ändern.
button.BackColor = Color.Orange 'ob es die Farbe Orange wirklich als vordef. Konstante gibt, müsstest du mal nachschauen
2.) Rundenbasiert bedeutet?
der Server, die Nachrichten ausschicken, denn er kennt die Clients (kann also über diese iterieren und jeweilige Methode von ihnen aufrufen).3.) Wie ist denn deine Architektur aufgebaut? Hast du nur einen Server und einen Client oder 2 Clients und einen Server? Bei einer Server-Client-Architektur muss
Aja. Das bedeutet, du solltest für dein Spiel ein Feld/Attribut anlegen, welches über seinen Zustand definiert, welcher Spieler aktuell am Zug ist. Je nachdem werden entweder Anfragen des nichtaktiven Spielers ignoriert oder besser, seine Eingabeelemente temporär deaktiviert.
Der Client benötigt also 2 Methoden: enable und disable, welche der Server nach jeder Spielrunde je nach Fall aufruft.
(...) dass der andere ebenfalls Nachrichten bekommt, wenn man ihn getroffen hat (...)
Aber der Chat auf beiden Seiten funktioniert doch bereits? Nicht groß anders funktioniert es in diesem Fall.
Wenn Spieler X die Anfrage stellt, ob er getroffen hat, wird in der Methode, welche darauf reagiert, zugleich die Antwort zurückgeschickt.
Rundenbasiert soll heißen, dass man nur 1 mal schießen kann, es sei denn, man trifft etwas und wenn man nicht trifft ist der Gegner halt dran. Ich habe 1 Server und 1 Client