PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : c't Programmierwettbewerb


Gast
2008-04-12, 17:50:41
http://www.heise.de/newsticker/creativ-08-Lassen-Sie-Ihren-Computer-spielen--/meldung/106414

Wer macht mit?

Coda
2008-04-12, 18:22:45
Mal anschauen. Die Preise sind ja ganz ordentlich.

Senior Sanchez
2008-04-12, 18:23:28
Also ich mache vielleicht mit. :)

del_4901
2008-04-12, 18:37:32
Das könnte interessant werden. Und kompliziert (man will ja gewinnen)

Senior Sanchez
2008-04-12, 19:17:23
Das könnte interessant werden. Und kompliziert (man will ja gewinnen)

So sieht das aus :)

9_Z_7
2008-04-14, 15:42:53
Ich habe auch vor mitzumachen, auch wenn ich noch nicht so viel Erfahrung mit programmieren habe...^^ Also ich habe glaub ich schon eine relativ gute, theoretische Strategie entwickelt. Ob die dann in der Praxis funktioniert und ob ich sie umsetzen kann, ist eine andere Frage^^

Euch allen viel Spaß und viel Glück (das werdet ihr brauchen :wink:)

RattuS
2008-04-14, 22:49:00
Seine Kentnisse mit der Maschinensprache neu aufzufrischen, kann nie schaden. :)

9_Z_7
2008-04-14, 23:53:36
Also ich habe schon tausende Ideen was man alles versuchen könnte, aber irgendwie hab ich das Gefühl, dass einige davon an meinen Programmierkenntnissen scheitern werden...
Ich habe mir mal die InterpretScreen-Funktion genauer angeschaut...
die hätte man, finde ich, etwas besser kommentieren können. In der Form braucht man (oder vllt bin ich ja der einzige der so doof war) schon eine Weile, bis man da alles nachvollzogen hat.

urpils
2008-04-15, 06:31:22
Also ich habe schon tausende Ideen was man alles versuchen könnte, aber irgendwie hab ich das Gefühl, dass einige davon an meinen Programmierkenntnissen scheitern werden...
Ich habe mir mal die InterpretScreen-Funktion genauer angeschaut...
die hätte man, finde ich, etwas besser kommentieren können. In der Form braucht man (oder vllt bin ich ja der einzige der so doof war) schon eine Weile, bis man da alles nachvollzogen hat.

