schiffeversenken KI

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: schiffeversenken KI

BeitragDi, Sep 11, 2007 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Wie nun auch der innaktivste benutzer nicht übersehen konnte, dass ich ein Schiffeversenken progge,
muss ich euch nun noch ein letztes mal ärgern.

Könnt ihr mir sagen,wie ich am besten hinbekomme, dass der gegneer, wenn er getroffen hat dann logisch weiterschießt.
Das heißt:

Dass er 4 richtungen ausprobiert.
Sobald er dann wieder getroffen hat macht er in der richtung weiter...
Könnt ihr mir n paar tipps geben, wie ich das am besten hinbekomme??

Weil ich hab mir gestern 2 functions gebastelt, die das normal machen sollten.
Die sind aber inzwischen so verbuggt, dass ich die wegschmeißen kann.
Wäre also echt nett, wenn ihr mir da noch n paar tipps geben könntet

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

SpionAtom

BeitragDi, Sep 11, 2007 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ich zwar gemacht, aber schwer stell ich mir das nicht vor.
Voraussetzung ist, dass der Computer ein Schiffstück gefunden hat, das das Schiff noch nicht versenkt hat.
Dann schaut man alle vier Richtungen ab. Findet man ein weiteres Stück, so weiß man, welche Lage das Schiff hat, und kann dementsprechend weiter suchen. Hm, ich werde das mal mit Code verdeutlichen...
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

Smily

BeitragDi, Sep 11, 2007 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
mas3 du konntest alles, was du willst doch schonmal wörtlich formulieren. Jetzt musst du das gesagte eben nur noch in einen Code übersetzen.

Soviel sei gesagt: du wirst zwichen den verschiedenen zügen der KI variablen übernehmen müssen, also die Aktuelle position(x und y) und die Richtung, in der der PC versuchen soll das schiff zu versenken.. (wenn er daneben ballert einfach die nächste Richtung ausprobieren)

gruß,
Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

BigMaexle

BeitragDi, Sep 11, 2007 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich stimm Smiley voll zu.

Du hast ein ganz normales Problem, dann lös es wie es ein Programmierer macht also wie? was willst du?

du willst das:

Code: [AUSKLAPPEN]

Wenn (IF) das geschosenne Feld (Feld(Gegner_GeschossenX,GegnerGeschossenY) ein Spielerfeld ist (= "Spieler") dann (then)

(Wie ist die Realität? man wählt ein Zufallsfeld um das geschossene FEld aus)
Richtung = Rand(1,4)
If  Richtung= 1 then Gegner_GeschossenX=GEgner_GeschossenX-1
If  Richtung= 2 then Gegner_GeschossenX=GEgner_GeschossenX+1

If  Richtung= 3 then Gegner_GeschossenY=GEgner_GeschossenY-1
If  Richtung= 4 then Gegner_GeschossenY=GEgner_GeschossenY+1
(fertig) endif


DAs ist natürlich nicht komplett spielfähig aber vom Prinzip richtig (hoffentlich^^) Jetzt brauchst du noch eine 2. Abfrage für das weitere in die richtige Richtung Ballern. Aber so von Prinzip müsste so ein recht kleines Problem schnell gelöst werden Wink

[/code]
--------------------------------------
Ich bin unfreiwillig ein Mitglied dieser kapitalistischen Gesellschaft, wo jeder Geldgeile Unternehmer an mein Geld will und ich selbst bei meinen Entscheidungen so gut wie willenlos bin...... und ich bin glücklich drüber

mas93

BeitragMi, Sep 12, 2007 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
jo, so ähnlich habe ich das ja auch.
Nur es will nicht.

Ich hab jetzt mal code + testbilder hochgeladen.
Wäre nett wenn ihr euch das mal anschauen könntet.
Also das wären die beiden funktionen gegnerschuss() und weiterschuss()

Wäre echt nett wen sich einer die Zeit nehmen könnte.
Weil ich wollte das Spiel eigentlich demnächst rausbringen.

Ich weiss, dass der code nicht schön ist und ziemlich kompliziert gemacht ist, obwohl man es viel einfacher machen könnte.

Aber mir geht es jetzt gerade nur um die KI vom gegner.


mfg
mas93

Seafight v0.5 DOWNLOAD
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

darth

BeitragMi, Sep 12, 2007 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde (nein nicht wirklich, aber man könnte) es so machen:
du hast ja (hoffentlich) ein array in welchem die schiffe des computers (und des spielers) platziert sind.
du nimmst einen neuen array mit gleicher grösse. in diesem berechnest du alle möglichkeiten, die schiffe zu platzieren, und summierst (sollte ein feld getroffen werden) die getroffenen felder auf. (also wenn bei einer neuen kombination ein feld getroffen wird, wird dort 1 dazu gezählt). so erhältst du die grösste wahrscheinlichkeit (grösste summe des feldes) des feldes das mit einem schiff besetzt ist. dieses feld schiesst du dann ab.
Diese Signatur ist leer.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group