Ich habe mal spaßeshalber folgendes Tutorial erstellt. Über 90% davon wurden mit chatGPT gebastelt. Die Programme laufen (alles getestet).
https://www.henkessoft.de/Csharp/Csharp - 1.htm
Du hast offenbar ein Projekt mit vorkompilierten Headern gemacht. Wenn du nicht weißt, was das ist, solltest du es halt beim Erstellen des Projektes auch nicht anwählen; Microsoft kann da gar nichts dafür. Mach am besten ein neues Projekt und diesmal ohne Precompiled Headers...
@TorDev sagte in Object synchronization method was called from an unsynchronized block of code.:
Ich muss dazu sagen, dass ich im originalen Programm einen Timeout beim Mutex mitgebe, und genau der tritt nämlich auf.
Siehste, und genau deswegen sollte man nie modifizierten Code posten. Auf ein minimales Beispiel reduzieren, ja, das ist gut. Aber der Fehler muss dabei halt noch auftreten.
https://www.henkessoft.de/Windows Forms/Windows Forms Csharp - 1.htm#Pong
Interessante und überschaubare Basisversion für Einsteiger, die das gerne ausbauen wollen. Vor allem der AI Bereich ist sehr einfach gestrickt, damit der Mensch eine Chance hat.
Pong ist eines der ersten und bekanntesten Videospiele (1972 von Atari entwickelt).
Ist die Aufteilung der Module/Klassen in Form, AI, Ball, GameEngine, Paddle ausreichend?
Wie könnte man die AI Strategie schleichend verstärken, ohne dass der Mensch chancenlos wird? Vielleicht adaptiv in Abhängigkeit vom Punktestand?
Snake ist ein Klassiker. Hier beschreibe ich zunächst die Programmierung einer Basisversion für dieses immer hektischer werdende Spiel.
https://www.henkessoft.de/Windows Forms/Windows Forms Csharp - 1.htm#Snake
Empfindet ihr die Aufteilung in Game und Form ausreichend?
@Th69 sagte in C# und WinForms am Beispiel Pixel Maze Challenge:
Bzgl. der Codewiederholungen für pointX und obstacleX
Ich wollte es zunächst einfach halten, habe mit 6 Schätzen und 2 Hindernissen begonnen. Die KI erzeugt wiederholenden Code ruckzuck. Man braucht aber mindestens 8 Schätze und 3 Hindernisse, um es spannend zu machen. Ich habe da noch weitere Ideen für ein Spiel mit mehreren Runden (Zeit verkürzen, mehr Hindernisse, mehr Schätze, Power-Ups (Unbesiegbarkeit, Punkte-Multiplikatoren oder Zeitverlängerungen), unsichtbare Fallen, ...). Schöne Bildchen wären auch lustig, etc.
Aufwand lohnt sich jedoch nur, wenn das Spielprinzip in dieser konkreten Form wirklich interessant ist.
Das erste Projekt davon gefällt mir persönlich ganz gut (bes. auch der Projektaufbau). Die dazugehörige BattleshipsEngine gibt es unter feluelle / battleships-engine.
@Erhard-Henkes
Auch müsste man mal das Verhalten von den USB Ports untersuchen. Habe schon erlebt dass je nach USB Port Geräte erkannt werden oder nicht.
Ich habe zwei Rechner, meinen regulären Arbeits-PC am Arbeitsplatz und meinen Homeoffice-PC zu Hause. Ich verwende auf beiden die aktuelle Visual Studio 2022-Version und das Projekt sollte eigentlich auf beiden gleich sein (git-Repository).
Auf meinem Arbeits-PC erstellt er für 3 meiner Assemblies beim Publish die Ressourcen-dlls zu den entsprechenden Sprachen, zudem gibt es kleine Unterschiede in der Menge und auf Binärebene von den ausgelieferten System-Dlls. Was mir unter anderem auffällt ist eine Differenz in den .net-dlls auf Binärebene "Crossgen2 8.0.624.26715" versus "Crossgen2 8.0.724.31311". Bei der Recherche habe ich herausgefunden, das Crossgen wohl zur .Net Toolchain gehört und mit Optimierungen zu tun hat.
Hat jemand eine Ahnung was die Unterschiede verursachen könnte, bzw. nach was ich für Änderungen ggf. suchen sollte? Ich bin mir zumindest recht sicher, das auf beiden auch der aktuelle Stand vom .net Framework 8 läuft.
Nachtrag:
Man sollte nicht zu schnell von gleichen Ständen reden, hatte auf den einen Rechner doch noch ein .net Framework 8.0.6 und auf den anderen 8.0.7
Sorry, für die späte Rückmeldung.
Habe das Problem lösen können, in dem ich Code aufräumte und nach seinen Aufgaben verteilte.
Ein Teil war reine Debug-Funktionen bezüglich dem verwendeten SDK, andere waren grundlegende Definitionen fürs Messen. Und übrig blieb eine grundlegende Klasse zum Ansteuern eines Tachymeters mit dem verwendeten SDK.
So gefällt mir die Struktur nun besser.
G' Morgen,
das hat mich weiter gebracht, vielen, vielen Dank Habe zwar neue Probleme, aber da habe ich mich vermutlich irgendwo vertan, schaue ich heute morgen nochmal rein.
VG Torsten
Hallo,
also irgendwie ist im Netz nichts zu finden, dass jemand die Hintergrundfarbe dynamisch ändert. Ich fürchte, ich muss das mal Thema mal schieben.
Dennoch vielen Dank für deine Hilfe
VG Torsten
Zwei Programme sollen möglichst bald per Fernwartung bearbeitet werden.
Falls weitergehendes Interesse besteht, dies:
Für eine Reihe von Programmen sind Updates zu erstellen.
Einige bringen beim Kompilieren auch Fehler.
Die vorhandenen können auch als Lernobjekte genutzt werden, sofern diese beiden einwandfrei laufen, Entlohnung nach Absprache.
Könner bekommen gerne 40,00 € / Stunde. Spitzenpersonen nach Absprache auch 80,00 oder mehr.
hmm.. würde ich die ganze funktion einfach in einem neuen Thread wrappen
Task.Wait(new Task(()=> meinFunc());
wäre es besser, das Callback wird allerdings immer im UI Thread bearbeitet, das macht die API darunter so..
Hallo,
@DirkB hatte den richtigen Gedanken. Ich habe natürlich "nur" eine spanische Tastatur eingestellt, die Windows-Anzeige-Sprache aber nicht geändert. Das habe ich nun nachgeholt und siehe da, es erscheint ein <Ctrl> im Dateimenu.
War also doch eine doofe Frage meinerseits
Vielen Dank für eure Hilfe und ein schönes Wochenende noch.
VG Torsten