mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schachcomputer


Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich würde gerne einen Schachcomputer bauen. So wie aus den guten alten
zeiten. Ein Holzbrett mit 64 Dioden und einen Prozessor, der alles im
Innern steuert. Ich fange bei "Null" an. Könnt Ihr mir sagen wie ich
so ein Projekt strukuriert "aufziehen" kann? Wie und wo komme ich an
Entwicklungssoftware und wie kommt die Software auf meine Prozessoren?
Über Infos dazu würde ich mich sehr freuen.

gruß Duracell

Autor: Irgwer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nachdem du schreibst, das du bei "Null" anfangen musst, beziehe ich
das auch mal auf deine Erfahrung in der Programmierung eines Spiels.

Falls dem so ist, kann ich dir nur raten, versuch dich erst mal an ein
paar einfachen Spielen. Du wirst sehr schnell merken, wie komplex so
etwas sein kann. Ich glaube wenn du tatsächlich in der Lage bist ein
halbwegs vernünftiges Schachspiel zu entwicklen, dass die Umsetzung in
Hardware dann kein großes Problem für dich darstellt.

Solltest du bisher weder Erfahrung in der Spieleentwicklung haben, als
auch noch keine Erfahrung mit Mikrocontrollern haben, so würde ich dir
z.B. die Umsetzung von Tic-Tac-Toe auf einer 3x3 großen Matrix aus
Duo-Led und Tastern empfehlen.

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kuemmer dich zuerst mal um die Sensorik (Detektion der Spielzuege des
menschlichen Spielers) und die Anzeige der Computer-Spielzuege. Dass
allein kann man mit nem kleinen uC wie dem AVR erledigen. Je nach
verwendeter Technologie (ich hab mich mal mit Reed-Relais im Board und
kleinen Permanent-Magneten in den Figuren herumgeschlagen) kann das
schon recht komplex werden. Parallel entwickelst du die Spiel-Software
am PC. Spaetestens jetzt merkst du, dass du hier eine Menge Grips
einbauen musst, wenn die Spielstaerke nicht auf dem Niveau von z.B.
Battle-Chess stecken bleiben soll. Hast du das Schach-Programm mit dem
GCC geschrieben, kannst du es mit dem AVR-GCC uebersetzen um den
Speicherbedarf zu ermittlen. Ich vermute aber, dass nichtmal der
ATMega128 ausreicht. Alternativ koennte man das Board an einen PC
anschliessen und ein existierendes Schach-Programm pimpen.

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ irgwer @ The Daz

ja, mit null meine ich leider "Null". Anfangen würde ich gerne mit
der Programmierung! Was ist GCC? Wie und wo bekomme ich
Entwicklungssoftware her? Sind diese vom Prozessor abhängig, oder ist
das egal?

Ja, sicherlich sollte schon am Ende eine hohe Spielstärke rauskommen.
Auch wenn das alles Jahre dauern wird - der Wille ist da!

Liebe Grüße Duracell

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
GCC ist ein freier C/C++ Compiler den man ueberall fuer alle
Betriebssysteme herunterladen kann.

Autor: Irgwer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Duracell,

'auch wenn das alles Jahre dauern wird' hört sich schon ein wenig
masochistisch an. Du mußt dir auch manchmal ein Erfolgserlebnis
gönnen.
Nicht's gegen hohe Ziele, aber die Chance das du es irgendwann
hinschmeisst ist bei so einem Projekt schon recht groß. Ich kann dir
wirklich nur raten erst mal einen kleinen Schritt zu machen, um
überhaupt abschätzen zu können, auf was du dich da einlassen willst.

Autor: Christoph Kessler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal nach "KIM-1 Microchess" das war das erste kleine
Schachprogramm für den 6502-Prozessor, nicht sehr schlau, aber dafür
nur 1 kByte groß.
Der Quelltext ist veröffentlicht und sicher irgendwo zu finden,
ich habe mir damals das ganze auf meinen AIM-65 umgeschrieben und
assembliert.

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicherlich ist das Ziel sehr hoch, aber ich kann nur durch Probieren
sehen, ob ich das wirklich durchziehe. Fangen wir mal mit c/c++ GCC
an!
Also was benötige ich C oder C++ und ist der GCC die Schnittstelle zum
Prozessor oder das Entwicklungsprogramm?

