Sjakk er et av verdens mest populære brettspill. I denne oppgaven skal du implementere spillet sjakk etter beste evne. Om du er usikker på reglene, kan du lese deg opp her.

Du står fritt til å implementere sjakk så komplisert du selv ønsker, men som et minimum må programmet inkludere:

  • Grafisk representasjon av brettet (Tips: Sjakkbrikker er en del av unicode)
  • Mulighet for å taste inn trekk
  • Oppdagelse av ugyldige trekk (se bort fra en passant)
  • Oppdagelse av sjakk matt

Andre ting som kan være fint å ha med:

  • Lagring og lasting av spill
  • Generering av gyldige trekk, slik at du kan lage en (veldig dum) sjakkcomputer som spiller tilfeldige trekk

 

Dette er en veldig vanskelig og tidkrevende oppgave, men gir god trening i å skrive store programmer og tenke abstrakt.

Eksempel på kjøring
	                    
	   ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜  
	   ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟  
	   . . . . . . . . . . 
	   . . . . . . . . . .  
	   . . . . . . . . . . 
	   . . . . . . . . . .  
	   ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙  
	   ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖  
	                    
	                    
Hvit i trekket. Oppgi et trekk: e2e4
 
	   ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜  
	   ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟  
	   . . . . . . . . . . 
	   . . . . . . . . . .  
	   . . . . . ♙ . . . . 
	   . . . . . . . . . .  
	   ♙ ♙ ♙ ♙ . ♙ ♙ ♙  
	   ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖  
	                    
                    
Svart i trekket. Oppgi et trekk: c7c5

	   ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜  
	   ♟ ♟ . ♟ ♟ ♟ ♟ ♟  
	   . . . . . . . . . . 
	   . . ♟ . . . . . . .  
	   . . . . . ♙ . . . . 
	   . . . . . . . . . .  
	   ♙ ♙ ♙ ♙ . ♙ ♙ ♙  
	   ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖  
 
Hvit i trekket. Oppgi et trekk:
 
  • No labels