Ad esempio, se viene tentata una mossa, posso semplicemente scorrere un elenco di mosse legali e confrontare x, y, ma devo scrivere la logica per calcolarle almeno ogni volta che il pezzo viene spostato.
Oppure, posso archiviare in un array [] e quindi controllare se x e y non sono 0, quindi è una mossa legale e quindi salverò i dati come questo [0] [1] [0] [0] ecc. Ecc. Per ogni riga in cui 1 è una mossa legale, ma devo ancora popolarlo.
Mi chiedo quale sia il modo più veloce per archiviare e leggere una mossa legale su un oggetto pezzo per il calcolo.
Potrei anche usare Matrix Matrix, ma non lo so.
Fondamentalmente voglio mantenere le regole per un determinato pezzo in modo da poter assegnare a un oggetto pezzo un piccolo modello di tutte le possibili mosse, considerando che sta iniziando dalla posizione corrente , che dovrebbe essere solo una tabella dei dati. Ma è più veloce eseguire cicli o scrivere query LINQ o archiviare array e matrici?
public class Move
{
public int x;
public int y;
}
public class ChessPiece : Move
{
private List<Move> possibleMoves { get; set; }
public bool LegalMove(int x, int y){
foreach(var p in possibleMoves)
{
if(p.x == x && p.y == y)
{ return true; }
}
}
}
Qualcuno lo sa?