Känns som du vill att andra ska göra lite för mycket för att du ska lära dig programmera själv.
Några tips:
* Ta en sak i taget, tänk inte på alla problem direkt, utan ta ett problem först och lös det eller dela upp det i delproblem
* Rita upp alla klasser som behövs och alla attribut de ska innehålla, åtkomstmetoder (getPlayer() och setPlayer() om du har attributet player i din klass för pjäser) är underförstådda, har du ett attribut SKA du ha åtkomstmetoder för det
* Börja koda, sitt inte och tänk på vilka design patterns du kan använda såhär i början, du måste förstå hur olika patterns implementeras för att förstå dem och se om du kan ha någon nytta av dem i din kod
* Det är din kod, inte vår, skriv den du, kom med specifika frågor när du möter problem istället för att komma med en hög med frågor utan någon skriven kod, försök lösa de olika problemen så kommer du se att du klarar det utan att vi säger något
Jag har själv skrivit ett AI som spelar dam som spelas på samma bräde som schack, dina tankar om klasser och så är bra men börja försöka fylla dessa klasser med innehåll istället för att bara räkna upp dem, vad behöver varje klass veta?
Angående MVC, ja, du kan skriva ditt schackspel med MVC, men MVC säger inte att du ska ha EN modell, det säger att du ska separera modellen från presentationen och kontrollen. Du kan ha flera modeller med MVC och dina modeller är just de klasser du har som beskriver brädet, pjäserna och så vidare, din Board-klass modellerar ett bräde, det är precis det M:et i MVC står för.
Du kan heller inte se det som att en ruta består av en pjäs, en ruta kan innehålla en pjäs men den består inte av en pjäs. Däremot består ett bräde av ett antal rutor. Din uppdelning av pjäserna är riktigt bra, då kan du sätta saker som vilken spelare pjäsen tillhör och så i din Piece-klass och sen skriva funktionen för att flytta pjäsen i subklasserna.
Angående din array, dimensionen på din array spelar ingen roll gällande om den innehåller objekt eller inte, har du en klass som beskriver rutorna kommer din array för brädet att innehålla dessa objekt oavsett om den ser ut som board[][] eller board[].
Förstår dock inte ditt stycke efter det om arrayen i ditt sista inlägg. Säg att du har en klass som heter Board som beskriver ditt bräde och i spelet har du ett objekt av den klassen som heter board, då skulle en flytt av en pjäs kunna skrivas såhär från ruta i till ruta j:
board.getSquare(i).removePiece();
board.getSquare(j).addPiece(this);
Den koden ska självklart ligga i metoden för att flytta pjäsen i pjäs-klassen så därför skickar du in this som parameter till addPiece() eftersom this är magisk och alltid hänvisar till det objekt den skrivs i.
Lite hjälp på traven, men försök tänka efter en gång extra efter att du tagit en kaffepaus eller så innan du ställer frågor för ofta kan det räcka med lite vila från problemet för att se lösningen när man sätter sig igen sen. Har själv tagit ett antal kaffepauser på jobbet den här veckan av just den anledningen när allt verkat hopplöst och löst det direkt efter pausen.