PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : An die anderen Hobbyprogrammierer


Brillus
2003-12-07, 01:13:55
Was hab ihr den schon so gezielt für euch Programmiert.

Also ich habe mehr oder weniger erst vor kurzen angefangen und habe schon mal einen Vokabeltrainer und ein Snake-Clon Programmiert. Wobei ich bei letztermen noch ein Paar zusätze dabei machen will.

Matti
2003-12-07, 15:32:25
siehe meine hp!

unter Downloads sind alle Programme von mir, und bei den Grafik-Demos die ersten beiden.

Brillus
2003-12-07, 15:43:22
Und wie lautet deine HP?

Matti
2003-12-07, 16:31:23
einfach ein Click auf das www unter meiner Nachricht :)

Dee
2003-12-07, 17:07:04
Nun eigentlich diverse kleine Sachen, die man nicht erwähnen muß. Größere Sachen waren:

- Vier gewinnt mit KI
- DNA-Visualisierungs- und Editierprogramm
- Assembler-Interpreter, der Programmablaufpläne selbst zeichnet

Gruß, Dee

Matti
2003-12-07, 17:56:12
ein 4-gewinnt hab ich auch schon gemacht. Man könnte ja mal deine gegen meine KI spielen lassen...

Stone2001
2003-12-07, 19:19:05
Ich glaube 4 gewinnt mit KI hat fast jeder schon geschrieben, oder? ;) (Wobei ich sagen muß, das mir meine 4 gewinnt KI gefällt, das hab ich fast immer gewonnen :D )
Wenn ihr euch mal an einer anspruchsvollen KI versuchen wollt, dann nehmt das Spiel Go! Selbst gute KIs kommen da nur an das Niveau von Hobbyspielern ran.

beta3
2003-12-07, 19:59:03
hi

einige meiner werke:
vokabeltrainer, geldumrechner, timer, ink note, ein verschlüsselungsprog und vor ner stunde is mein hangman fertig geworden


Nun eigentlich diverse kleine Sachen, die man nicht erwähnen muß. Größere Sachen waren:
- Vier gewinnt mit KI
- DNA-Visualisierungs- und Editierprogramm
- Assembler-Interpreter, der Programmablaufpläne selbst zeichnet

wie meinst du das mit dna?
ne einfache doppelhelix oder alle chromosomen sehr genau



muss euch was frage:
wie schreibt man ne KI?

Dee
2003-12-07, 20:35:08
@Stone: Hab mein Prog mal gegen Dein spielen lassen. War unentschieden, da am Ende einfach nur die Spalten aufgefüllt wurden. *g*
Go ist recht kompliziert. (Kann die regeln leider net komplett!) Auch interessant ist Hex, was ziemlich schwer zu programmieren ist.

@beta3: Einfache Doppelhelix. Siehe http://www.stud.uni-giessen.de/~su2754/opengl/dna-v121.zip
(Unter help findest Du bei index.htm ein paar Screenshots!)

KI ist übertrieben. Ist einfach Actio-et-Reactio-Prinzip.... Der PC reagiert auf bestimmte Situation... Bei Vier gewinnt schaue ich mir das Spielfeld an und geben pro Spalte Bewertungen ab, wo es am sinnvollsten ist, zu setzen. Stone wird es ähnlich gemacht haben.

Gruß, Dee

Stone2001
2003-12-07, 20:51:07
Original geschrieben von Dee
KI ist übertrieben. Ist einfach Actio-et-Reactio-Prinzip.... Der PC reagiert auf bestimmte Situation... Bei Vier gewinnt schaue ich mir das Spielfeld an und geben pro Spalte Bewertungen ab, wo es am sinnvollsten ist, zu setzen. Stone wird es ähnlich gemacht haben.

yup! ;)
Original geschrieben von beta3
wie schreibt man ne KI?
Es gibt viele Möglichkeiten eine KI zu schreiben.
Die erste (und wohl auch einfachste) ist einfach ein paar If-Anweisungen zu koppeln. Man stellt Regeln und Bedingungen auf (z.B. wenn y < 0 dann x = 2) und schaut dann nach, welches Ergebnis am Ende herauskommt.
Oder man kann z.B. bei einem Spiel alle Züge ausrechnen lassen und diese Bewerten und den Zug mit der besten Bewertung nimmt man dann.

