Gå til innhold

[Løst] Trenger hjelp med JAVA skoleoppgave


Anbefalte innlegg

Videoannonse
Annonse

Jeg har utviklet et sjakkspill, i sjakkspillet fungerer nå alt som det skal, bare jeg har ikke regler for hvordan brikker kan flyttes.

 

Det jeg mangler er at når du trykker på en bonde, så skal et felt foran lyses opp for å markere hvor bonden har lov til å flytte.

 

 

Har fått to e-poster av min lærer som forklarer, så legger med en fil der epostene ligger og src filen til java prosjektet:

 

http://home.no/inborn1/src.rar

 

 

Jeg klarer å markere feltet bonden står på, men sliter med å markere feltet foran. I tillegg får jeg ikke fjernet markeringen når trekket er utført / bonden er dearmert

Endret av znerken
Lenke til kommentar

Jeg klarer å markere feltet bonden står på, men sliter med å markere feltet foran. I tillegg får jeg ikke fjernet markeringen når trekket er utført / bonden er dearmert

 

Hvis du har logikken for å merke ett felt (der brikken står), hvordan skiller det seg fra å merke et annet felt?

Lenke til kommentar

Det skiller seg vel ikke, men hvordan merker jeg felte foran? For å merke kun et felt kan jeg jo bare skrive det i mouseclick, at den setter "isHighlighted = true;". Jeg må vel gjøre det på en row + etc, hvis du ser på e-postene han sendte.

Endret av znerken
Lenke til kommentar

Hvis du antar at en bonde har en bestemt posisjon, (x,y)

 

  • marker x,y
  • sjekk farge og marker y+/-1
  • sjekk om du er på rad 2 (hvit) eller 7 (svart), og i såfall marker y+-2
  • sjekk om det er brikker på skrå og marker x+-1, y+-1

 

markerFelt(int x,int y){
   //Dette sier du at du har fått til for en bestemt x og y
}

Endret av Kiff
Lenke til kommentar

Hvis du antar at en bonde har en bestemt posisjon, (x,y)

 

  • marker x,y
  • sjekk farge og marker y+/-1
  • sjekk om du er på rad 2 (hvit) eller 7 (svart), og i såfall marker y+-2
  • sjekk om det er brikker på skrå og marker x+-1, y+-1

 

markerFelt(int x,int y){
   //Dette sier du at du har fått til for en bestemt x og y
}

 

 

 

Det er det jeg har tenkt og , bare lurer på hvordan jeg får ut posisjonene, hvordan jeg finner feltet som er trykket

på, row og col

 

 

 

Klassen jeg stimulerer museklikket fra er klassen Brikke. Brikke er en superklasse for alle underbrikkene. I klassen brikke lagde jeg en metode som går i Chain of resposnibility tilbake til square. I square har jeg en paint metode som tegner et rektangel på "Squaren" som er klikket på. Egentlig er det ikke Square som er klikket på, men heller en brikke.

 

 

Det jeg vil er at når jeg klikker på en brikke, for eks bonde, da blir den armert, da skal mulige felt den har lov å flytte til lyse opp som grønne.

 

 

Flott hvis der ser på koden, er endel lettere å forstå hva jeg skal frem til da..Spesielt ved hjelp av e-postene jeg la ved i koden.

Endret av znerken
Lenke til kommentar

Ideelt sett ville jeg nok skilt gui fra spill-logikken, da hadde det vært lettere å manipulere status i bakkant og tegne basert på dette.

 

Hvis jeg forstår deg rett så er programmet ditt bygget opp av 64 squares som hver er klikkbar og har ansvar for å tegne seg selv. Da må du finne en måte å få tak i de andre square objektene på.

Lenke til kommentar

Når du markerer brikken kan du sende brikkeobjektet til logikken. Logikken spør brikken hvor den er, hvilke type brikke den er og om den er valgt..så kan logikken ut fra dette regne ut hvilke ruter som er godkjente å flytte til.

 

Det du kan gjøre er å finne ut hvordan du lager et Rectangle object basert på matrisen. F.eks du vet at squaren er 0,64 i matrisa..når du vet størrelsen på sjakkbrettet så kan du lage deg et Rectangle objekt og tegne opp f.eks. Eller at klassen for square har en metode som returnerer en Rectangle for enkelhetsskyld.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...