Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public void retiraMov(int id, int ply)
        {
            movBusc moveB;

            moveB                 = new movBusc();
            moveB.hash            = 0;
            movsBuscados[id][ply] = moveB;
        }
Ejemplo n.º 4
0
        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);
                    }
                }
            }
        }