Avatar billede supermichael Nybegynder
27. januar 2007 - 19:24 Der er 7 kommentarer og
1 løsning

Netværk i et javaspil

Hej..

Jeg er i gang med at lave et pokerspil i java, og nu vil jeg gerne lave netværksdelen.
Det er jo ikke sjovt at spille poker med sig selv, og det virker en smule svært at lave en computer-player. En frygtelig masse beregninger. (selvfølgelig muligt, men det venter jeg med)

Jeg har forstået at man laver sockets og serversockets. jeg vil bare gerne have et lille hint om hvordan jeg skal lave strukturen i mit spil.

Jeg Håber du har tålmodighed nok til at læse igennem.

jeg har indtil nu 3 Spiller-relaterede:

Player (interface)
AbstractPlayer (Abstrakt klasse)
NormalPlayer (extender og implementere de to ovenstående)

Der er lagt op til at der skal kunne være andre typer spillere (computere) med.

Ud over det har jeg mine kort og mit pokerbord + en dealer:

PlayingCard (klasse til kort)
Deck (indeholder et helt spil blandede kort)
PokerTable (extender Observable, og holder styr på spillere og kort)

Klassen Dealer holder styr på potten og skal være den der dirigere spillet. Den tager kort fra bordet og giver dem til spillerne. Den checker efter bedste kombo og deler potten ud til vinderen.


Til sidst har jeg mit interface (extender observer) der samtidig indeholder en controller der reagere på knaptryk og diverse, og reagerer hvis PokerTable ændre sig.



Hvor vil det være en god ide at implementere netværket. Så vidt jeg har forstået, skal man bruge threads når man har med flere forbindelser at gøre. Skal jeg på en eller anden måde lave klassen NormalPlayer om til en thread som styrer hver spillers svar.

Hvordan ville du gøre det?

på forhånd tak for hjælpen.
Avatar billede arne_v Ekspert
28. januar 2007 - 02:28 #1
hvis netværket er egnet til det, så kunne du spare en masse arbejde ved
at bruge RMI fremfor rå sockets
Avatar billede supermichael Nybegynder
30. januar 2007 - 14:49 #2
Nu har jeg lige to spørgsmål:

Kræver RMI ikke en masse med at man skal starte noget der ikke kan køre i selve java programmet.
Jeg vil jo netop gerne have det sådan at man har et pokerspil hvor alle kan hoste eller joine et spil.

det bringer mig til spørgsmål nummer 2.
Kan alle køre et program lavet i java 6.0 eller kræver det en nyere JVM?
Hvilken version af java burde jeg lave det i?
Avatar billede arne_v Ekspert
30. januar 2007 - 15:51 #3
rmiregistry kan godt koeres integreret i server processen

et program compilet til Java version X kræver Java version X eller højere

men du kan angive version når du bygger

javac -target 1.4

vil compile til Java 1.4 (og nyere) selvom du selv bruger 1.6 (eller 6 hvis du
kalder den det)
Avatar billede supermichael Nybegynder
30. januar 2007 - 16:10 #4
Tak for de mange svar arne.

Jeg har bare lidt svært ved at forså hvordan man rent faktisk gør det

Der skal grantes noget permission, og det sker i eksemplerne på sun's hjemmeside, ved hjælp af en fil-sti.
Desuden skal rmiregistry startes på forskellige måder ved forskellige styresystemer..

Hvordan skal jeg gøre det?
Avatar billede arne_v Ekspert
30. januar 2007 - 16:12 #5
har du laest de 2 artikler jeg har skrevet om RMI her paa eksperten.dk ?

ja naar applikationen skal sikres, saa skal du have sat en security manager, men det
er ikke saa svaert

jeg mener klart at du skal embedde rmiregsitry i din server, saa skal du slet ikke starte
den
Avatar billede supermichael Nybegynder
30. januar 2007 - 19:45 #6
Igen.. tusind tak. Jeg har læst artiklerne nu og rodet lidt rundt med det.

Jeg tror jeg har hvad jeg behøver for nu :-)

Skriv lige et svar så jeg kan læsse 60 point over til dig
Avatar billede arne_v Ekspert
30. januar 2007 - 19:51 #7
svar
Avatar billede arne_v Ekspert
30. januar 2007 - 19:51 #8
husk at du med nyere Java versioner kan glemme alt om rmic/stub/skeleton - de
genereres automatisk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester