Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

patricklm

Problema Pontuaçao

Recommended Posts

Estou fazendo um jogo em C (Bubble Shooter) e gostaria de saber como faço para salvar a pontuaçao do usuario, para fazer um rank (highscores). Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algo rápido aqui e comentei, se estiver muito confuso procure pelas funções fopen, putc, getc.

 

# include <stdio.h>
# include <string.h>

void savescore (char score [])
{
	int i = 0;
	
	/* ponteiro p/ manipular um arquivo,
	 * não precisa ficar assustado com "ponteiros", é o ÚNICO que você
	 * vai usar por enquanto...
	 */
	FILE *file; // dê o nome que quiser
	
	/* a função fopen abre um arquivo (ou cria, se precisar). vai depender do MODO DE ABERTURA ESCOLHIDO
	 * o primeiro parametro é o nome do arquivo, o segundo o seu tipo de abertura...
	 * pode ser: 
	 *     A - Cria um arquivo (caso nao exista) e grava os dados nele (se ja existir algo gravado no arquivo, será salvo
	           sempre abaixo do que já existir, ou seja, sem perder os dados).
	       W - Cria um novo arquivo, se já existir um arquivo com o mesmo nome, ele será apagado e criado um novo.
	       R - Somente leitura. É possivel ler os dados, mas nao alterá-los... (editar, gravar, etc)...
	           A não ser que você use o '+'... mas isso é outra história, vamos com calma...
    */
    
	file = fopen ("Highscores.txt", "a"); // pronto, arquivo aberto...
	
	/* optei por gravar de 1 em 1, mas é possível gravar como de outras formas, com outras funções... VIDE GOOGLE. */
	while (score [i])
	{
		 /* PUTC... o primeiro parametro é o caracter a ser gravado, o segundo é o arquivo onde será gravado */
		putc(score[i], file);
		i++;
	}
	
	/* fecha o arquivo */
	fclose (file);
	
};

int main (void)
{
	char str[128];
	printf("HIGHSCORE: ");
	fgets(str, 128, stdin); str[strlen(str) -1 ] = '\0';
	
	savescore(str); // SALVA!! :)
}

 

Edit:

No caso, o arquivo será criado na pasta do projeto. É possível mudar o diretório na função fopen, exemplo:

file = fopen ("C:\\Highscores.txt", "a");

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado Neelix, agradeço pelos comentarios feitos no programa para um melhor entendimento, nao sabia dessas funcoes mencionadas, ja procurei e ja me "antenei", obrigado, abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.