Esempio n. 1
0
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;
}
Esempio n. 2
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');


}
Esempio n. 3
0
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);
    }
}
Esempio n. 4
0
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);
    }
}
Esempio n. 5
0
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;
}
Esempio n. 6
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);
  }
}
Esempio n. 7
0
/*
-----------------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);

}