public TranspTable(uint size) { chaves = new ulong[bbConstants.PECAS + 1, 64]; chavesRoque = new ulong[4]; this.size = size; this.tabela = new TranspItem[size]; objLock = new object[(size / 1000) + 1]; for (int i = 0; i < (size / 1000) + 1; i++) { objLock[i] = new object(); } read(); movsBuscados = new List <movBusc> [bbConstants.MAXPLY]; for (int i = 0; i < 4; i++) { lock (lockMove) { movsBuscados[i] = new List <movBusc>(); for (int j = 0; j < bbConstants.MAXPLY; j++) { movBusc movB = new movBusc(); movB.hash = 0; movsBuscados[i].Add(movB); } } } }
public Boolean verificaSeBuscado(int id, ulong hash, ulong moveHash, int ply) { for (int i = 0; i < 4; i++) { if (i != id) { // lock (lockMove) // { if ((movsBuscados[i][ply].hash == 0)) { break; } if ((movsBuscados[i][ply].hash == hash) && (movsBuscados[i][ply].moveHash == moveHash)) { return(false); } // } } } movBusc moveB; moveB = new movBusc(); moveB.hash = hash; moveB.moveHash = moveHash; //lock (lockMove) // { movsBuscados[id][ply] = moveB; //} return(true); }
public void retiraMov(int id, int ply) { movBusc moveB; moveB = new movBusc(); moveB.hash = 0; movsBuscados[id][ply] = moveB; }
public void reiniciarMovsBuscados() { movsBuscados = new List <movBusc> [bbConstants.MAXPLY]; for (int i = 0; i < 4; i++) { // lock (lockMove) { movsBuscados[i] = new List <movBusc>(); for (int j = 0; j < bbConstants.MAXPLY; j++) { movBusc movB = new movBusc(); movB.hash = 0; movsBuscados[i].Add(movB); } } } }