Wirklich Intelligent werden solche Systeme aber erst wenn man mehr Hirnschmalz hineinsteckt. Ein mehrstufiges Perzeptron z.b. wäre ein solches System (auch besser bekannt als Neuronales Netz).
Ein Perzeptron ist im Prinzip auch nicht viel mehr als eine große if-Anweisung. Naja, zumindest im Prinzip. Die Eingänge eines Neurons werden gewichtet und zusammenaddiert und wenn ein Schwellwert überschritten wird, feuert das Neuron. Wenn man jetzt noch die Gewichtungen der einzelnen Eingänge veränderen kann und neue Verbindungen hinzufügen bzw. alte löschen kann, hat man schon einen großen Schritt in Richtung KI getan.

Falls du mehr wissen willst, empfehle ich dir dieses Buch: Artificial Intelligence: A Modern Approach http://www.amazon.de/exec/obidos/ASIN/0137903952/qid=1070826568/sr=2-1/ref=sr_aps_prod_1_1/302-2112642-2306446
Ich hab es zwar noch nicht gelesen, aber es wird überall empfohlen.

Metzler
2003-12-07, 21:09:20
Zum Topic :
- Moonlander (weil ich von dem verfluchten Spiel nie einen ordentlichen Klon gefunden habe... also hab ich mir selbst eins programmiert)
- Abinator (eine Art Rollenspiel zum Abitur, was leider nie fertig wurde (Abitur hab ich vor über 2 Jahren gemacht....), wird aber noch immer weiterentwickelt...). Als Minigames in Abinator sind unter anderem Tetris, Snake und Pacman enthalten.
- MapEditor für Abinator
- Virtuelle Pinwall

Ganon
2003-12-07, 21:10:36
Aber es gibt doch Programmiersprachen die hauptsächlich für KI sind, oder? Mir fallen die Namen jetzt nicht ein.

Aber zum Glück gibt es noch nicht DIE KI. Ansonsten wären wir Arbeitslos. *gg*

beta3
2003-12-07, 21:53:44
Original geschrieben von Stone2001
yup! ;)

Es gibt viele Möglichkeiten eine KI zu schreiben.
Die erste (und wohl auch einfachste) ist einfach ein paar If-Anweisungen zu koppeln. Man stellt Regeln und Bedingungen auf (z.B. wenn y < 0 dann x = 2) und schaut dann nach, welches Ergebnis am Ende herauskommt.
Oder man kann z.B. bei einem Spiel alle Züge ausrechnen lassen und diese Bewerten und den Zug mit der besten Bewertung nimmt man dann.

Wirklich Intelligent werden solche Systeme aber erst wenn man mehr Hirnschmalz hineinsteckt. Ein mehrstufiges Perzeptron z.b. wäre ein solches System (auch besser bekannt als Neuronales Netz).
Ein Perzeptron ist im Prinzip auch nicht viel mehr als eine große if-Anweisung. Naja, zumindest im Prinzip. Die Eingänge eines Neurons werden gewichtet und zusammenaddiert und wenn ein Schwellwert überschritten wird, feuert das Neuron. Wenn man jetzt noch die Gewichtungen der einzelnen Eingänge veränderen kann und neue Verbindungen hinzufügen bzw. alte löschen kann, hat man schon einen großen Schritt in Richtung KI getan.

kannst du mir auch ein beispiel, wenns geht in c#, zeigen (link zu nem tutorial oder so geht auch)


wie soll ich den computer ein spiel vorrausrechnen oder bewerten lassen?

Stone2001
2003-12-07, 21:56:20
Original geschrieben von Ganon
Aber es gibt doch Programmiersprachen die hauptsächlich für KI sind, oder? Mir fallen die Namen jetzt nicht ein.

Aber zum Glück gibt es noch nicht DIE KI. Ansonsten wären wir Arbeitslos. *gg*
PROLOG ist z.B. eine Programmiersprache, die sich zum schreiben einer KI eignet.

Ganon
2003-12-07, 22:02:57
Original geschrieben von beta3
wie soll ich den computer ein spiel vorrausrechnen oder bewerten lassen?

Ich sag mal was! *ggg*

Nehmen wir mal als Beispiel Schach.

Spieler setzt eine Spielfigur. Nun kommt die Prüfung:

