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.
@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
@hkdd So beim groben Überfliegen scheinen das doch schon sehr spezielle Probleme zu sein, mit denen du da kämpfst. Ohne dein Setup zu reproduzieren (schon etwas mehr als nur einmal den Compiler anzuwerfen und daher aufwändiger) wird es wohl nur bei sehr offensichtlichen Dingen jemanden geben, der dir nur vom Quellcode-Lesen her helfen kann.
Dennoch gut, dass du deine Erkenntnisse hier dokumentierst. Vielleicht hilft das ja irgendwann mal jemandem weiter
@hustbaer ,
ich habe auf meinem Laptop, auf dem auch Win10 und 11 parallel installiert sind, in der Win10 Registry gesucht, da steht sogar beim normalen Eintrag
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
bei ProductName: "Windows 10 Enterprise"
auch bei CompositionEditionID steht => Enterprise statt Pro
Und bei WOV6432Node steht auch überall Enterprise.
Wenn ich SystemInfo aufrufe, wird korrekt Windows 10 Pro angezeigt. Ach bei WinVer ist alles korrekt.
Hallo,
ich versuche meine Unittests auf der Kommandozeile mittels MSBuild.exe auszuführen und scheitere kläglich. Das Netz ist sonst voll von Tutorials, aber in diesem Fall ist es nicht so pralle.
Was ich gefunden habe, ist folgende Projektdatei, die ich schon mal soweit auf mein Projekt angepasst habe:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="KernelTest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask AssemblyFile=".\packages\MSTest.TestFramework.2.1.2\lib\uap10.0\Microsoft.VisualStudio.TestPlatform.TestFramework.dll" TaskName="Runner.MSBuild"/>
<Target Name="KernelTest">
<ItemGroup>
<SolutionToBuild Include="cSharpLibraries.sln"/>
<TestContainer Include=".\KernelTests\bin\Debug\KernelTests.dll"/>
</ItemGroup>
<MSBuild Projects="@(SolutionToBuild)"/>
</Target>
</Project>
Wenn ich MSBuild nun ausführe, bekomme ich folgende Fehlermeldung:
cSharpLibraries.test.csproj(9,3): error MSB4062: Die Runner.MSBuild-Aufgabe konnte nicht aus der ???\cSharpLibraries\.\packages\MSTest.TestFramework.2.1.2\lib\uap10.0\Microsoft.VisualStudi
o.TestPlatform.TestFramework.dll-Assembly geladen werden. Stellen Sie sicher, dass die <UsingTask>-Deklaration korrekt ist, die Assembly und alle zugehörigen Abhängigkeiten verfügbar sind und die Aufgabe eine öffentliche Klasse enthält
, die Microsoft.Build.Framework.ITask implementiert.
Hat jemand eine Idee?
Vielen Dank im Voraus
VG Torsten