Don't know. If you want to implement 3d Chess then you probably need some kind of a 3d scene viewer.
Can you use winboard for that? Otherwise you need to implement a viewer yourself.
public int ComputeHashKey(ulong occupancy, ulong magic, int nBits)
{
var ind = occupancy * magic;
var hashKey = (int)(ind >> (64 - nBits));
return hashKey;
}
public void FillDiagonalMovesHashTable()
{
var diagonalOccupancies = GenOccupancies(DiagonalOcc, 0);
foreach (var occupancy in diagonalOccupancies)
{
int index = ComputeHashKey(occupancy, DiagonalMagicNr, NDiagonalBits);
DiagonalMovesArr[index] = GenerateDiagonalMoves(occupancy);
}
}
Maybe even possible now to use an other hashfunction. Have not tried yet.
O wait hashfunction for move generation must be perfect. That is collision free. So can't use standard hashalgorithms from C# I guess.
Random(seed) also does not generate unique numbers.
seed = diagonal or vertical occupancy(square, position)
Problem is I do have these magic numbers but lost the code that generated them.
So if these magic numbers get accidentally corrupted I can't generate different ones.
Some people using Microsoft PowerApps or similar.
So trent is low code, configure and using some strange scription language to knit the pieces together?
If so then better copy (modules of) an existing chess engine.
Programming from scratch forbidden for it costs too much (development) time ??
Still repairing compile errors. For days now. Something went wrong.
Maybe:
- never change code that worked
- never use constants or enums
- writing generic code impossible unless something small
- don't try to make code solid unless it is new code