Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 05.12.2011, 14:36 Titel: ESCHECS 0.1 screenshot |
|
|
 |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 05.12.2011, 16:17 Titel: |
|
|
Was den Computergegner angeht, sehr gelungen. Die KI reagiert auf Züge verteidigend falls nötig, ansonsten versucht sie anzugreifen.
Das Spiel an sich ist aber recht umständlich. Statt durch Eingabe der Feldpositionen würde ich meine Maussteuerung klar bevorzugen. Ein Spiel sollte auch nicht direkt beendet werden, wenn man mal nichts eingibt.
Ein Blick in den Code ist das Spiel leider auch nicht Wert. Viele unverständliche Variablennamen, einige GOTOs und alles irgendwie auf knapp 20 Dateien verteilt.
Unabhängig vom Code, mit Maussteuerung wäre es ein super Schachspiel, ohne Maussteuerung leider nicht, also am besten gleich einbauen.  |
|
Nach oben |
|
 |
isiprimax
Anmeldungsdatum: 02.01.2009 Beiträge: 77
|
Verfasst am: 05.12.2011, 21:58 Titel: |
|
|
Ideen für nächste Version:
Maussteuerung
Logbuch der Bewegungen auf dem Spielfeld
Stopuhr für die Spielzüge
Zum "Quältext", ich würde ihn mehr strukturieren, lesbarer machen und Variablnamen eindeutiger benennen. |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 05.12.2011, 23:23 Titel: |
|
|
Vielen Dank für Ihre Antworten und Raten.
Ich werde aufmerksam lesen und denken auf was Sie geschrieben haben.
Bis bald ! |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 10.12.2011, 20:03 Titel: ESCHECS 0.2 |
|
|
Hallo !
Ich möchte euch ESCHECS 0.2 vorstellen.
Maussteuerung ist getan.
Ich habe das Code bearbeitet (besonders Variablennamen).
Vielleicht werde ich die Stoppuhr machen jetzt.
Ich danke Ihnen für die Ermutigungen und kluge Raten. 
Zuletzt bearbeitet von Roland Chastain am 10.12.2011, 20:10, insgesamt 2-mal bearbeitet |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 11.12.2011, 16:19 Titel: |
|
|
Jetzt ich suche wie ich könnte mein Programm mit ein anders (der spielt besser aber hat nur Konsole Spiel) verbinden. Ich studiere die "Open Pipe" Benutzung aber erfloglos.
Kann jemand mir helfen ?
Danke ! |
|
Nach oben |
|
 |
MilkFreeze