Gruß Duracell

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du brauchst den Compiler und generierst auf einem PC damit eine .hex
Datei. Diese Datei transferierst du dann mit einem weiteren Programm
wie z.B. avrdude zu einem Programmer (eine kleine Box am RS232 oder
Printer-Port), der die Daten dann in den uC schreibt. Zum
experimentieren solltest du dir ein entsprechendes Board besorgen (z.B.
Atmel STK500 oder sowas). Diese boards schliesst man an den PC per Kabel
an, steckt den uC-Chip in den entsprechende Sockel, programmiert den uC
und kann mit den auf dem Board vorhandenen Anschluessen und Dingelchen
(Taster, LEDs, etc.) seine ersten Gehversuche in der Thematik machen.

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@The Daz
hmm, das hört sich gut an - wo bekomme ich solche Boards und diese Box
etc.? Damit könnte ich wirklich mal anfangen :-)

Gruß Duracell

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.reichelt.de

Autor: Christoph Kessler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu KIM-1 Microchess gibts folgende Link-Seite:

http://www.benlo.com/microchess/microchess.html

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmel STK500 wäre wirklich okay? Oder doch besser etwas anderes?
Entwicklungssoftware ist da ja auch dabei - dannbräuchte ich nicht
weiteres oder? :-)

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs und bin zufrieden damit, mir fehlt allerdings der Vergleich.
Wenn du SMD uCs von Atmel proggen willst, brauchst du noch einen der
STK501 Adapter, das STK500 kann nur dir DIP Typen brennen. Bei meinem
STK lag ein AT90S8515 und ein ATMega16 bei.

Wenn du aber die eher komplexen Dinger auf dem uC abziehen willst und
folglich viel Speicher brauchst, dann kommst du bei Atmel an den SMD
Typen nicht vorbei und dazu brauchst du im Falle des STK noch den
erwaehnten Adapter was dann in der Summe auf knapp 200 Euro kommt. Wenn
du dann feststellst, dass ein AVR fuer dein Projekt nicht ausreicht ist
ein Haufen Geld futsch.

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, das beiliegende AVR Studio enthaelt alle noetige Software,
ausser einem C-Compiler. Den ACR-GCC kannst du aber von dieser Site
gratis runterladen und ins AVR-Studio integrieren. Damit hast du dann
alles was man zum Anfangen braucht.

Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht ist zu empfehlen, dass du dir erstmal ein Billig-Schachengine
unter C/C++ bastelst. Damit ist man auch schon eine Zeit beschäftigt -
und wenn man etwas Erfahrung hat, baut man sich eine solche Engine an
einem Wochenende :-) (die natürlich nicht besonder gut ist ^^)

Als weiteren Tipp, könnte ich dir empfehlen die Engine konsolenbasiert
zu basteln (also ohne Klicki-Bunti :-), dann kann sie nämlich auch von
WinBoard/XBoard verwendet werden und Online bei www.freechess.org
spielen.

Und wenn du dann rausgefunden hast, wie die Engine tickt - was da alles
berücksichtigt wird bei guten Engines ist der absolute Wahnsinn - dann
würde ich mir Gedanken darüber machen, wie man das ganze in VHDL gießen
kann.

Mfg
Thomas Pototschnig

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, auch nur eine halbwegs funktionierende Chessengine zu
entwickeln, ist alles andere als einfach. Ich habe über sowas auch
schonmal nachgedacht, würde aber auf bestehene Software zurückgreifen.
GNUchess z.B. ist Open Source und liesse sich dafür zweckentfremden.
Also die Chessengine würde dann auf 'nem kleinen PC laufen, die ganze
Sensorik würde ich mit einem Atmel machen.

Naja, das ganze erscheint mir so, als wolle jemand, der vom
Maurerhandwerk keine Ahnung hat, ein Hochhaus bauen. :)

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wir sind zwar hier ein Hardware Forum aber denoch empfehle ich dir
folgendes:

1.) vergiß alle Hardware und lerne erstmal programmieren
2.) PC haste schon, entscheide dich für eine Programmiersprache
3.) programmiere dann erstmal mehrer beliebige Softwares für den PC,
die nicht mehr 500 Zeilen benötigen.
4.) programmiere dann erst deine Schach Software die auf dem PC läuft
5.) so schaltest du alle Fehler aus die dann mit Hardware zu tuen
haben, und das können für einen Anfänger sehr sehr viele sein. Selbst
ein LCD per AVR anzusteuern ohne vorher programmiert zu haben halte ich
persönlich nicht in 3 Monaten machbar. (vorrausgesetzt man hat wirklich
alles selber gemacht und nicht den Source zusammengechustert aus dem
WEB).
6.) wenn deine PC Schach Software dann richtig gut läuft portiere sie
in Hardware.

Mein, im Vergleich zu professionellen Programmen, sehr bescheidenes
Schachprogram für den PC benötigt allein für die Schachengine über
100.000 Zeilen Source !! Da ist die Datenbank der Eröffnungsbibliothek
noch nicht eingerechnet. Ok, das Ding spielt "besser" als ich aber
längst noch nicht so gut wie ein 100 Euro Schachgame. Insgesamt werde
ich wohl so über die Jahre mindestens 11 Monate dran gearbeitet haben,
und ehrlich gesagt habe ich die Lust daran verloren.

Also wirklich kein leichtes Ziel und schongarnicht eine Aufgabe für
einen Anfänger. Was aber eben NICHT heissen soll das DU es nicht
versuchen solltest, denn nur mit der Aufgabe wächst der Mensch ;)

Gruß Hagen

Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[OT-Mode-On]
>Mein, im Vergleich zu professionellen Programmen, sehr bescheidenes
>Schachprogram für den PC benötigt allein für die Schachengine über
>100.000 Zeilen Source !!

Hast du die Engine mal bei freechess.org spielen lassen? Oder kannst du
ungefähr einschätzen wieviele Elo-Punkt sie hat? Sowas interessiert mich
immer :-)
[OT-Mode-Off]

ACK :-)

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hagen

ja, bestimmt hast du Recht! ich werde erstmal mit C++ aus Grundstein
anfangen. Dann werde ich ja sehen, wie weit mich meine Motivation
bringt. Aber ich würde auch gerne wissen wie stark deine Engine
spielt???

Könnte man dann diese in irgendeiner Form in einer Prozessor hauen und
einen Schachcomputer daraus machen, oder?

Aber erstmal C++.....

Danke Duracell

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habt Ihr einen Buchtipp für C++???

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thomas:

>>Hast du die Engine mal bei freechess.org spielen lassen?

Nein.


>>Oder kannst du ungefähr einschätzen wieviele Elo-Punkt sie hat?

keine Ahnung aber ich schätze nicht mehr als 1700,

Hinzukommt das ich an dem Ding schon mehrere Jahre nichts mehr gemacht
habe und Schach längst nicht mehr mein Lieblingsspiel ist.


Gruß Hagen

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ hagen
Du hast aber hoffentlich nicht alle der 100.000 Zeilen eigenhändig
geschrieben, oder?

Für einen Buchtipp über C++ würde ich mich freuen! :-)

Gruß Duracell

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wer hat denn den Thread verschoben?

Autor: Alisa 1387 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Duracell

Wenn Du nicht nur PC sondern auch uC proggen möchtest wäre wohl C ohne
++ ein guter Einstieg in die Compilerwelt.

Die C-Anfänger-Bücher, welche ich bisher sah, waren recht
unterschiedlich und keines erschien mir optimal. Viele online
verfügbare Sachen erschienen mir gleichwertig.

such mal nach ANSI-C (das ist eine genormte Syntax, welche verbreitet
ist und die wohl noch lange geben wird) da gibt´s einiges auch für
Anfänger.

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das heißt mit c++ kann ich nicht uC proggen?

Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch schon - "++" unterstützt aber noch objektorientierte
Programmierung, die man meistens bei Controllern nicht benötigt.

C ist erstmal als Grundlage zu empfehlen und dann kann man sich das ++
mal ankucken.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> @ hagen
> Du hast aber hoffentlich nicht alle der 100.000 Zeilen eigenhändig
> geschrieben, oder?

Ohne jetzt 'hagen' oder seine Schach-Engine zu kennen:
Klar hat er!
Und 100.000 Zeilen sind fuer Profis immer noch ein
'kleines' Projekt. Um eine gute Schach-Engine zu schreiben
muss man aber besser als, ich wuerde mal sagen, 80% aller
Profi-Programmierer sein.

