AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Tipps und Ratschläge für Spiel & für effizientes Programmieren

Tipps und Ratschläge für Spiel & für effizientes Programmieren

Ein Thema von Danny92 · begonnen am 27. Aug 2017 · letzter Beitrag vom 5. Sep 2017
Antwort Antwort
Seite 4 von 4   « Erste     234
Benutzerbild von Danny92
Danny92
Registriert seit: 18. Aug 2014
Jetzt habe ich das Schiffe versenken soweit fertig gestellt und stelle es euch hier zur Verfügung. Ich bin für jeden Tipp, Verbesserungsvorschlag, konstruktive Kritik oder neuen Einfall jederzeit dankbar. Schlussendlich geht es mir neben der Kritik nun nur noch darum, etwas an Performance rauszuholen, denn bei aktivem Spielen mit der KI läuft meine - wenn auch nicht gerade schnellste - CPU immerhin schon bei ca. 33%. Ist das eurer Meinung nach normal bei einem Programm diesem Formats? Oder ist das schlichtweg "schlecht" programmiert? Wie sieht eure CPU-Auslastung aus? Denn bis jetzt konnte ich nicht erkennen woran das liegt, da ich mit effizientem Programmieren noch nicht so vertraut bin bzw. es selten das Problem war. Das Neuzeichnen der StringGrids oder das Vorausberechnen des nächsten Schusses der KI scheint es schon mal nicht zu sein.
Vielen Dank für eure kompetente Hilfe!

PS: Da das Programm wegen der Resource zu groß ist, muss es hier verlinkt werden. Minen sind noch nicht implementiert.
Angehängte Dateien
Dateityp: zip Schiffe versenken - fertig - Kopie.zip (958,6 KB, 29x aufgerufen)

Geändert von Danny92 (27. Aug 2017 um 19:32 Uhr)
 
Benutzerbild von Danny92
Danny92

 
Delphi 10.2 Tokyo Starter
 
#31
  Alt 3. Sep 2017, 22:33
Ok ich habe den Fehler gefunden^^
  Mit Zitat antworten Zitat
HolgerX

 
Delphi 6 Professional
 
#32
  Alt 4. Sep 2017, 04:19
Hmm..


Ok ich habe den Fehler gefunden^^
Und was war es?
  Mit Zitat antworten Zitat
Benutzerbild von Danny92
Danny92

 
Delphi 10.2 Tokyo Starter
 
#33
  Alt 4. Sep 2017, 04:38
Der Case-Zweig in SetzeFlotte musste wie folgt abgeändert werden:

Delphi-Quellcode:
            case k of
            0: if a.Y >= i then
                 b := Point(a.X, a.Y - i + 1)
                else
                  richtungProbiert[0]:=True;
            1: if a.Y + i - 1 <= feldgroesse then
                 b := Point(a.X, a.Y + i - 1)
               else
                 richtungProbiert[1]:=True;
            2: if a.X >= i then
                 b := Point(a.X - i + 1, a.Y)
               else
                 richtungProbiert[2]:=True;
            3: if a.X + i - 1 <= feldgroesse then
                 b := Point(a.X + i - 1, a.Y)
               else
                 richtungProbiert[3] := True;
            else

            end;
  Mit Zitat antworten Zitat
Delphi-Laie

 
Delphi 10.1 Berlin Starter
 
#34
  Alt 5. Sep 2017, 15:38
Edit: Ein "automatisches" Randomize ist ein zweischneidiges Schwert. Wie will man "vernünftig", "produktiv" debuggen, wenn man keine reproduzierbaren Ergebnisse erhält?
Nicht mit Zufalls werten arbeiten, oder vorher den Test "ordentlich" initialisieren (RandSeed), wenn es nötig ist.

Das mit der Automatik wurde nicht gleich zu beginn eingebaut.
Dachte bei D7 ist es schon da, aber spätestens mit XE ist es so.
Nein, und auch bei Turbo-Delphi (das wohl intern einem Delphi 2006 entsprechen dürfte) gibt es noch kein "automatisches" Randomize.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz