Gå til innhold

Anbefalte innlegg

Hei!

 

Eg sitter med ein array som minnes om eit sjakkbrett, og eg strever med å skrive angripsbanene til dronningane som blir plassert ut.

Kode:

Array(

Array(0,0,0,0,0,0,0,0),

Array(0,0,0,0,0,0,0,0),

Array(0,0,0,0,0,0,0,0),

Array(0,0,0,0,0,0,0,0),

Array(0,0,0,0,0,0,0,0),

Array(0,0,0,0,0,0,0,0),

Array(0,0,0,0,0,0,0,0),

Array(0,0,0,0,0,0,0,0),

)

 

Kalt, BrettB.

Det eg vil er at når ein av verdiane blir forandret til heiltallet '1', vil angrepsbanane bli dannet ved å skifte dei til heiltallet '2'.

 

f.eks:

Korleis array'en ser ut etter ein loop trace:

Kode:

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

 

Så forandres eit av verdiane til '1':

Array[1][2] = 1;

Kode:

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Og så vil angrepsbanene bli dannet i forhold til heiltallets plassering:

Forinfo:

variablane a og b brukt i koden under er frå for loop, der første loopen har ein køyr på 8 runder (var a), og inneholder ein ny loop med 8 runder (var b).Enkelt sagt inneholder var b info om kor i Arrayen, arrayen som innehalder heiltallet 1 er.

b blir som y aksen og a som x aksen.

 

variabellen i, gjør ein loop på 8 runder slik at den skal dekke alle verdiane som trengs å bli omskrevet.

 

Koden:

http://pastebin.com/9iexdPQC

 

 

Loddrett:

Kode:

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

0 1 0 0 0 0 0 0

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

 

kode:

if(BrettB != 1)

BrettB=2;

Så vatnrett:

Kode:

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

2 1 2 2 2 2 2 2

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

0 2 0 0 0 0 0 0

 

kode:

if(BrettB[a] != 1)

BrettB[a]=2;

 

 

Så diagonalt frå venstre til høgre:

Kode:

0 2 0 0 0 0 0 0

2 2 0 0 0 0 0 0

2 1 2 2 2 2 2 2

0 2 2 0 0 0 0 0

0 2 0 2 0 0 0 0

0 2 0 0 2 0 0 0

0 2 0 0 0 2 0 0

0 2 0 0 0 0 2 0

 

kode:

if(i < BrettB.length-c && BrettB[c+(i*1)] != 1)//venstre -> høgre

BrettB[c+(i*1)]=2;

 

 

Så diagonalt frå høgre til venstre:

Kode:

0 2 0 2 0 0 0 0

2 2 2 0 0 0 0 0

2 1 2 2 2 2 2 2

2 2 2 0 0 0 0 0

0 2 0 2 0 0 0 0

0 2 0 0 2 0 0 0

0 2 0 0 0 2 0 0

0 2 0 0 0 0 2 0

 

kode:

if((b+d)-(i*1)>=0 && BrettB[(b+d)-(i*1)] != 1)//høgre -> venstre

BrettB[(b+d)-(i*1)]=2;

 

Håper dere fortsatt henger med!

Uansett, så kommer vi nå til problemet!

 

Køyrer eg denne koden 4 ganger oppstår det ein feil, der angrepsbana frå venstre til høgre ikkje skrives komplett. Og eg ender opp med dette:

Kode:

0,2,2,2,2,2,0,0

2,2,1,1,2,2,2,2

2,1,2,1,2,2,2,2

2,2,2,2,2,2,0,0

2,2,2,2,0,2,2,0

2,2,2,2,0,0,2,2

0,2,2,2,0,0,0,2

0,2,2,2,0,0,0,0

Her ser vi at BrettB[1][2] == 1, men den diagonale angrepsbanen ikkje fortsetter :/

 

Følgande skal vere 2, men er fortsatt 0:

BrettB[4][4]

BrettB[6][5]

BrettB[7][6]

 

 

 

 

Nokon som kan hjelpe meg?

Køyr på med spørsmål!

 

 

PS. Diskusjon.no er så bugget at eg ikkje kan bruke noko js relatert på sida. Så eg linker til denne tråden på freak.no også:

http://freak.no/forum/showthread.php?t=248616

Lenke til kommentar
Videoannonse
Annonse
  • 2 uker senere...

Eg klarte å fikse dette, men når ei dronning er innanfor dette feltet:

1627965.jpeg

 

f.eks at posisjonen blir y=5 og x=2:

1627966.jpeg

 

så vil eg at dronninga skal danne følgande angrepsbane (diagonalt):

1627969.jpeg

 

Men det klarer eg ikkje å kode :/

Så eg lurte om nokon kunne gi meg eit hint til korleis eg skal tenke ut dette her, altså matematisk framgangsmetode f.eks? Alt hjelper! :D

Eg klarer å danne dei andre angrepsbanene(beklager dårleg redigering):

1627980.jpeg

 

 

help? :D

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...