- Bin ich im Schach?
- Gefährdet die Spielfigur eine meiner Figuren?
- Kann ich die Figur gefahrlos raushauen?

Beim letzten Punkt beginnt es:
- WENN ich die Firgur jetzt raushaue, kann er dann meine Figur raushauen?
- WENN ich jetzt eine andere Figur setze, KANN er dann mit einem weiteren Zug eine meiner Figuren schlagen?

Und so weiter Und so weiter.

Stone2001
2003-12-07, 22:09:22
Original geschrieben von beta3
kannst du mir auch ein beispiel, wenns geht in c#, zeigen (link zu nem tutorial oder so geht auch)
Nope, sorry, da muß dir google weiterhelfen. Aber ich glaube kaum, das du viel finden wirst, das in C# geschrieben ist.
Original geschrieben von beta3
wie soll ich den computer ein spiel vorrausrechnen oder bewerten lassen?
Ganz einfach. Am Beispiel wird es viellicht klarer, wie es gemeint ist.
Man nehme ein Tic Tac Toe Spielfeld. Der Computer hat am Anfang 9 verschiedene Möglichkeiten den Stein zu platzieren. Danach hast du 8 versch. Möglichkeiten. Der Rechner setzt also virtuell einen Stein und geht dann systematisch alle DEINER Möglichkeiten einen Stein zu setzen durch. Hast du eine Möglichkeit zu gewinnen, wird er den Zug ausschliesen. Wenn nicht, kommt er in eine Liste mit möglichen Zügen. Zum Schluss hat er entweder 8 Zuge verworfen und setzt völlig willkürlich einen Stein, oder max. 8 Züge die er nehmen kann, ohne gleich zu verlieren.
Wenn er jetzt aber 'virtuell' einen setzt und dann 'virtuell' einen von dir setzt, hat er nochmal 7 Möglichkeiten einen Stein zu setzen, da kann er z.B. überprüfen, er mit dieser Kombination gewinnen kann, oder nicht.
Wenn man dieses 'virtuelle' setzen der Steine weit treibt, weißt der Rechner genau, wie die Situation verlaufen kann und kann aufgrund dessen den besten Zug für ihn auswählen. Allerdings geht das sehr zu lasten der Rechenzeit. Denn man Anfang gibt es n! (also 9!) Möglichkeiten, wie das Spiel verlaufen wird.
Ich hoffe es ist etwas klarer geworden.

EDIT:
Original geschrieben von Ganon
Ich sag mal was! *ggg*

Nehmen wir mal als Beispiel Schach.

Spieler setzt eine Spielfigur. Nun kommt die Prüfung:

- Bin ich im Schach?
- Gefährdet die Spielfigur eine meiner Figuren?
- Kann ich die Figur gefahrlos raushauen?

Beim letzten Punkt beginnt es:
- WENN ich die Firgur jetzt raushaue, kann er dann meine Figur raushauen?
- WENN ich jetzt eine andere Figur setze, KANN er dann mit einem weiteren Zug eine meiner Figuren schlagen?

Und so weiter Und so weiter.
Schach ist das beste Beispiel dafür. Aber dieses System wird z.B. bei Go versagen (schlicht und ergreifend, es gibt zu viele Möglichkeiten)!

Dee
2003-12-07, 23:58:30
Dazu noch ein Beispiel aus meinem Vier gewinnt-Prog: (Man kann sich auch den Quellcode ansehen, wem das lieber ist... *g*)

- Computer ist dran
- er setzt in Spalte 1 und schaut, ob es ihm was bringt (Vierer=GEWINN), gegnerischer Vierer blocken, Dreier aufbauen, etc...
- Je nach dem, was er alles dort erreicht gibt es pro Spalte positive und negative Punkte, die ich zu der Spalte dazu addiere.
- Das mache ich für alle 7 Spalten und in einer inneren Schleife noch einen Schritt weiter mit dem Gegner=SPIELER
- Die Spalte, welches die meisten Punkte hat, wird dann genommen.

Schwierigkeit bei dem System ist es, eine ordentliche Gewichtung für die einzelne Fälle zu finden, damit der PC am Ende das richtige macht...