Ich will Dich nicht entmutigen, aber Schach ist ein Ziel
dass Du nicht unter 3 bis 4 Jahren Lernzeit beginnen kannst.
Wenn Du fleissig bist.

Im ersten 1/2 Jahr stehen fuer Dich mal die Einsteiger-
Tuecken der Programmierung und der Sprache auf dem Program.
Danach geht es in die dynamische Speicherverwaltung hinein.
Bis Du mit der auf Du-und-Du bist vergeht locker noch mal
ein halbes Jahr. Danach kennst Du glundlegende Algorithmen
und beherrscht so ca. 80% Deiner Zielsprache aus dem FF.
In diesem Jahr wirst Du wahrscheinlich schon mal die ersten
kleinen Spiele programmiert haben: zb. Tic-Tac-Toe, Nimm,
17+4, ...  (Wir sprechen immer noch von Programmen in
der Groessenordnung von max ca. 500 bis vielleicht 1000 Zeilen)
Im zweiten Jahr lernst Du dann, Deinen Kraut-und-Rueben Code
zu organisieren, denn die Programme werden mit der Zeit groesser.
Du faengst vielleicht an eine graphische Oberflaeche zu programmieren.
Du gibst die ersten Programme an Freunde weiter und lernst sehr
schnell, dass Theorie und Praxis 2 verschiedene Paar Schuhe sind.
Was in der Theorie voellig vernachlaessigt wird, Benutzereingaben
idiotensicher zu machen, wird jetzt immer wichtiger und Du
entwickelst dafuer Techniken oder studierst sie bei anderen Leuten.
Ueberhaupt: das Thema 'fremden Code analysieren' wird jetzt immer
wichtiger. Zusammen mit ausgefeilteren Debug-Techniken macht das
einen Loewenanteil aus. Irgendwann erinnerst Du Dich daran, dass
Du ja eigentlich Mikroprozessoren programmieren wolltest, d.h.
ohne die Hilfe eines Betriebssystems. Da steigst Du jetzt ein
und lernst sehr schnell, dass vieles was am PC noch einfach ging,
ploetzlich gar nicht mehr so simpel ist.
Das naechste Problem das auf Dich wartet, ist das Problem der
Optimierung. Um ein Schachprogramm zu schreiben muss man schon
sehr genau seinen Compiler kennen bzw in ausgewaehlten Teilen
auf Assembler ausweichen, sonst kriegt man Laufzeiten jenseits
von gut und boese. Dann kommt die Spiele-Theorie. Studium wie
andere Leute so was aufgebaut haben. Welche Tricks gibt es um
den Suchbaum zu beschneiden und was ist ueberhaupt ein Suchbaum
und wie baut man ihn auf? Welche Bewertungsfunktionen sind sinnvoll?
Wie implementiert man die im Suchbaum?

Tja. Und so vergehen die Jahre.

Bis Du dann tatsaechlich ein funktionierendes Programm in einem
eigenstaendigen Brett hast und feststellst, dass jedes Wald-
und Wiesen Fertiggeraet um 55 Euro von Aldi Dein Program mit
links schlaegt.

Wie gesagt, ich will Dich nicht entmutigen. Aber Du solltest der
Realitaet ins Auge schauen. Sich selbst grosse Ziele zu stecken
ist eine Sache, aber sie muessen halbwegs realistisch sein.

Autor: Hagen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> @ hagen
> Du hast aber hoffentlich nicht alle der 100.000 Zeilen eigenhändig
> geschrieben, oder?

Ich muß leider Karl Heinz Recht geben, ist alles selber geschrieben und
es ist tatsächlich so das es ein überschaubares Projekt darstellt. Das
was ein Projekt so unübersichtlich macht sind drei Punkte

1.) schlechter Programmierstil und keine Disziplin, weil keine Lust
2.) Teamwork ;)
3.) die Komplexität der verwendeten Algorithmen

Gerade der 3. Punkt ist es aber der Schach so saumäßig kompliziert
macht. Immerhin es haben viele Mathematiker, die sich mit der
Spieletheorie beschäfftigen, unmengen an Dissertationen etc.pp. darüber
geschrieben. Alleine die Selektion welche dieser propagierten
Algorithmen in das eigene Projekt passt, bzw. welcher der Algos auch im
Realen wirklich was bringt, kann eine Menge an Zeit kosten.

