TAppDictionary::TAppDictionary(int InitialCount)
{
    if (InitialCount != 0)
        Table = AllocTable(InitialCount);

    if (Table)
        NumEntries = InitialCount;
    else
        NumEntries = 0;
}
Exemple #2
0
int main(IN int argc, IN char** argv)
{
    if (argc != 3)
    {
        printf("Player <width> <height>\r\n");
        return 0;
    }

    EFI_GUID gEfiConwayExampleGUID = EFI_CONWAY_EXAMPLE_PROTOCOL_GUID;

    EFI_STATUS Status = gBS->LocateProtocol(&gEfiConwayExampleGUID, NULL, (VOID**)&ConwayExample);
    if (EFI_ERROR(Status))
    {
        Print(L"LocateProtocol %r\n", Status);
        return Status;
    }

    CONST UINT8 w = (UINT8)strtol(argv[1], 0, 10);
    CONST UINT8 h = (UINT8)strtol(argv[2], 0, 10);

    Status = ConwayExample->SetArea(ConwayExample, w, h);
    if (Status != 0)
    {
        Print(L"SetArea %r\n", Status);
        return Status;
    }

    UINT8** Table = 0;
    AllocTable(&Table, 0, w, h);

    for (int ge = 1;; ++ge)
    {
        ConwayExample->GetNext(ConwayExample, Table);

        for (int i = 0; i < h; ++i)
        {
            for (int j = 0; j < w; ++j)
            {
                printf(Table[j][i] ? "O " : "  ");
            }
            printf("\n\r");
        }

        printf("Generate %d\r\n", ge);
        fflush(stdout);

        while (1)
        {
            char cmd = (char)getchar();
            if (cmd == 'q') exit(0);
            else break;
        }
    }
    //return 0;
}
Exemple #3
0
int setoption(char *input, ENGINE_STATE *stat)
{
  int val = 0;
  if (sscanf(input, "setoption name Hash value %i", &val)) {
    DeleteTable(&hash_table);
    DeletePawnTable(&pawn_table);
    if (AllocPawnTable(&pawn_table, 0.2*val) == 0) return 0;
    if (AllocTable(&hash_table, 0.8*val) == 0) return 0;
    ClearHashTable(&hash_table);
    ClearPawnTable(&pawn_table);
  } else if (sscanf(input, "setoption name Contempt value %i", &val)) {
    stat->control->contempt = val;
    printf("contempt: %i\n", stat->control->contempt);
  }
  return 1;
}
TAppDictionaryEntry *TAppDictionary::GrowTable(int Increment)
{
    int OldNumEntries = NumEntries;
    TAppDictionaryEntry * OldInstanceDataTable = Table;

    NumEntries = NumEntries + Increment;

    Table = AllocTable(NumEntries);

    // copy old table to new location
    _fmemcpy(Table, OldInstanceDataTable,
        OldNumEntries * sizeof(TAppDictionaryEntry));

    FreeTable(OldInstanceDataTable);

    // return pointer to first entry in new block

    return &Table[OldNumEntries];
}
Exemple #5
0
int main(int argc, char *argv[])
{
  BOARD main_board;
  InitBoard(&main_board);
  ReadFEN(STARTPOS, &main_board);
  
  CONTROL engine_control;
  engine_control.stop = 1;
  
  ENGINE_STATE engine = {&main_board, &engine_control};
  
  if (AllocTable(&hash_table, 0.8*TABLESIZE) == 0) {
    printf("Not enough memory\n");
    return 1;
  }
  ClearHashTable(&hash_table);
  
  if (AllocPawnTable(&pawn_table, 0.2*TABLESIZE) == 0) {
    printf("Not enough memory\n");
    return 1;
  }
  ClearPawnTable(&pawn_table);
  
  setvbuf(stdin, 0, _IONBF, 0);
  setvbuf(stdout, 0, _IONBF, 0);
  fflush(NULL);
  char input[BUFFER];

  while (fgets(input, BUFFER, stdin)) {
    if (!Command(input, &engine)) {
      break;
    }  
    memset(input, 0, BUFFER);
  }
  
  DeleteTable(&hash_table);
  DeletePawnTable(&pawn_table);
  return 0;
}