Von guter KI bin ich aber meilenweit weg, da ich zum einen nicht lerne, wie mein Gegner z.B. immer die Eröffnung macht, oder zum Beispiel wenn das Spiel verloren wurde, es zu analysieren, was man anders hätte machen können.
Einzige KI ist eben das Zwickmühle über zwei Reihen aufbauen, was Stone in seinem Prog auch drin hat, wenn ich das recht bemerkt habe... :)

TicTacToe ist eben noch harmlos, da es nur 9 Felder gibt, die man alle im Voraus berechnen kann.

Ein Kumpel von mir ist grad dabei sowas für Vier gewinnt=42 Felder zu machen. Wir rechnen da nun gut und gerne schon 2 Jahre dran und haben biser um die 60 Gigabyte (!) auf der HD an Daten (=Spielstellungen) zusammen. :D

Gruß, Dee

Trap
2003-12-08, 17:58:22
Original geschrieben von Dee
Go ist recht kompliziert. (Kann die regeln leider net komplett!) Auch interessant ist Hex, was ziemlich schwer zu programmieren ist.

Die Regeln von Go sind nicht kompliziert, es gibt höchstens 10 einfache Regeln, genau weiß ich die Zahl nichtmehr.
Das komplizierte ist herauszufinden wie man mit diesen Regeln gewinnt. Es dauert es oft lange bis man gelernt hat ob ein Zug einem überhaupt etwas nützt oder schadet. Bis man weiß was gute Züge sind dauerts noch viel länger...

Capt'N Coax
2003-12-11, 03:47:27
Also ich werkel grade an einem Shuffle Puck in 3D(mit Netzwerkunterstützung und mehreren Levels), aber damit werde ich wahrscheinlich erst in n paar Monaten fertig (hab hier wieder so nen "shoot of your hole Leg" Fehl0r).

Ansonsten hab ich noch n halbfertiges e-chess hier liegen, was auch mit OpenGL visualisiert ist (sieht echt fett aus, ist aber leider noch Buggy).

Mein nächstes Projekt habe ich ziemlich genau im Kopf, und plane das immer mal so auf Papier, weil drauf los cod0rn einfach nix bringt. Siehe die zwei vorherigen Projekte. :dozey:

Amsonsten progge ich meine HP mit Servlets, dann mache ich immer mal was grafisches (mit Max und PS) und abundan mal n paar Soundsachen.
Ach ja! Einen Webleecher der Seiten scannt schreib ich mit nem Kumpel zusammen.
Und dann ist da noch das Studium...O Gott...Sollte mal die MatheKlausur schreiben die ich seit 3 Jahren vor mir her schiebe :(

Also ich weiss nicht, geht das nur mir so, oder habt ihr auch ständig zu wenig Zeit und drölfzig halbfertige Sachen auf der Pladde? *grml*

Dee
2003-12-11, 20:37:20
Nun, mein Studium geht vor, daher hab ich wenig Zeit zum Programmieren. Es sei denn, es hat mit dem Studium zu tun, und das waren eben die letzten zwei Projekte.

Aber mir ging es auch früher so, daß ich viele Ideen hatte, dann angefangen habe zu proggen und mich irgendwann die Lust verließ. Ist normal! ;)

Gruß, Dee

Crushinator
2003-12-12, 16:56:36
@Topic

Ich habe mir gezielt vorgenommen, einen Hex/Diskeditor für Win2K+ zu schreiben und es als Freeware zu veröffentlichen. Der Grund ist, daß ich neulich einmal bei einem Kunden war und plötzlich einen Diskeditor brauchte, welchen ich nicht mit hatte, um was an der Partitionstabelle zu ändern. Es gelang mir trotz intensiver Suche nicht einen Solchen uneingeschränkt Funktioniernd downzuloaden. Nur lauter nichtschreibenden Demo-Versionen :no:

Matti
2003-12-12, 19:52:35
@Dee
mein 4-gewinnt hat gerade 2:1 gegen deins gewonnen :)
...deine KI spielt aber auch ziemlich gut.

Dee
2003-12-12, 20:15:51
@Matti: Glückwunsch! :D Aber ich denke, man müßte ca. hundert Spiele austragen, ehe man ein repräsentatives Ergebnis hat. Aber ist ja auch egal, wir ham ja alle unsren Spaß bei... :)

Gruß, Dee

Marcel
2003-12-13, 00:42:20
Original geschrieben von Capt'N Coax
Also ich werkel grade an einem Shuffle Puck in 3D(mit Netzwerkunterstützung und mehreren Levels)


Ja! Ja! JAAAAAA!!!!!!
Go, Capt'n, Go!
*anfeuer*
*undeguldigwart*

Und wenn's grafisch so aufwendig ist wie das Original (Shuffle Puck Café, das, wo das Krokodil einen säuft), scheißegal!
HER DAMIT!!!!

Original geschrieben von Capt'N Coax
Also ich weiss nicht, geht das nur mir so, oder habt ihr auch ständig zu wenig Zeit und drölfzig halbfertige Sachen auf der Pladde? *grml*

Neee, nicht nur Dir.

Hab aber auch was fertiges (zum Beispiel 1000 Links mit zwei Klicks, "mr. Corner" (http://www.turbogenial.de/index.php?go=mrcorner), mal programmiert, weil mich das "Alle Anwendungen minimieren" angekotzt hat und mein Startmenü chronisch überquillt oder sich in 270 Verschachteilungsebenen zerteilt).

Capt'N Coax
2003-12-13, 16:45:49
Ja! Ja! JAAAAAA!!!!!!
Go, Capt'n, Go!
*anfeuer*
*undeguldigwart*

--Uff! Echt? Hätte nicht gedacht dass das einen interessiert...
Verdammt, jetz' steh ich unter Druck :) :)
Und wenn meine Community auch nur aus EINER Person besteht, Muhahaha!
Muss ich ja n Forum machen, woa? :D

Und wenn's grafisch so aufwendig ist wie das Original (Shuffle Puck Café, das, wo das Krokodil einen säuft), scheißegal!
HER DAMIT!!!!

--Kenn ich garnet. Da muss ich mal googlen...

Hab aber auch was fertiges (zum Beispiel 1000 Links mit zwei Klicks, "mr. Corner", mal programmiert, weil mich das "Alle Anwendungen minimieren" angekotzt hat und mein Startmenü chronisch überquillt oder sich in 270 Verschachteilungsebenen zerteilt).

--Hehehe :)

Die Problematik dieser Materie ist mir durchaus nicht unbekannt


Deswegen habe ich auch oben noch eine Taskleiste mit allen RELEVANTEN Shortcuts. Auf dem Desktop tummeln sich nur Links zu wichtigen Ordnern. Und, GANZ wichtig: Der CONSOLE Link, yapp!


Ne, also das Shuffle Puck Dingens von mir sieht schon heiß aus. Würde ja n Screenie hier reinballern, allerdings ist wegen eines schwerwiegenden Fehl0rs alles auf Testmode. Da sieht man halt das Potential nicht :).
Aber wenn ich was hab poste ich mal n Link.

Na dann klotz ich ma ran,
-Coax

Marcel
2003-12-13, 17:39:40
Original geschrieben von Capt'N Coax
--Uff! Echt? Hätte nicht gedacht dass das einen interessiert...
Verdammt, jetz' steh ich unter Druck
Und wenn meine Community auch nur aus EINER Person besteht, Muhahaha!
Muss ich ja n Forum machen, woa? :D

Glaub mir, ich finde wohl weitere!

Original geschrieben von Capt'N Coax
--Kenn ich garnet. Da muss ich mal googlen...

Ist von Broderbund, 1989. Man kann wählen zwischen CGA, EGA, Tandy und Hercules... =)

Original geschrieben von Capt'N Coax
--Hehehe :)

Die Problematik dieser Materie ist mir durchaus nicht unbekannt


Deswegen habe ich auch oben noch eine Taskleiste mit allen RELEVANTEN Shortcuts. Auf dem Desktop tummeln sich nur Links zu wichtigen Ordnern. Und, GANZ wichtig: Der CONSOLE Link, yapp!

Und jetzt stell Dir mal vor, Du kannst auf dem ganzen Bildschirm so blaue Flächen beliebiger Größe verteilen, zum beispiel 2*2 Pixel groß in der linken oberen Ecke und 2 Pixel breit, 100 Pixel lang am Bildrand. Ein Klick drauf, und es erscheint ein Kontextmenü mit allen Dateien eines (in der Config angegebenen) Verzeichnisses, üblicherweise .lnk-Dateien. Pro Clickpad ein eigenes Verzeichnis.
Läuft bei mir momentan mit 11 Klickpads, zieht 2.280 kB RAM.

