Você está na página 1de 7

#include <stdio.

h>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>
#include <conio.h>
#include <time.h>

typedef struct{
char nome[25];
// char nivel[10];
int pontos;
}ranking;

ranking rank;

FILE *arqrank;

//Prot�tipo das fun��es


void abre_arquivo(void);
void menu();
void iserir();
void mostrar();
void buscar();
void procurar(char nom[25]);
void cadastro();
int dados(int i);

int main(void){
// ESTA PARTE ESTOU
TESTANDO
/*
// FUN��O STRUCT SERVE PARA FAZER O REGISTRO DO JOGADOR
struct dados
{
char nome [8]; // permitir apenas 8 digitos do nome.
int pontos;

};

struct dados jogador;

dados.nome = nome;
dados.pontos = pontos;

// FIM DA STRUCT

// TESTES...

*/
//vari�veis
int n = 0, m = 0, p = 0, acertos = 0, erros = 0;
char c;
int numeros[5];
int respostas[5];
int k[10];
int opcao, numero, score, pontos;
char nome[8];

//comando de regionaliza��o
setlocale(LC_ALL, "Portuguese");
//t�tulo do programa
SetConsoleTitle("Jogo da memoria simples");

// MENU TELA INICIAL DO JOGO


printf("(1)-Novo Jogo\n");
printf("(2)-Ranking\n");
printf("(3)-Sair\n");
scanf("%d", &opcao);
getchar();
// FIM DO MENU

switch(opcao){

case 1:
// niveis de dificuldade.
printf("4 - Facil\n\n"); // 5 n�meros aleat�rios em 10 segundos.
printf("5 - Medio\n\n"); // 5 n�meros aleat�rios em 5 segundos.
printf("6 - Dificil\n\n"); // 10 n�meros aleat�rios em 5 segundos.
scanf("%d", &numero);
getchar();
// fim dos n�veis de dificuldade
}

switch(numero)
{

case 4:
inicio:
srand(time(NULL));//semente para gerar os n�meros aleat�rios

printf ("Este programa ir� gerar 5 n�meros aleat�rios.\n\n");


printf ("Voc� deve decorar os n�meros exibidos em 10 segundos e depois
escreve-los na\nordem em que foram exibidos.\n\n");
printf ("Pressione ENTER para iniciar");
// ESPERA O USUARIO DIGITAR ENTER PARA COME�AR O JOGO.
do{
c = getch();
}while (c != 13);
// ESPERA O USUARIO DIGITAR ENTER PARA COME�AR O JOGO.

// GERA NUMEROS ALEATORIOS.


for (n=0;n<5;n++){
numeros[n] = (rand() % 3)+1;
}
// GERA NUMEROS ALEATORIOS.

// IMPRIME OS NUMEROS NA TELA E FAZEM SUMIR COM O TEMPO.

m=10; // TEMPO EM SEGUNDOS.

do{
system ("cls");
printf ("Decore os numeros abaixo em %d\n\n\n", m);
m--;
for (n=0;n<5;n++){
printf ("%d\t", numeros[n]);
}
Sleep (1000);

}while (m>0);

system ("cls");
printf ("Informe os n�meros que foram exibidos\n\n");

// IMPRIME OS NUMEROS NA TELA E FAZEM SUMIR COM O TEMPO.

// CONTANDO OS ERROS E ACERTOS DO USUARIO.


for (n=0;n<5;n++){
printf ("\t%d� n�mero: ", n+1);
scanf ("%d", &respostas[n]);
if (respostas[n]==numeros[n]){
acertos++;
}
else{
erros++;
}

// CONTANDO OS ERROS E ACERTOS DO USUARIO.


if (acertos==5){
printf ("\n\nPERFECT, Voc� passou para a pr�xima fase. Veja os n�mero
exibidos:\n\n\t");
for (n=0;n<5;n++){
printf ("%d\t", numeros[n]);
}
acertos = 0;
erros = 0;

goto inicio;
}
else
{
printf ("\n\nGAME OVER. Veja os n�mero exibidos:\n\n\t");

for (n=0;n<5;n++){
printf ("%d\t", numeros[n]);

}
printf("\n\n");

printf("Acertos = %d\n", acertos);


printf("Erros = %d\n", erros);

score = acertos / 5;

rank.pontos = score;
printf("Pontos = %d\n", rank.pontos);

cadastro();

getchar();

}
printf ("\n\n");
system ("pause");

}
}

void cadastro(){

int opcao;
char nomerk;
abre_arquivo();

do{
system("cls");
printf("PROGRAMA RANKING\n\n\n");
menu();
printf("\nEscolha uma opcao: ");
scanf("%d",&opcao);

switch(opcao){
case 1: iserir(); break;
case 2: mostrar(); break;
case 4: buscar(); break;
case 5: exit(1); break;
default: printf("\n\nOpcao invalida\n");
system("pause");
break;
}
}while(opcao != 5);

system("pause");

}//Fim de main

void abre_arquivo(void){//Abre o arquivo

arqrank=fopen("arquranking.txt","a+b");

void menu(){
printf("MENU\n\n");
printf("Inserir Dados 1\n");
printf("Mostrar Ranking 2\n");
printf("Mostrar Ranking 3\n");
printf("Buscar Jogador 4\n");
printf("Sair 5\n");
}

void iserir(){

system("cls");
printf("Inerir\n\n");
printf("Nome: ");
fflush(stdin);
gets(rank.nome);
printf("Nivel: ");
fflush(stdin);
// gets(rank.nivel);
printf("Pontuacao: ");
scanf("%i",&rank.pontos);

fseek(arqrank, 0, SEEK_END);//Procura o fim do arquivo


fwrite(&rank, sizeof(ranking), 1, arqrank);//Insere os dados no arquivo
printf("\n\nOperacao realizada\n\n");

system("pause");
}

void mostrar(){

//Exibe em forma de tabela (SQL)


int j=1;
printf("\n __________________________________________________");
printf("\n|COLOCACAO |NOME |NIVEL |PONTUACAO |");
printf("\n|____________|_______________|_________|___________|");

rewind(arqrank);//Move o cursor para o inicio do arquivo

do
{

fread(&rank, sizeof(ranking), 1, arqrank);//L� o arquivo linha-a-linha


dados(j);
if(feof(arqrank)==0);
j++;

}while(feof(arqrank)==0);

printf("\n|____________|_______________|_________|___________|");
printf("\nTecle [Enter] para voltar ao menu...");
system("pause>null");

void buscar(){

char nomejog[25];
system("cls");
printf("Buscar Jogador\n\n");
printf("Digite o nome do jogador: ");
fflush(stdin);
gets(nomejog);
rewind(arqrank);//Cursor para o inicio

do{
fread(&rank, sizeof(ranking), 1, arqrank);//Faz a leitura do arquivo
if(nomejog==rank.nome)//Se o nome procurado for encontrado
mostrar();//Mostra os dados do jogador

}while(feof(arqrank)==0 && nomejog!=rank.nome);//At� que chegue ao fim do


arquivo

if(nomejog!=rank.nome){
printf("Nao encontrado\n\n");
system("pause");

}
void procurar(char nom[25]){

rewind(arqrank);//Cursor no inicio

do{
fread(&rank, sizeof(ranking), 1, arqrank);
if(nom==rank.nome)
mostrar();//Exibe as informa��es do determinado jogador casoo exista
}while(feof(arqrank)==0 && nom!=rank.nome);
if(nom!=rank.nome){//Se n�o existir
printf("Nao encontrado\n\n");
system("pause");
}
}
int dados(int i){
/*Esta fun��o a linha contendo os dados do jogador, linha-a-linha.
de aocordo com a quantidade
*/
printf("\n|%do COLOCADO |%-15s|%-11d|",i,rank.nome,rank.pontos);
}

Você também pode gostar