Anmeldungsdatum: 22.04.2011 Beiträge: 116
|
Verfasst am: 11.12.2011, 16:52 Titel: |
|
|
Ich hab mir gestern Abend den code angeguckt... 2 tipps:
1. Benutze Funktionen und Subs und schreib die Deklarationen sauber an den Anfang der jeweiligen datei. Damit kannst du die ganzen Gotos loswerden und das ganze wird auch etwas lesbarer. Vielleicht kannst du so auch ein paar codewiederholungen entfernen (hab zwar keine gefunden, aber ich denke du hast welche drin).
2. Sortier deine Includes und benenn sie nach dem, was drin ist um. FooBar01.bas bis FooBar10.bas verwirrt extrem.
Gruß _________________ Milch ftw  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4550 Wohnort: ~/
|
Verfasst am: 11.12.2011, 17:14 Titel: |
|
|
Ein einfaches Beispiel zu OPEN PIPE:
Code: | dim zeile as string, filenr as integer = freefile
open pipe "test.exe" for input as #filenr
do while not eof(filenr)
line input #filenr, zeile
print zeile
loop
close #filenr |
Die test.exe muss dann über PRINT die Daten ausgeben, z. B.
Code: | ' test.bas
print 1
sleep 1000, 1
print 2
sleep 1000, 1
print 3
sleep 1000, 1 |
Beides compilieren (zweiten Code als test.exe) und dann erstes Programm ausführen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 11.12.2011, 17:23 Titel: |
|
|
MilkFreeze hat Folgendes geschrieben: | Ich hab mir gestern Abend den code angeguckt... 2 tipps:
1. Benutze Funktionen und Subs und schreib die Deklarationen sauber an den Anfang der jeweiligen datei. Damit kannst du die ganzen Gotos loswerden und das ganze wird auch etwas lesbarer. Vielleicht kannst du so auch ein paar codewiederholungen entfernen (hab zwar keine gefunden, aber ich denke du hast welche drin).
2. Sortier deine Includes und benenn sie nach dem, was drin ist um. FooBar01.bas bis FooBar10.bas verwirrt extrem.
|
Danke schön. Gute Raten !  |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 11.12.2011, 17:27 Titel: |
|
|
nemored hat Folgendes geschrieben: | Ein einfaches Beispiel zu OPEN PIPE: |
Danke schön ! Ich werde das studieren.
Zuletzt bearbeitet von Roland Chastain am 22.04.2018, 07:11, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 11.12.2011, 17:48 Titel: |
|
|
Gut ! Ich kann nun der Computer Zug "lesen". Danke für dieses Beispiel.
Aber wie kann ich dann mein Zug zu ihm "sagen" ? |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4550 Wohnort: ~/
|
Verfasst am: 11.12.2011, 19:42 Titel: |
|
|
Dazu müsste ich wissen, wie das Computer-Programm funktioniert. Vielleicht ist es möglich, dem Programm beim Aufruf die aktuelle Spielposition zu übermitteln. Das wäre dann die Position nach dem Zug des Spielers. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2502 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 11.12.2011, 20:00 Titel: |
|
|
Zu OPEN PIPE:
http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgOpenPipe
Grundproblem: Kann entweder nur lesen oder schreiben -> von dem her wäre Socket-Kommunikation der bessere Weg, weil dort bidirektionale Kommunikation möglich ist.
Ansonsten spielt natürlich noch der Ansatz vom Computergegner-.EXE (KI-Enginge) eine Rolle: Ob der Prozess persistent läuft und damit auch Züge berechnen kann (stateful-Ansatz), wenn der andere Spieler gerade am Zug ist oder ob es bei jedem Zug frisch aufgerufen wird (erhält dann Spielsituation auf dem Brett -> stateless-Ansatz).
Übrigens zum Thema Socketprotokoll: Am besten solltest Du Dir dazu www.freechess.org anschauen, denn dort dürfen ausser menschliche Mitspieler ambitionierte Programmierer mit einem Botspieler (spezielle Policy) mitmachen. Da die Clientprogramme dort Open Source sind, würde ich dasselbe Protokoll auch bei Dir implementieren, so dass das Ganze interoperabel läuft. => Am besten auch einmal noch GNU Chess näher anschauen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 11.12.2011, 21:17 Titel: |
|
|
Danke schön. Ich glaube ich verstand nun was ist los. Ich will das wiki sehen und aufmerksam lesen die Folge deiner Antwort. |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 13.12.2011, 00:31 Titel: |
|
|
Hallo Freunde !
Ich arbeite an eine kurze Hilfe für mein Programm. Es wäre nett wenn jemand kann das auf deutsch übersetzen :
Zitat: | "Pour déplacer une piece, cliquez sur la case de départ,
puis sur la case d'arrivée. Appuyez sur une touche..." |
Danke schön !
Zuletzt bearbeitet von Roland Chastain am 08.06.2012, 19:25, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
isiprimax
Anmeldungsdatum: 02.01.2009 Beiträge: 77
|
Verfasst am: 13.12.2011, 01:09 Titel: |
|
|
Francis hat Folgendes geschrieben: | Hallo Freunde !
Ich arbeite an eine kurze Hilfe für mein Programm. Es wäre sehr nett wenn jemand kann das auf deutsch übersetzen :
Zitat: | "Pour déplacer une piece, cliquez sur la case de départ,
puis sur la case d'arrivée. Appuyez sur une touche..." |
Danke schön ! |
Mein Frz. ist zwar nicht sonderlich gut, aber ich würde es so schreiben.
"Um eine Figur zu bewegen, klicken sie diese an und auf das Zielfeld auf dem Spielbrett." |
|
Nach oben |
|
 |
Roland Chastain

Anmeldungsdatum: 05.12.2011 Beiträge: 187 Wohnort: Frankreich
|
Verfasst am: 13.12.2011, 01:40 Titel: |
|
|
Danke vielmals.  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4550 Wohnort: ~/
|
Verfasst am: 13.12.2011, 17:16 Titel: |
|
|
isiprimax hat Folgendes geschrieben: | "Um eine Figur zu bewegen, klicken Sie diese an und auf das Zielfeld auf dem Spielbrett." |
"Sie" schreibt man in der Anrede groß.
Etwas schöner formuliert wäre es aber folgendermaßen:
Zitat: | Um eine Figur zu bewegen, klicken Sie zuerst auf die Figur und dann auf das Zielfeld auf dem Spielbrett. |
_________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
|