示例#1
0
文件: batalha.c 项目: Turtledorm/rpg
void batalha(Jogador eu, Jogador foe)
{
	/* Toca a música especificada indefinidamente */
	tocaMusica("bgm/ffvi.wav");

	while (eu.status.hp > 0 && foe.status.hp > 0) {
		/* Exibe barras de vida na tela */
		lifebar(eu);
		lifebar(foe);

		/* Loop até chegar a vez de um personagem. O (+1) nesses dois
		   casos impede o personagem de nunca jogar caso SPD == 0. */
		while (eu.atb < MAX_ATB && foe.atb < MAX_ATB) {
			eu.atb += eu.status.spd + 1;
			foe.atb += foe.status.spd + 1;
		}

		if (eu.atb >= MAX_ATB) {
			eu.atb -= MAX_ATB;
			do {
				printf("\nSua vez! Digite 1 para atacar,\n"
				 	   "2 para carregar o golpe ou 3 para defender: ");
				scanf("%d", &eu.acao);

				if (eu.acao == 2 && eu.potencia == MAX_POW) {
					puts("\n>Limite atingido! Impossível carregar mais.");
					eu.acao = 0;
				}
			} while (eu.acao < 1 || eu.acao > 3);

			turno(&eu, &foe);
		}
		else { /* (foe.atb >= MAX_ATB) */
			congela(1);
			foe.atb -= MAX_ATB;

			do foe.acao = randomInteger(1, 3);
			while (foe.potencia == MAX_POW && foe.acao == 2);

			turno(&foe, &eu);
		}
	}

	/* Encerra a execução da música */
	paraMusica();

	/* Exibe resultado da batalha */
	lifebar(eu);
	lifebar(foe);
	printf("\n> %s foi aniquilado.\n", 
		(eu.status.hp <= 0) ? eu.nome : foe.nome);

	printf("\n***** Você %s! *****\n\n", 
		(eu.status.hp > 0) ? "ganhou" : "perdeu");
}
示例#2
0
文件: main.c 项目: trichez/board-game
int main (){
	player_t jogador[MAX_PLAYERS];
	int Nnumero_jogadores, i, recursiva;
	recursiva=-1;
	Nnumero_jogadores=0;
	
	for(i=0;i<MAX_PLAYERS;i++){											//atribui vida e dinheiro inicial aos jogadores(constantes linha 7-10)
		jogador[i].bag=START_MONEY;
		jogador[i].life=START_LIFE;
		jogador[i].controle=START_CONTROLE;
		jogador[i].posicao=START_POSICION;
	}	
	
	printf("\n\n\nDigite o numero de jogadores que vao jogar (minimo 2, maximo 4): ");
	do{																	//nao segue o programa enquanto nao entrar com o numero correto de jogadores, 2~4 
		scanf("%d", &Nnumero_jogadores);
	}while(Nnumero_jogadores < 2 || Nnumero_jogadores > 4);
	for(i=0;i<Nnumero_jogadores;i++){									//pega o nome dos jogadores
		printf("Entre com o nome do jogador de numero %d: ", i+1);
		scanf("%s", jogador[i].nome);
	}
	while(jogo_acabou(jogador, Nnumero_jogadores)==0){ 					//este laço chama a funcao 'turno' que simula uma rodada, a cada vez que um jogador chega ao final ou morre a variavel 'final' é incrementada. quando ela for igual ao numero de jogadores que estao jogando o jogo acaba
		turno(jogador, Nnumero_jogadores, recursiva);
	}
	printf("\n\t\t\t--FIM DE JOGO--");
	for(i=0;i<Nnumero_jogadores;i++){                                   //cada vida vale 100 ouro
		if(jogador[i].life>0){
			jogador[i].bag+=jogador[i].life*100;
		}
	}
	int Maior_jogador=0;
	for(i=0;i<(Nnumero_jogadores-1);i++){                               //ganhador
		if(jogador[i].bag > jogador[i+1].bag && jogador[i].life>0){
			Maior_jogador=i+1;
		}else{
			Maior_jogador=i;
		}
	}
	printf("\nQuem ganhou foi o jogador: %s, com: %d ouros. Parabens!\n\n", jogador[i].nome, jogador[i].bag);
	return 0;
}