Original geschrieben von Capt'N Coax
Ne, also das Shuffle Puck Dingens von mir sieht schon heiß aus. Würde ja n Screenie hier reinballern, allerdings ist wegen eines schwerwiegenden Fehl0rs alles auf Testmode. Da sieht man halt das Potential nicht :).
Aber wenn ich was hab poste ich mal n Link.

Na dann klotz ich ma ran,
-Coax

Mache gerne den Betatester!

Capt'N Coax
2003-12-14, 21:41:56
Mache gerne den Betatester!

-HAHAHA! Okay... :)

Bin grad schwer an der Kollisionsabfrage, aber hab da nen Fehler drinne der sich wieder über mehrere Dateien zieht...Naja.
Mal schauen.

Werde mir die Tage mal die Br0derbund Version reinziehen, vielleicht kann man sich ja was abgucken :)

bis denn,
Coax

Marcel
2003-12-14, 22:15:45
Original geschrieben von Capt'N Coax
-HAHAHA! Okay... :)

Bin grad schwer an der Kollisionsabfrage, aber hab da nen Fehler drinne der sich wieder über mehrere Dateien zieht...Naja.
Mal schauen.

Werde mir die Tage mal die Br0derbund Version reinziehen, vielleicht kann man sich ja was abgucken :)

bis denn,
Coax

Ich bin gespannt.



Wartend verharrend,

Gruß,

Marcel

;)

Lunar_Gate
2003-12-23, 13:07:31
Die meisten Sachen von mir sind webbasiert in PHP(+SQL):

-Terminplan mit Erinnerung (davon etliche Umwandlungen und Erweiterungen)

- Gästebücher (alles self-made, sonst taugt das nicht *g*

-Votings mit schönen graphischen Auswertungen

Rest ist in C/C++ auf Windows und Linuxumgebung!

-Game of life (Zellenabfrage:Einsamkeit, Überbevölkerung -> dead/alive)

-Quiz

-verschiedene Grafikspielereien (drehende Linien mit berechneter Farbänderung etc.)



Selbstprogrammiertes Browsergame ist immernoch mein Traum, aber alleine schockt das nicht;)

Metal Maniac
2003-12-23, 21:52:14
Was ich in meiner Freizeit programmiert habe (C++):

- einen Filesplitter für das Aufteilen von Dateien in einzelne Teilstücke beliebiger Größe (gut, den brauch' ich nun nicht mehr, da ich keine Disketten mehr verwende)

- ein kleines Programm für Downloads mit Resume via FTP bzw. HTTP (besteht eigentlich aus 2 Programmen, einer Konsolenanwendung, dem eigentlichen Download-Programm, und einem grafischen Frontend, in dem man URI, Zieldatei, gewünschte Downloadgeschwindigkeit und Puffergrösse einstellen kann)

- ein OpenGL-Bildschirmschoner, der über diverse Einstellungen zufällig einen Asteroiden berechnet und darstellt

huha
2003-12-23, 22:51:49
Was ich so effektiv programmiert habe, das ich auch immer mal wieder benutze... Natürlich hab ich mehr programmiert, aber die Sachen hab ich halt nur ein, zweimal gebraucht.

- Einen Umbenenner, der recht viele Optionen zum Umbenenne von Dateien etc. hat. Gibt's zwar schon, ich wollte aber einen mit ganz, ganz speziellen Features (zum Beispiel einem Nachtmodus, alles wird dunkelrot/schwarz eingefärbt)

- Ein tolles ich-fahr-meinen-Rechner-automatisch-runter-Programm. Über die Registry frei einstellbare Uhrzeit und - ganz toll - über den PC-Speaker Signaltöne. Etwa zwei Minuten vorm Runterfahren meldet sich das Teil zu Wort, sodaß man den Vorgang per Klick auf einen Button abbrechen kann.
Wird auf meinem Zweitrechner eingesetzt, ist ziemlich praktisch, den Rechner immer um 22:00 runterfahren zu lassen =)

- diverse Tools etc.

Wenn ich Sachen programmiere, mach' ich eigentlich nur Codefetzen oder Designstudien ;)

-huha