dann schau zum einen Mal beim Wiki (http://www.heise.de/ct/projekte/machmit/asteroids/) vorbei. Ich hatte nämlich im Ansatz ähnliche Gedanken (gute Ideen - schlechte Programmierkenntnisse) und unter anderem deswegen wurde der Wiki aufgesetzt :)

weiterhin kannst du dir auch sicherlich hier (http://www.heise.de/ct/foren/S-c-t-9-2008-S-176-creativ-08-Programmierwettbewerb/forum-135513/list/) helfen lassen, wenn sich in dem Forum nicht so viele damit auseinandersetzen...

Gast
2008-04-15, 10:46:46
Kann mal kurz einer erläutern, wie die Interpretation des Spiels von statten geht (Hab mir den Quellcode noch nicht angesehen)?

Wird da immer ein Screen Capture übers Netzwerk geschickt, den man interpretieren muss?

Danke,
Morris

Senior Sanchez
2008-04-15, 11:32:16
Kann mal kurz einer erläutern, wie die Interpretation des Spiels von statten geht (Hab mir den Quellcode noch nicht angesehen)?

Wird da immer ein Screen Capture übers Netzwerk geschickt, den man interpretieren muss?

Danke,
Morris

Nope,
es wird ansich der Inhalt des Vektorram der alten Atari Kiste (auch wenns über nen Emu läuft) rübergeschickt, indem sämtliche Objekte als Vektoren dargestellt werden. Das kannste dann interpretieren.
Nen paar Steuerinformationen gehen auch noch rüber.

pajofego
2008-04-16, 00:01:00
Bekommt ihr das Beispielprogramm sample zum Laufen? Nach Anleitung sollte mit asteroid 127.0.0.1 das Beispielprogramm starten. Ich bekomme stets die Fehlermeldung: "Das angegebene Programm kann nicht ausgeführt werden"

Gruß
pajofego

Edit: mmmh...keine Fehlermeldung mehr, nachdem ich es neue compiliert habe (gcc). Passieren tut aber irgendwie nicht viel! Ständig steht im MAME Fenster "Startknöpfe drücken", habe schon wild in die Tasten reingehauen...ändert sich aber nichts.

urpils
2008-04-16, 07:18:02
Bekommt ihr das Beispielprogramm sample zum Laufen? Nach Anleitung sollte mit asteroid 127.0.0.1 das Beispielprogramm starten. Ich bekomme stets die Fehlermeldung: "Das angegebene Programm kann nicht ausgeführt werden"

Gruß
pajofego

Edit: mmmh...keine Fehlermeldung mehr, nachdem ich es neue compiliert habe (gcc). Passieren tut aber irgendwie nicht viel! Ständig steht im MAME Fenster "Startknöpfe drücken", habe schon wild in die Tasten reingehauen...ändert sich aber nichts.

geht mir genauso :(

hat jemand ne Lsg? :)

Senior Sanchez
2008-04-16, 07:55:30
Wenn du nen paar mal die Taste 1 drückst, ändert sich nichts bei MAME? Dann sollte eigentlich das Spiel losgehen.

urpils
2008-04-16, 20:00:31
zu meinem Problem:

Visual C++ Express von Microsoft installieren (nach Visual Studio Express in google suchen). Dann funktioniert alles wunderbar, wenn man nur oft genug auf die 1 haut im Mame :)

pajofego
2008-04-17, 18:39:45
Ich hätte mal eine kurze Frage zum Verschicken der Befehle zur Ansteuerung des Raumschiffs. Es werden soweit ich das verstanden Datenpakete an da MAME per "Netzwerk" geschickt und in einer Schleife stets den Inhalt (Position der Asteroiden und etc.) abgefragt. Wenn meine Spiele Intelligenz zu "lange" rechnet dann kann sich das Geschehen auf dem Monitor ändern? Oder sind beide zu einander getriggert? D.h. MAME wartet auf ein Befehl vom Beispielprogramm?

Danke und Gruß
pajofego

Der_Donnervogel
2008-04-17, 20:00:32
Ich hab mir das zwar noch nicht im Detail angeschaut, aber so wie ich das verstanden habe, läuft der Emulator unabhängig vom Programm. Das Spiel läuft also einfach weiter, egal ob es Eingaben bekommt oder nicht, also quasi als ob ein echter Spieler davor sitzen würde. Da das ganze auf UDP basiert ist ja theoretisch nicht mal gewährleistet, dass jedes Kommando auch beim Emulator ankommt.

CoconutKing
2008-04-17, 20:03:27
nein mame haut einfach die daten raus, dank udp ist es mame sogar egal ob die pakete ankommen oder nicht.

Coda
2008-04-17, 20:35:27
Hat er doch gesagt :|

pajofego
2008-04-17, 20:37:05
mmmh, da kommt jetzt ne menge Zufall mit rein :eek: da muss ich noch mal in mich gehen und die Sache überdenken.

Gruß
pajofego

MuLuNGuS
2008-04-18, 11:09:41
mmmh, da kommt jetzt ne menge Zufall mit rein :eek: da muss ich noch mal in mich gehen und die Sache überdenken.

Gruß
pajofego

wieso zufall, da die daten ja permanent hin- und hergeschickt werden ist man doch immer auf einem relativ aktuellen stand, ist ja nicht so das es ewig dauert bis die daten ankommen.(deine KI müßte schon extrem lange rechnen um etwas zu verpassen, oder ist dein rechner so langsam? :D )

ok, die position des raumschiffes bekomme ich, allerdings ist das auslesen der ausrichtung des schiffes echt ätzend da der vectorgenerator bei den 90° ausrichtungen(also: links-rechts-oben-unten) short-vector-commands bekommt und bei allen anderen ausrichtungen long-vector-commands.

ich benutze nicht den sample-code, ich denke da gucke ich erste rein wenn ich gar nicht mehr weiterkomme^^

MuLuNGuS
2008-04-18, 11:43:43
hier die ausrichtungs-commands für's raumschiff oben-unten-links-rechts und als vergleich einmal ca. 45° nach links oben:

das ganze bei unveränderter startposition des schiffes! x=20C, y=20C


ca. 45° nach links oben
A20C E20C
4780 00C0
42E0 C2E0
4000 C2E0
6168 C6D8
66D8 C168
42E0 C400

oben:
A20C E20C
F70E
F8CA
FDC9
6300 C500
6700 C500
F9C9

unten:
A20C E20C
F30E
FCCA
F9C9
6700 C500
6300 C500
FDC9

links:
A20C E20C
F60B
FACC
F9B9
6500 C700
6500 C300
F9BD

rechts:
A20C E20C
F20F
FEC8
FDBD
6100 C300
6100 C700
FDB9

pajofego
2008-04-21, 23:55:40
Beschäftigt sich einer noch damit? Wenn ich die Geschwindigkeit der Asteroiden und des Raumschiffs/UFO wissen möchte, kann ich diese aus dem VRAM auslesen oder muss diese messen?

Danke und Gruß
pajofego

del_4901
2008-04-22, 00:01:58
Beschäftigt sich einer noch damit? Wenn ich die Geschwindigkeit der Asteroiden und des Raumschiffs/UFO wissen möchte, kann ich diese aus dem VRAM auslesen oder muss diese messen?

Danke und Gruß
pajofego

da geht nur messen

pajofego
2008-04-22, 00:10:17
Danke! Reicht dafür time.h (Genauigkeit) aus oder muss man was anderes benutzen?

Senior Sanchez
2008-04-22, 00:32:16
Ich glaube per Zeit messen ist nicht so gut.
Die wesentlich bessere Variante scheint per Frame zu sein, da der MAME etwa alle 20 ms was rausschickt.

del_4901
2008-04-22, 00:42:41
naja die Zeit mit reinnehmen ist gar nicht so doof, aber für das eigentl. messen braucht man die Zeit (noch) nicht.

pajofego
2008-04-22, 08:03:39
Wenn natürlich alle 20ms gesampelt wird, ist das ja kein Problem. Nur wie genau sind die 20 ms? Vielleicht eher 19/18/21/22 ms?! Sicher wäre man doch, wenn man jedes Frameintervall selber misst, daher meine Frage ob time.h genau genug ist.

Gruß
pajofego

MuLuNGuS
2008-04-22, 09:25:54
Wenn natürlich alle 20ms gesampelt wird, ist das ja kein Problem. Nur wie genau sind die 20 ms? Vielleicht eher 19/18/21/22 ms?! Sicher wäre man doch, wenn man jedes Frameintervall selber misst, daher meine Frage ob time.h genau genug ist.

Gruß
pajofego

die zeit mit reinzunehmen wäre eine nette sache, ist aber glaub ich gar nicht notwendig, ich denke man kommt am ehesten zu einem ergebnis wenn man es simpel hält.

Gast
2008-04-22, 18:43:49
denk mal die frametime aus sicht von mame ist ehh immer gleich, wenn du mit time.h ne messung machst misst du wahrscheinlich ein schlechteres ergebnis, weil du dann halt noch die verzögerungen drin hast (gilt erst recht beim wettbewerb, da du da ne netzwerk latenz hast)