Schrift
[thread]7613[/thread]

Schiffe versenken

Leser: 1


<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten
dragon
 2006-01-12 14:00
#61772 #61772
User since
2006-01-12
15 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich soll als Studienarbeit ein "Schiffe versenken" in Perl programmieren.
Meine Kenntnisse reichen nach 2 Monaten gerade bis zum GUI Design.
Meinen Sie, dass es machbar ist, in weiteren 7 Monaten ein funktionierendes Programm zu schreiben?
Haben Sie hinweise, wo ich nützliche Tipps zum Spieldesign finden könnte?
Bislang habe ich ein Spielfeld mit Buttons erzeugt.
Jedem Button ist ein eindeutiger Wert zugeordnet, der sich mit dem belegen von Schiffen etc. ändert. So kann zumindest bestimmt werden, ob das Feld frei, mit einem Schiff besetzt, oder bereits als beschossen gilt.
Nun hört es auch schon bei mir auf.
Das ganze soll mit verschiedensten Suchalgorithem und letztendlich "Künstlicher Inteligenz" unterstützt werden.
Die Spieltaktik (wie werden Schiffe platziert, wo sucht der User zuerst, wi sucht er - zufall, oder strukturiert etc.)
soll in einer extrernen Datei gespeichert und ausgelesen werden.
Nach möglichkeit sollte das Spiel auch über Netzwerk laufen - puh! Und ich steh ganz am Anfang und kann echt kein Land sehen :-)
Hat jemand Ideen, wo ich -zu verschiedenster Literatur - Unterstützung einholen könnte?
Vielen lieben DanK1
Taulmarill
 2006-01-12 14:36
#61773 #61773
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
ich denke schon, dass das möglich ist. ich würde als "KI" erst einmal einen einfachen zufallsalgorythmus implementieren. wenn dann alles andere fertig ist (anzeige von treffern, meldung bei sieg/niederlage, etc.) würde ich erst einmal da ansetzen, dass die KI zufällig nach treffern sucht und dann bei einem treffer beginnt, nach oben/unten/links/rechts zu schauen, ob es dort weitere treffer gibt. ganz so, wie das auch ein mensch tun würde. im nächsten schritt könnte man versuchen felder zu markieren, auf denen sich keine schiffe befinden können, da sie dort nicht zwischen die bereits getätigten versuche passen können.
für den netzwerkmodus würde ich mir ein passendes modul suchen, allerdings habe ich da nicht so die ahnung von und würde das evtl. erst einmal hinten anstellen.

btw. normalerweise reden wir uns hier im forum mit Du an.\n\n

<!--EDIT|Taulmarill|1137069517-->
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Strat
 2006-01-12 14:39
#61774 #61774
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
zum Lernen von Perl: siehe meine Einfuehrung in Perl auf meiner HP unter Tips&Tricks. Da lernst du einen Grossteil der Sachen, die du brauchst, um die funktionalitaet hinter der GUI zu schreiben.

Welche GUI willst du denn verwenden? Tk?
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
dragon
 2006-01-12 14:45
#61775 #61775
User since
2006-01-12
15 Artikel
BenutzerIn
[default_avatar]
Bis lang habe ich die GUI unter WIN:32 erstellt.
Jedoch lade ich mir heute noch das TK Modul.

Ist der Ansatz mit den Buttons richtig?

Hat jemand schon einmal von einem solchen Projekt gehört?
Da könnte man sich ja mal Ideen holen.
Theoretisch habe ich das ganze schon auf ca. 30 Seiten beschrieben.
Dabei ist noch ein weiteres Problem aufgetaucht:
Da die Buttons mit den Status "mit Schiff belegt", "frei", "beschossen" verändert werden gibt es auch die Möglichkeit, dass zwei Schiffe direkt aneinander Grenzen.
Ich denke, die ganzen Platzieungen müssen demnach irgendwo auch gespeichert werden, damit Perl nachschauen kann, ob es ein 5er Boot oder ein 2er + 3er Boot aneinander hat etc....
Vielen Dank schon mal!
Taulmarill
 2006-01-12 15:02
#61776 #61776
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
das feld würde ich in einem array of arrays (auch zweidimensionales array genannt) speichern. im wiki ist die deutschen übersetzung von perllol. das sollte dir dabei helfen eine solche datenstruktur zu benutzen.\n\n

<!--EDIT|Taulmarill|1137070996-->
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Strat
 2006-01-12 15:02
#61777 #61777
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Tk finde ich viel einfacher als Win32::GUI (es sei denn, man kennt sie schon sehr gut aus C/C++), und auch portabel.

Den Ansatz mit den Buttons finde ich gut und einfach; schau dir auch mal das Tk-Mines von meiner HP -> Downloads an; da habe ich auch sowas verwendet, lediglich fuer ein anderes Spiel. Wenn man die Grafik schoener haben will, kann man dann auch mal auf die Buttons irgendwelche Bildchen anstelle der Texte legen...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
renee
 2006-01-12 23:53
#61778 #61778
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du Tk installieren willst: http://wiki.perl-community.de/bin....inModul

Zum Thema Tk gibt es hier im Wiki ein Tutorial und auf unter http://perl.renee-baecker.de/perl_tk.pdf findest Du die Folien von Crians Tk-Vortrag.

Als Ergaenzung zu Wiki:perldoc perllol wuerde ich noch Wiki:perldoc perlreftut empfehlen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Taulmarill
 2006-01-13 11:19
#61779 #61779
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
wir müssten auch mal perldsc und perldata übersetzen, ich habe das gefühl, dass das thema für viele schwierig ist.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
lichtkind
 2006-01-14 00:50
#61780 #61780
User since
2004-03-22
5679 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
schau dir mal hier unter projekte das pentris spiel an. tetris hat ja änlichen blidschirmaufteilung und du hast es ja noch einfacher weil sich nichts bewegen muss. ich denk es ist in ein paar wochen machbar nru würde ich dazu natürlich wxPerl nehmen.\n\n

<!--EDIT|lichtkind|1137192820-->
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
renee
 2006-01-14 01:15
#61781 #61781
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Taulmarill: Dann fang' mal an ;)

Ich muss auch unbedingt mal an der Uebersetzung von perlvar weitermachen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 3 >| >> 25 Einträge, 3 Seiten



View all threads created 2006-01-12 14:00.