cupoftea Skrevet 21. mars 2012 Del Skrevet 21. mars 2012 (endret) Hei, vi er en gruppe på 4, Vi skal programmere sjakk. Akkurat nå står vi fast på hvordan konge, og bonde skal angripe skrå. Kongen flytter på skrå og angriper vertikalt og horisontalt. //angrep hvit bonde mot svart brikke else if(isWhite())if((Math.abs(frax-tilx) == 1) && tily-1 == fray){ if(!brett.getBrett()[tilx][tily].isWhite()){ return true; } } //angrep sort bonde mot hvit brikke else if(!isWhite())if((Math.abs(frax-tilx) == 1) && tily+1 == fray){ if(brett.getBrett()[tilx][tily] != null && brett.getBrett()[tilx][tily].isWhite()){ return true; } } return false; } //angrep ved skrå if((Math.abs(frax-tilx) == 1) && (Math.abs(fray-tily)==1)){ return brett.getBrett()[tilx][tily].isWhite()!=isWhite()? true:false; } //angrep vertikalt og horisontalt if((Math.abs(frax-tilx)==1&&fray==tily)|| (Math.abs(fray-tily)==1&&frax==tilx)){ return brett.getBrett()[tilx][tily].isWhite()!=isWhite()? true:false; } return false; } Når vi tester dem i Junit, får vi at angrep på skrå ikke er gyldig Endret 21. mars 2012 av cupoftea Lenke til kommentar
Kiff Skrevet 21. mars 2012 Del Skrevet 21. mars 2012 (endret) Koden er veldig vanskelig å lese. Prøv å skrive den litt finere, det hjelper både dere og øker sjangsen for å få hjelp. To tips: Det er en god ide og alltid bruke { etter if. Sett alltid ny if på ny linje. kode som else if(isWhite())if (...) er å be om problemer. Dere bruker variasjoner av Math.abs(frax-tilx)==1&&fray==tily) flere ganger. Kan dette skilles ut i en forklarende metode?F.eks private boolean hasMovedDiagonally(int x, int dx, int y, int dy, boolean forward){ //... } Endret 21. mars 2012 av Kiff 1 Lenke til kommentar
Gjest Slettet+9871234 Skrevet 21. mars 2012 Del Skrevet 21. mars 2012 Jeg har kode i såvel C++ / C som php. Lenke til kommentar
cupoftea Skrevet 21. mars 2012 Forfatter Del Skrevet 21. mars 2012 Koden er veldig vanskelig å lese. Prøv å skrive den litt finere, det hjelper både dere og øker sjangsen for å få hjelp. To tips: Det er en god ide og alltid bruke { etter if. Sett alltid ny if på ny linje. kode som else if(isWhite())if (...) er å be om problemer. Dere bruker variasjoner av Math.abs(frax-tilx)==1&&fray==tily) flere ganger. Kan dette skilles ut i en forklarende metode?F.eks private boolean hasMovedDiagonally(int x, int dx, int y, int dy, boolean forward){ //... } takk for svar, vi har løst det nå Lenke til kommentar
GeirGrusom Skrevet 21. mars 2012 Del Skrevet 21. mars 2012 Jeg har kode i såvel C++ / C som php. Det er Java... Lenke til kommentar
srbz Skrevet 11. april 2012 Del Skrevet 11. april 2012 (endret) Jeg merker meg at tråden er både litt gammel og løst, men jeg vil bare skyte inn at kongen kan både bevege seg og angripe i alle retninger - diagonalt, horisontalt og vertikalt, alle veier edit: Sorry, det er vel også slik dere har implementert det åpenbart Endret 11. april 2012 av srbz Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå