Matdorspil - Grafisk programmering

Tags:    java

<< < 123 > >>
Hej

Så er jeg gået i stå med mit Java igen.

Jeg havde tidligere lavet et matadorspil (med hjælp fra bogen), og nu består opgaven så i at lave det grafisk.

Jeg har fået alle felterne til at blive vist grafisk, men jeg vil gerne have at der står under feltet hvem der ejer det. Jeg synes jeg har prøvet alt, men kan ikke få det til at virke.

I klassen Grund2, har jeg sat nogle udskrivninger ind, for at se hvad der sker. Det viser at metoden bliver kørt igennem, men den ikke vil tegne ejeren til grunden.

Håber i kan hjælpe.

Programmet er delt op i mange klasser, og jeg poster de mest relevante for at spillet kan fungere. Dog i rækkefølge efter relevans. Jeg er næsten sikker på at problemet ligger i MatadorGrafikpanel, Felt og Grund2.



Grafikpanelet:
Fold kodeboks ind/udKode 


Felt:
Fold kodeboks ind/udKode 


Grund2:
Fold kodeboks ind/udKode 


Gade2:
Fold kodeboks ind/udKode 


Spiller:
Fold kodeboks ind/udKode 


Matadorspil:
Fold kodeboks ind/udKode 


BenytMatadorspil:
Fold kodeboks ind/udKode 




23 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Ja men den bliver da først initialiseret i metoden?

Ja men den kan "ses" i hele klassen ikke kun i metoden. Du initialiserer den i metoden, men du deklarerer den i klassen. Hvis du lavede en ny variabel, "String ejer;" inde i metoden ville den være "lokal til metoden" og overskygge klassens "ejer". Men det har du ikke så det burde ikke være noget problem.

Er 100% sikker på at problemet er noget med at Swing GUI tråden og main tråden ikke ser den samme.


Nåh ja kan jeg godt se nu.

Ja det er det sikkert, men kan bare ikke se hvor det går galt.

Nogen der kan se hvor det går galt med "ejer"?
Hvorfor ejer altid er null?



Indlæg senest redigeret d. 18.01.2010 16:56 af Bruger #15575
Nogen der kan se hvor det går galt med "ejer"? Hvorfor ejer altid er null?

Er kommet frem til at det nok er en "Memory Consistency error": http://java.sun.com/docs/books/tutorial/essential/concurrency/memconsist.html

Jeg tror også jeg er kommet ud for samme problem i et program jeg i gang med. Og ved ikke hvordan jeg kan løse den. Har prøvet synchronized og volatile men løser ikke problemet. Nogen der ved hvordan problemet løses?



Tror jeg har fundet en løsning. Hvis den virker er den meget simpelt (eller sagt på en anden måde det skal rettes alligevel).

I din betytmatadorspil laver du det nyt matadorspil. Det gør du dog ogå i dit panel. Så du har 2 matadorspil. Når du har ændret dette garanterer det dog ikke at du ikke får trådningsproblemer.



Tror jeg har fundet en løsning. Hvis den virker er den meget simpelt (eller sagt på en anden måde det skal rettes alligevel).

I din betytmatadorspil laver du det nyt matadorspil. Det gør du dog ogå i dit panel. Så du har 2 matadorspil. Når du har ændret dette garanterer det dog ikke at du ikke får trådningsproblemer.


Jeg har prøvet at fjerne dem i begge klasser, men så virker spillet overhovedet ikke.

Hvis det altså var det du mente?



Jeg har prøvet at fjerne dem i begge klasser, men så virker spillet overhovedet ikke.

Hvis det altså var det du mente?

Nej du skal ikke fjerne begge så har du jo intet "matadorspil". Du skal bare nøjes med èn som de begge bruger.

Før havde du en som dit panel brugte til at tegne med.

Så havde du en anden som din main metode ændrede i. Men dit panel blev ved med at bruge den anden.

Så èt matadorspil som begge bruger er hvad du skal bruge.



Ja det var os det jeg mente.

Det har jeg prøvet i hver klasse. Altså ført at fjerne den ene, og bagefter fjerne den anden.

Så kan spillet bare ikke køre.

Så ved ikk helt hvordan jeg skal gøre det



Jeg har også andre klasser som Start, Rederi, Helle, Bryggeri.

Disse klasser kan dog godt undværes, da de kun er "ekstra" felter i spillet. Det er nok dem du mangler.

Spillet burde bare kunne fungere uden dem.








Hej Kristian,

Sidste del af mit indlæg beskriver hvordan du bør rette stadig.

Med venlig hilsen
Ieet




Tak jeg vil prøve at arbejde på det i morgen.

Med hensyn til strukturen, så er det efter min Java-bog jeg har lavet det, da det er den der har kommet med eksemplet, og jeg har lavet videre.

Så delvis bogen og delvis mig :)



Jeg har nu rykket rundt på det som du sagde, og fået slettet den ekstra Matadorspil.java.

Jeg kan stadig ikke få det til at virke. Det gør nøjagtig som før, og jeg kan ikke se hvad der skal ændres.

Koden er nu som følger:

Matadorspil:
Fold kodeboks ind/udKode 


BenytMatadorspil:
Fold kodeboks ind/udKode 




<< < 123 > >>
t