In meiner Engine zb. hatte ich versucht mit neuronalen Netzen die
Bewertungsfunktion der Stellung zu bechleunigen, bzw. intelligenter und
lernfähiger zu machen. Funktioniert aber nicht, bzw. längst nicht so gut
wie die normaleren Standardalgorithmen. Denn so ein NN macht nur Sinn
wenn man die Trainingsphase auch automatisieren kann und nicht erst 1
Million Spiele als Mensch gegen die Engine spielen muß. Nur gerade das
war das Problem, denn zwei dumme NNs gegeneinander spielen zu lassen
wird diesen eben nicht Intelligenz einhauchen. Auch 1000 solcher
neuronalen Netze gegeneinander spielen zu lassen bringt nichts ausser
einer Generation aus dummen Computer Spielern.
In fakt, bisher gibt es noch keine Computer Methode um zielorientierte
Kreativität zu simulieren ! Und das war mein damaliger "Denkfehler"
über den ich heute nur noch lächeln kann. Um so erstaunlicher ist es
wie die Natur dieses Evolutionsziel erreichen konnte.

Immerhin meine geschätzen 1700 ELO Punkte der Spielstärke sind im
Vergleich zu einer guten Engine echt demotivierend gering. Deshalb hab
ich eben auch schon Jahre nichts mehr daran gemacht.

Fazit: Setze dir das persönliche Ziel eine super gute Schach Engine zu
coden, aber gehe schrittweise Step by Step vor.

Du kannst nicht programmieren ? dann lerne erstmal das.
Du verstehst die höhere Mathematik nicht ? dann studiere sie.
Du hast keine Elektronik Kenntnisse ? dann lerne das.
Du kennst dich nicht mit komplizierten Algorithmen und Spieletheorie
aus ? dann lerne es.

Wenn du dann das alles perfekt beherrscht dann wirst du auch in der
Lage sein, mit entsprechend genügend Zeit, das beste Schachprogram zu
coden.

Nur soviel, ICH kann es NICHT !

Gruß Hagen

Autor: Bri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du dich damit anfreunden kannst, dass du nicht den besten
Schachcomputer bauen kannst, aber zumindest einen, der Schach spielen
kann, dann such dir am besten im Internet eine freie Schachengine, die
in C geschrieben wurde. Ich hatte mal eine für meinen TI92 compiliert.
Der TI92 hat einen MC68000 mit ca.10MHz und 128kb RAM. Es sollte also
kein Problem sein, sowas auch auf einem ATMega 128 vielleicht mit extra
RAM zum laufen zu bringen.

Die Spielstärke war im übrigen unterirdisch schlecht. Ich als
Schachlaie hab fast immer gewonnen. Also erwarte nicht zu viel.

Autor: ejd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun ja, vor Jahren habe ich ein Schach-Programm unter DOS ausprobiert.
Es simulierte die Spielart "attackiere wenn möglich", was einen recht
derben psychologischen Effekt hatte. Das Spiel zeichnete das Schachbrett
 in CGA-Auflösung (320x200) und war nur 10kb groß. Ich denke, ein
Mega128 würde allenfalls hinhalten, insbesondere wenn man die Züge
textuell ausgibt.

mfG,
ejd

Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der OP hatte doch überhaupt nichts davon gesagt, dass er die
weltstärkste Engine basteln will.

Meine kleine Engine, die mit <1500 Zeilen auskommt und online bei Fics
gespielt hat, hat's immerhin auf 1500 Elo gebracht.

Die 1500 Elo hab ich schon hingekriegt indem ich als Bewertungsfunktion
einfach nur das Material gewichtet und zusammengezählt habe. Die Engine
hatte zwar keinen Blick für Strukturen, aber das Result hat mich
trotzdem überrascht :-)

