Gå til innhold

[Løst] Hjelp med sjakk oppgave


Anbefalte innlegg

Skrevet (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 av cupoftea
Videoannonse
Annonse
Skrevet (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 av Kiff
  • Liker 1
Gjest Slettet+9871234
Skrevet

Jeg har kode i såvel C++ / C som php.

Skrevet

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å :)

  • 3 uker senere...
Skrevet (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 av srbz

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...