Beispiel #1
0
Board makeBoard(Group* group, Move move){ // Make Board from Group and Move
	Board board;
	int x,y;
	for(x=0;x<3;x++){
		for(y=0;y<4;y++){
			board.tile[x][y].x = x;
			board.tile[x][y].y = y;
			board.tile[x][y].occupied = getTile(x,y,*group);
			board.tile[x][y].enemyNum = 0;
			board.tile[x][y].myNum = 0;
			// Initialize Board with Group info
		}
	}
	if(move.dirc==PLACE){
		board.tile[move.prevX][move.prevY].occupied = move.type;
		group->animal[group->num] = newAnimal(move.type, move.prevX, move.prevY);
		group->num++;
		// Apply Placement
	}else{
		x = moveX(move.prevX,move.dirc);
		y = moveY(move.prevY,move.dirc);
		*group = moveGroup(*group, move.prevX, move.prevY, x, y);
		board.tile[move.prevX][move.prevY].occupied = 'o';
		board.tile[x][y].occupied = move.type;
		// Apply Movement
	}
	return board;
}
Beispiel #2
0
int placeDanger(Board board, Group enemyHand){
	int x,y,i,danger = 0;
	for(x=0; x<3; x++){
		for(y=0; y<4; y++){
			if(board.tile[x][y].occupied != 'o')
				continue;
			if(board.tile[x][y].enemyNum < board.tile[x][y].myNum)
				continue;
			for(i=0; i<enemyHand.num; i++){
				Animal enemy = newAnimal(x,y,enemyHand.animal[i].type);
				danger += getPlaceDanger(board,enemy);
			}
		}
	}
	if(danger == 0)
		return 0;
	else
		return -danger;
}
Beispiel #3
0
int main(int argc, char *argv[])
{
	Animal animal;
	Bird bird, mutantBird;
	Cat cat;
	Crow crow;

	newAnimal(&animal);
	animal.setName(&animal, animalName);

	newBird(&bird);
	((Animal *) &bird)->setName((Animal *) &bird, birdName);

	newBird(&mutantBird);
	((Animal *) &mutantBird)->setName((Animal *) &mutantBird, mutantBirdName);
	((Animal *) &mutantBird)->setLegs((Animal *) &mutantBird, 3);

	newCat(&cat);
	((Animal *) &cat)->setName((Animal *) &cat, catsName);

	newCrow(&crow);
	((Animal *) &crow)->setName((Animal *) &crow, crowName);

	test_animal(&animal);
	test_animal((Animal *) &bird);
	test_animal((Animal *) &mutantBird);
	test_animal((Animal *) &cat);
	test_animal((Animal *) &crow);

	test_cat(&cat);

	test_bird(&bird);
	test_bird((Bird *) &mutantBird);
	test_bird((Bird *) &crow);

	test_crow(&crow);

	return 0;
}