int main(int argc, char* argv[]) { sSdlWrapper* wrap = initializeSDLWrapper("Snake", 800, 600, 32, 1, 1); game* gameEngine = initGame(wrap, 32, 24); int Selection = 0; sTextGFX* startUnsel = createText(wrap, "Start Game", 0xFFFFFFFF); sTextGFX* startSel = createText(wrap, "Start Game", 0xFFFFF000); sTextGFX* exitUnsel = createText(wrap, "Exit Game" , 0xFFFFFFFF); sTextGFX* exitSel = createText(wrap, "Exit Game" , 0xFFFFF000); sLinkedList* titleList = 0; FILE* titleFile = fopen("snake.pic", "r"); listInitialize(&titleList, sizeofPoint(), NULL); for(int x = 0; x < 32; x++) for(int y = 0; y < 24; y++) if(x == 0 || x == (31) || y == 0 || y == (23)) { point* toAdd = createPoint(x,y); listPushFront(titleList, (void*)toAdd); free(toAdd); } while(isRunning(wrap)) { beginFrame(wrap); if(State == -1) { readTitleFile(titleList, titleFile); renderList(titleList, wrap); } else if(State == 1) tick(gameEngine); else { if(Selection == 0) { renderText(wrap, startSel, 400, 300); renderText(wrap, exitUnsel, 400, 325); } else { renderText(wrap, startUnsel, 400, 300); renderText(wrap, exitSel, 400, 325); } if(keyDown(wrap, SDLK_DOWN)) Selection = 1; if(keyDown(wrap,SDLK_UP)) Selection = 0; if(keyDown(wrap, SDLK_RETURN)) { if(Selection == 0) { State = 1; setupGame(gameEngine); } else toggleRunning(wrap); } renderList(titleList, wrap); } if(keyPressed(wrap, SDLK_ESCAPE)) toggleRunning(wrap); endFrame(wrap); } listClear(titleList); free(titleList); destroyText(startUnsel); destroyText(startSel); destroyText(exitUnsel); destroyText(exitSel); deinitializeWrapper(wrap); destroyGame(gameEngine); free(wrap); return 0; }
int main(int argc, char *argv[]) { List list; Data *data[6]; int i, errors = 0; for (i = 0; i < 6; i++) { data[i] = calloc(1, sizeof(Data)); } listInitialize(&list); TEST_INT(listLength(&list), 0); TEST_INT(listIsEmpty(&list), TRUE); listAppendTail(&list, data[0]); listAppendTail(&list, data[1]); listAppendTail(&list, data[2]); listAppendTail(&list, data[3]); TEST_INT(listLength(&list), 4); TEST_INT(listIsEmpty(&list), FALSE); TEST_PTR(listHead(&list), data[0]); TEST_PTR(listTail(&list), data[3]); TEST_PTR(listNext(data[0]), data[1]); TEST_PTR(listNext(data[1]), data[2]); TEST_PTR(listNext(data[2]), data[3]); TEST_PTR(listNext(data[3]), NULL); TEST_PTR(listPrev(data[3]), data[2]); TEST_PTR(listPrev(data[2]), data[1]); TEST_PTR(listPrev(data[1]), data[0]); TEST_PTR(listPrev(data[0]), NULL); TEST_PTR(listContaining(data[0]), &list); TEST_PTR(listContaining(data[1]), &list); TEST_PTR(listContaining(data[2]), &list); TEST_PTR(listContaining(data[3]), &list); listRemove(&list, data[0]); listRemove(&list, data[1]); listRemove(&list, data[2]); listRemove(&list, data[3]); TEST_INT(listLength(&list), 0); TEST_INT(listIsEmpty(&list), TRUE); TEST_PTR(listContaining(data[0]), NULL); TEST_PTR(listContaining(data[1]), NULL); TEST_PTR(listContaining(data[2]), NULL); TEST_PTR(listContaining(data[3]), NULL); listInsertHead(&list, data[3]); listInsertHead(&list, data[2]); listInsertHead(&list, data[1]); listInsertHead(&list, data[0]); TEST_INT(listLength(&list), 4); TEST_INT(listIsEmpty(&list), FALSE); TEST_PTR(listHead(&list), data[0]); TEST_PTR(listTail(&list), data[3]); TEST_PTR(listNext(data[0]), data[1]); TEST_PTR(listNext(data[1]), data[2]); TEST_PTR(listNext(data[2]), data[3]); TEST_PTR(listNext(data[3]), NULL); TEST_PTR(listPrev(data[3]), data[2]); TEST_PTR(listPrev(data[2]), data[1]); TEST_PTR(listPrev(data[1]), data[0]); TEST_PTR(listPrev(data[0]), NULL); TEST_PTR(listRemoveHead(&list), data[0]); TEST_PTR(listRemoveHead(&list), data[1]); TEST_PTR(listRemoveTail(&list), data[3]); TEST_PTR(listRemoveTail(&list), data[2]); TEST_INT(listLength(&list), 0); TEST_INT(listIsEmpty(&list), TRUE); listAppendTail(&list, data[0]); listAppendTail(&list, data[3]); listAppend(&list, data[1], data[0]); listInsert(&list, data[2], data[3]); TEST_PTR(listRemoveHead(&list), data[0]); TEST_PTR(listRemoveHead(&list), data[1]); TEST_PTR(listRemoveTail(&list), data[3]); TEST_PTR(listRemoveTail(&list), data[2]); data[0]->i = 3; data[1]->i = 4; data[2]->i = 5; data[3]->i = 1; data[4]->i = 2; data[5]->i = 3; listAppendTail(&list, data[0]); listAppendTail(&list, data[1]); listAppendTail(&list, data[2]); listAppendTail(&list, data[3]); listAppendTail(&list, data[4]); listAppendTail(&list, data[5]); listSort(&list, cmp); TEST_PTR(listRemoveHead(&list), data[3]); TEST_PTR(listRemoveHead(&list), data[4]); TEST_PTR(listRemoveHead(&list), data[0]); TEST_PTR(listRemoveHead(&list), data[5]); TEST_PTR(listRemoveHead(&list), data[1]); TEST_PTR(listRemoveHead(&list), data[2]); exit(errors); }
int main(int argc,char **argv) { list_t list; int index; char *arg; int elements; /* Initialize our list. */ listInitialize(&list); /* Fill our list with all command line arguments given, but skip the * first argument since that's our needle (see below -> listSearch()). */ for(index=2;index<argc;index++) { /* Append the argument to our list. */ if(listAppend(&list,(void *)argv[index])!=listRtrnOk) { fprintf(stderr,"Can't create item!\n"); break; } /* Advance to this next position. By default listAppend() does not * advance our current pointer to the appended element. */ listNext(&list); } /* Print all our arguments from the first to the last. */ printf("First to last:\n"); /* Does any argument exist? */ if((arg=(char *)listFirst(&list))!=NULL) { /* Yes, we print it and... */ do { printf("[%s]\n",arg); /* ...advance to the next argument, untill none left. */ } while((arg=(char *)listNext(&list))!=NULL); } else { printf("empty list\n"); } /* Print all our arguments from the last to the first. */ printf("Last to first:\n"); /* Does any argument exist? */ if((arg=(char *)listLast(&list))!=NULL) { /* Yes, we print it and... */ do { printf("[%s]\n",arg); /* ...advance to the next argument, untill none left. */ } while((arg=(char *)listPrevious(&list))!=NULL); } else { printf("empty list\n"); } /* If there do exist enough arguments... */ if(argc>=2) { /* ...search for the first one given... */ arg=listSearch(&list,cmpr,(void *)argv[1]); /* ...and tell if it's found. */ printf("searching for [%s]... %sfound\n",argv[1],arg!=NULL?"":"not "); } /* Randomly remove half of the arguments. */ srandom(getpid()); for(elements=listElements(&list)/2;elements>0;elements--) { int element=(random()%(argc-2))+2; arg=listSearch(&list,cmpr,(void *)argv[element]); printf("Removing [%s]... ",argv[element]); if(arg!=NULL) { listRemove(&list,NULL); printf("ok\n"); } else { printf("not in the list!\n"); } } /* Print all our arguments from the first to the last. */ printf("First to last:\n"); /* Does any argument exist? */ if((arg=(char *)listFirst(&list))!=NULL) { /* Yes, we print it and... */ do { printf("[%s]\n",arg); /* ...advance to the next argument, untill none left. */ } while((arg=(char *)listNext(&list))!=NULL); } else { printf("empty list\n"); } /* Print all our arguments from the last to the first. */ printf("Last to first:\n"); /* Does any argument exist? */ if((arg=(char *)listLast(&list))!=NULL) { /* Yes, we print it and... */ do { printf("[%s]\n",arg); /* ...advance to the next argument, untill none left. */ } while((arg=(char *)listPrevious(&list))!=NULL); } else { printf("empty list\n"); } /* Destroy the list and all its elements. */ listDestroy(&list,garbageCollect); return(0); }