Aber ein ganz großes Problem: Je mehr Brute-Force man verwendet - also
weniger intelligente Stellungsbewertungen und Strategieen - desto
schwieriger wird es so eine Engine auf einen Controller zu portieren.

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm, die letzten Beiträge haben mich nun doch etwas demotiviert. Ich
glaube kaum, dass ich eine solche Masse an Informationen noch in mich
reinkloppen kann?! Sicherlich ist es bestimmt ein sehr schwieriges
Unterfangen, aber Ziele muss ein Mensch haben. ich werde es auch in
Angriff nhemen, obwohl ich mittlerweile denke es nicht zu schaffen.
Aber ich werde mal mit C anfangen. Es interessiert mich ja auch so die
Programmierung.
Momentan bin ich nur im Webdesign tätig. Dort plage ich mich mit xhtml,
css und php rum.
Okay, dann Dank an eure tatkräftigen Hilfestellungen und Kommentare,
die mich bestimmt auf den Boden der Realität zurück gebracht haben.

Frohe Weihnachten

Gruß Duracell

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tut mir leid, wenn wir dich jetzt demotiviert haben. Das
ist nicht unbedingt unsere Absicht. Aber ein gewisser Realismus
muss schon sein.
Wenn Dich das Thema Schach interessiert, dann hab ich einen
anderen Vorschlag: Vergiss fuers erst mal, dass dein Programm
eigenstaendig spielen koennen soll.
Nimm Dir fuers erste vor, ein Programm zu schreiben, dass ein
Schachbrett simuliert. D.h. 2 menschliche Spieler spielen
gegeneinander und das Programm nimmt die Zuege entgegen, stellt
das Brett dar, speichert die Zuege (fur Zugruecknahme) intern,
schreibt sie auf eine Datei, kann eine Partie von einer Datei
laden und anzeigen, etc.
Das ist fuer sich alleine schon eine nette Uebung, fuer die
man schon ganz gut programmieren koennen muss. Da kommen
Themen wie Datenstruturen, schreiben/lesen von Files, Anzeige,
Benutzereingabe entgegennehmen und auswerten, Gueltigkeits-
pruefung der Eingabe (fuer ungueltige Zuege) etc. vor.
Alles nicht trivial und doch einfach genug, dass da auch irgendwann
ein Ende herausschaut.
Da Du mit Web arbeitest, koennte das Ganze ja zb. auch als CGI
realisiert werden (aber nicht gleich: Debuggen mit CGI ist
ein Horror).
Am Anfang muss es ja nicht gleich eine graphische Anzeige sein,
ein simple textuelle Ausgabe, ala

  T L S D K S L T
  B B B B B B B B
  . . . . . . . .
  . . . . . . . .
  . . . . . . . .
  . . . . . . . .
  b b b b b b b b
  t l s d k s l t

Ihre Eingabe>

wuerde es ja fuer den Anfang tun. Und Du wuerdest eine Menge
ueber Programmierung dabei lernen.

Autor: Thomas Pototschnig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der zweite Schritt wäre dann, dass dein Programm eine Zugüberprüfung
vornimmt, also dass kein Benutzer illegale Züge machen kann.

Das ist dann schon quasi ein großteil des Zuggenerators, den man dann
für die Engine sowiso braucht.

Aber alles step by step :-)

Autor: Duracell (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hehe, ich sehe ihr gebt auch nicht auf. Sehr gut :-)
Okay, wer kann mir denn mal einen Buchtipp für C geben?

Gruß Duracell

Autor: HariboHunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
C/ C++ von Galileo Computing Autor : Kaiser/Kecher.
Ist ne Demo-CD und ein Compiler drinne.
Und fängt ganz klein an.
Ist aber wirklich nur was für absolute Anfänger.

Autor: HariboHunter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ludwig Wagner (lordludwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karl Heinz Buchegger: Seit wann kommt neben den turm der läufer?????

  T L S D K S L T
  B B B B B B B B
  . . . . . . . .
  . . . . . . . .
  . . . . . . . .
  . . . . . . . .
  b b b b b b b b
  t l s d k s l t

Autor: Menz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Duracell.

"C von A bis Z" von Galileo Computing, Author: Jürgen Wolf ist auch
sehr gut.
http://www.amazon.de/exec/obidos/ASIN/3898426432/q...
Zumindest hat es mir als C-Neuling alles von grund-auf und verständlich
erklärt. Du kannst es auch unter www.pronix.de als Open-Book lesen.
Falls es dir gefällt, kannst es ja bestellen.

Menz

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.