int main(int argc, char *argv[]) { /* Test the list implementation */ struct ListElement* head = ListElement(0); append(head, 1); append(head, 2); append(head, 3); printList(head); deleteElem(&head, 2); puts("Aus der Mitte gelöscht:"); printList(head); deleteElem(&head, 0); puts("Vom Anfang gelöscht:"); printList(head); deleteElem(&head, 1); puts("Vom Ende gelöscht:"); printList(head); freeAll(&head); /* Test the tree implementation */ struct Node* root = Node(24); insert(&root, 23); insert(&root, 31); insert(&root, 19); insert(&root, 3); insert(&root, 84); insert(&root, 46); insert(&root, 12); printTree(root); freeTree(&root); return 0; }
/* -----------------CharTest method documentation--------------------- This method will run through a series of tests using char values. It will call various methods and output to the standar I/O information useful in debugging and ensuring the accuracy of the above method. THIS METHOD IS NOT PART OF THE PROJECT, BUT CAN BE USED AS A GUIDELINE TO PROPER USE. @params none. */ void CharTest() { element root = NULL; char keyValue = 'j'; root = newRoot(root, &keyValue); int i; char array[] = { 'a', 't', 'z', 'b', 'o', 'd', 'e', 'o', 'w' }; int size = 9; printf("Root-->%X ... with key-->%c\n", root, *((char*)root->key)); for (i = 0; i < size; i++) { char valueTemp = array[i]; element z = NULL; insert(root, &valueTemp, sizeof(char), charCompare); } print(root, 'c'); element max = Max(root); element min = Min(root); printf("Current max = %c\n", *((char*)max->key)); printf("Current min = %c\n\n", *((char*)min->key)); element toRemove = Successor(root); printf("Deleting root succesor --> %c\n", *((char *)toRemove->key)); root = deleteElem( toRemove); print(root, 'c'); char toFind = 'y'; bool tempBool = search(root, &toFind, charCompare); printf("Searching for element --> %c\n", toFind); if (tempBool)printf("Found element\n\n"); else printf("Did not find element\n\n"); printf("In Order Walk...\n"); InOrderWalk(root, 'c'); printf("\n\n"); printf("Deleting root...\n"); root = deleteElem( root); print(root, 'c'); }
void Player::moveLeft() { irr::core::vector3df p = mesh->getPosition(); Position pos; int tmp; if (oldy > 40) { while (oldy > 40) { oldy--; p.Z--; } } else if (oldy < 10) { while (oldy < 10) { oldy++; p.Z++; } } if (oldx >= 10 || move(Direction::LEFT)) { tmp = oldx; oldx -= _speed; if ((oldx < 10) && !move(Direction::LEFT)) { oldx = 10; p.X = p.X - (10 - tmp); } else p.X -= _speed; if (oldx < 0) { oldx = 50 - abs(oldx); if (_map->getCell(_posY, _posX) != Tile::BOMB) _map->setCell(_posY, _posX, Tile::EMPTY); _posX -= 1; if (_map->getCell(this->_posY, this->_posX) >= (Tile)8) { getPowerUp(_map->getCell(this->_posY, this->_posX)); sound->getSoundPU(); pos.x = _posX; pos.y = _posY; deleteElem(pos); } _map->setCell(_posY, _posX, Tile::CHARACTER); } mesh->setPosition(p); } }
void Player::moveUp() { irr::core::vector3df p = mesh->getPosition(); Position pos; int tmp; if (oldx > 40) { while (oldx > 40) { oldx--; p.X--; } } else if (oldx < 10) { while (oldx < 10) { oldx++; p.X++; } } if (oldy <= 40 || move(Direction::UP)) { tmp = oldy; oldy += _speed; if ((oldy > 40) && !(move(Direction::UP))) { oldy = 40; p.Z = p.Z + (40 - tmp); } else p.Z += _speed; if (oldy >= 50) { oldy = oldy - 50.0f;; if (_map->getCell(_posY, _posX) != Tile::BOMB) _map->setCell(_posY, _posX, Tile::EMPTY); _posY += 1; if (_map->getCell(this->_posY, this->_posX) >= (Tile)8) { getPowerUp(_map->getCell(this->_posY, this->_posX)); sound->getSoundPU(); pos.x = _posX; pos.y = _posY; deleteElem(pos); } _map->setCell(_posY, _posX, Tile::CHARACTER); } mesh->setPosition(p); } }
int main() { List* list = createList(); int num = 0; do { printf("Enter num: "); scanf("%d", &num); if (num == 1) { int value = 0; scanf("%d", &value); ListElement *tmp = list->head; if (list->head->next == NULL) addElem(list->head, list, value); else { while (tmp->next->value < value) { tmp = tmp->next; if (tmp->next == NULL) break; } addElem(tmp, list, value); } } if (num == 2) { int value = 0; scanf("%d", &value); deleteElem(value, list); } if (num == 3) printList(list); } while(num != 0); deleteList(list); scanf("%*s"); return 0; }
void Ia::moveUp() { irr::core::vector3df r = mesh->getRotation(); irr::core::vector3df p = mesh->getPosition(); Position Mpos; r.Y = -90.0f; oldY = oldY + (1 * _speed); if (oldY < 100) p.Z += 1.0f * _speed; else { while (((int)p.Z % 50) != 0) { p.Z += 1.0f; } } mesh->setPosition(p); mesh->setRotation(r); if (oldY >= 100) { if (_map->getCell(_posY, _posX) != Tile::BOMB) { _map->setCell(_posY, _posX, Tile::EMPTY); } oldY = 50; _posY += 1; decision = true; Mpos.x = _posX; Mpos.y = _posY; p.X = (_posX * 50) - sizeX; p.Z = (_posY * 50) - sizeY; mesh->setPosition(p); _pos.push_back(Mpos); if (_map->getCell(_posY, _posX) >= (Tile)7) { getPowerUp(_map->getCell(_posY, _posX)); sound->getSoundPU(); deleteElem(Mpos); } _map->setCell(_posY, _posX, Tile::CHARACTER); } }
/* -----------------IntegerTest method documentation--------------------- This method will run through a series of tests using integer values. It will call various methods and output to the standar I/O information useful in debugging and ensuring the accuracy of the above method. THIS METHOD IS NOT PART OF THE PROJECT, BUT CAN BE USED AS A GUIDELINE TO PROPER USE. @params none. */ void IntegerTest() { element root = NULL; int keyValue = -1; root = newRoot(root, &keyValue); int i; int array[] = { 16, 17, 15, -8, -10, 0, 15, 108, -108, 12, 99, -7, 101, 105, 104, 106, 90, 91 }; int size = 18; printf("Root-->%X ... with key-->%i\n\n\n", root, *((int*)root->key)); for (i = 0; i < size; i++) { int valueTemp = array[i]; element z = NULL; insert(root, &valueTemp, sizeof(int), IntegerCompare); } print(root, 'i'); element max = Max(root); element min = Min(root); printf("Current max = %i\n", *((int*)max->key)); printf("Current min = %i\n\n", *((int*)min->key)); element toRemove = NULL; int intToRemove = 12; toRemove = search(root, &intToRemove, IntegerCompare); printf("Deleting element --> %i\n", *((int *)toRemove->key)); root = deleteElem( toRemove); print(root, 'i'); intToRemove = 0; toRemove = search(root, &intToRemove, IntegerCompare); printf("Deleting element --> %i\n", *((int *)toRemove->key)); root = deleteElem( toRemove); print(root, 'i'); intToRemove = 108; toRemove = search(root, &intToRemove, IntegerCompare); printf("Deleting element --> %i\n", *((int *)toRemove->key)); root = deleteElem( toRemove); print(root, 'i'); intToRemove = -8; toRemove = search(root, &intToRemove, IntegerCompare); printf("Deleting element --> %i\n", *((int *)toRemove->key)); root = deleteElem( toRemove); print(root, 'i'); intToRemove = 99; toRemove = search(root, &intToRemove, IntegerCompare); printf("Deleting element --> %i\n", *((int *)toRemove->key)); root = deleteElem( toRemove); print(root, 'i'); intToRemove = 101; toRemove = search(root, &intToRemove, IntegerCompare); printf("Deleting element --> %i\n", *((int *)toRemove->key)); root = deleteElem( toRemove); print(root, 'i'); int toFind = 50; bool tempBool = search(root, &toFind, IntegerCompare); printf("Searching for element --> %i\n", toFind); if (tempBool)printf("Found element\n\n"); else printf("Did not find element\n\n"); toFind = 90; tempBool = search(root, &toFind, IntegerCompare); printf("Searching for element --> %i\n", toFind); if (tempBool)printf("Found element\n\n"); else printf("Did not find element\n\n"); toFind = 50; element NullElement = search(root, &toFind, IntegerCompare); if (NullElement == NULL) printf("Successful NULL return from search\n\n"); else printf("ERROR no NULL returned from search\n\n"); printf("In Order Walk...\n"); InOrderWalk(root, 'i'); printf("\n\n"); printf("Deleting root...\n"); root = deleteElem( root); print(root, 'i'); printf("Adding {-1, 150, 125, 15}\n"); int array2[] = { -1, 150, 125, 15 }; size = 4; for (i = 0; i < size; i++) { int valueTemp = array2[i]; element z = NULL; insert(root, &valueTemp, sizeof(int), IntegerCompare); } print(root, 'i'); while (root->left != NULL) deleteElem( Min(root)); while (root->right != NULL) deleteElem( Max(root)); free(root->key); free(root); }