TAppDictionary::TAppDictionary(int InitialCount) { if (InitialCount != 0) Table = AllocTable(InitialCount); if (Table) NumEntries = InitialCount; else NumEntries = 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; }
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]; }
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; }