Atenção: Precisando de assessoria nos seus PROJETO entre em contato com a SGP
Faça um programa que sorteie 1 numero entre 0 e 150. peça para o usuário tentar adivinhar o numero sorteado.
O sistema deverá dar dicas para o usuário, dizendo se o numero sorteado é maior ou menor que o informado pelo usuário.
o programa só irá parar de repetir quando o usuário acertar o numero. no final, mostrar quantas chances o usuário precisou para
acertar o numero e exiba uma das seguintes mensagens:
1 a 5 "QUE SORTE! VOCÊ ACERTOU RÁPIDO."
6 a 10" PARABÉNS VOCÊ FOI BEM, ACERTOU EM X TENTATIVAS."
ACEIMA DE 10 "VOCÊ PODERIA TER IDO MELHOR"
MAX PONTUAÇÃO -> 100
A CADA JOGADA PERDE 1 PONTO
SE ZERAR, ACABA O JOGO
MENU 1 NOVO JOGO
2 - RANKING ->20 MELHORES
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<malloc.h>
struct Jogador{
char nome[30];
int pontuacao;
};
typedef struct Jogador Jog;
struct Arvore{
Jog j;
struct Arvore *left, *right;
};
typedef struct Arvore Arv;
int menu();
Jog jogar();
Arv *criaArvore();
Arv *criaNoh(Arv *arvore, Jog j);
int vazia(Arv *a);
void imprimir(Arv *a);
void ordem(Arv *a, FILE *arq);
Arv *carregar();
int menu(){
int opc;
do{
system("cls");
printf("\tMENU\n\n1-NOVO JOGO\n2-RANKING\n0-SAIR");
scanf("%d",&opc);
getchar();
if(opc<0 || opc>2){
printf("\n\n\tERRO");
getchar();
}
}while(opc<0 || opc>2);
return opc;
}
Jog jogar(){
Jog j;
int num, chute;
system("cls");
printf("NOME DO JOGADOR: ");
gets(j.nome);
j.pontuacao = 100;
srand(time(NULL));
num = rand()%151;
do{
system("cls");
printf("QUAL FOI O NUMERO SORTEADO ?[%d]->",num);
scanf("%d",&chute);
getchar();
if(chute != num){
printf("\n\n\tERROUUUUUUUUUUU!!");
j.pontuacao--;
}else{
printf("\n\n\n\tARCERTOU !!!!\n");
}
getchar();
}while(num !=chute && j.pontuacao >0);
if(j.pontuacao == 0){
printf("\n\n\nVOCE PERDEU");
}
printf("\n\n\tSua pontuacao foi :%d ponto(s)",j.pontuacao);
getchar();
return j;
}
Arv *criaArvore(){
return NULL;
}
Arv *criaNoh(Arv *arvore, Jog j){
Arv *aTemp;
if(arvore == NULL){
aTemp = (Arv *)malloc(sizeof(Arv));
aTemp->j = j;
aTemp->left = criaArvore();
aTemp->right = criaArvore();
return aTemp;
}else{
int dir = 0;
aTemp = arvore;
Arv *pai, *raiz = arvore;
while(!vazia(aTemp)){
if(j.pontuacao<= aTemp->j.pontuacao){
pai = aTemp;
aTemp = aTemp->left;
dir = 0;
}else{
pai = aTemp;
aTemp = aTemp->right;
dir = 1;
}
}
aTemp = (Arv *)malloc(sizeof(Arv));
aTemp->j = j;
aTemp->left = criaArvore();
aTemp->right = criaArvore();
if(dir)
pai->right = aTemp;
else
pai->left = aTemp;
return raiz;
}
}
int vazia(Arv *a){
return a == NULL;
}
void imprimir(Arv *a){
if(a->right != NULL)
imprimir(a->right);
printf("Nome: %s | Pontuacao: %d", a->j.nome,a->j.pontuacao);
if(a->left != NULL)
printf("\n\t ESQ ->Nome: %s | Pontuacao: %d", a->left->j.nome,a->left->j.pontuacao);
else
printf("\n\nESQ: NULL");
if(a->right != NULL)
printf("\n\tDIR ->Nome: %s | Pontuacao: %d\n\n",a->right->j.nome,a->right->j.pontuacao);
else
printf("\n\tDIR: NULL\n\n");
if(a->left != NULL)
imprimir(a->left);
}
void ordem(Arv *a, FILE *arq){
fwrite(&a->j, sizeof(Jog), 1, arq);
if(a->left != NULL)
ordem(a->left, arq);
}
Arv *carregar(){
Arv *a = criaArvore();
FILE *arq = fopen("ranking.bin", "rb");
if(arq){
Jog j;
while(!feof(arq)){
if(fread(&j, sizeof(Jog), 1, arq)){
a = criaNoh(a, j);
}
}
fclose(arq);
return a;
}else{
return NULL;
}
}
int main(){
Arv *a = criaArvore();
int opc;
Jog jogador;
a = carregar();
do{
opc = menu();
switch(opc){
case 1:{
jogador = jogar();
a = criaNoh(a, jogador);
break;
}
case 2:{
if(!vazia(a))
imprimir(a);
else
printf("\n\tARVORE VAZIA");
printf("\n\n");
getchar();
break;
}
case 0:{
if(a != NULL){
FILE *arq = fopen("ranking.bin", "wb");
ordem(a, arq);
fclose(arq);
}
break;
}
default:{
printf("ERRO!!!\n\n");
break;
}
}
}while(opc !=0);
return 0;
}
#include<stdlib.h>
#include<time.h>
#include<malloc.h>
struct Jogador{
char nome[30];
int pontuacao;
};
typedef struct Jogador Jog;
struct Arvore{
Jog j;
struct Arvore *left, *right;
};
typedef struct Arvore Arv;
int menu();
Jog jogar();
Arv *criaArvore();
Arv *criaNoh(Arv *arvore, Jog j);
int vazia(Arv *a);
void imprimir(Arv *a);
void ordem(Arv *a, FILE *arq);
Arv *carregar();
int menu(){
int opc;
do{
system("cls");
printf("\tMENU\n\n1-NOVO JOGO\n2-RANKING\n0-SAIR");
scanf("%d",&opc);
getchar();
if(opc<0 || opc>2){
printf("\n\n\tERRO");
getchar();
}
}while(opc<0 || opc>2);
return opc;
}
Jog jogar(){
Jog j;
int num, chute;
system("cls");
printf("NOME DO JOGADOR: ");
gets(j.nome);
j.pontuacao = 100;
srand(time(NULL));
num = rand()%151;
do{
system("cls");
printf("QUAL FOI O NUMERO SORTEADO ?[%d]->",num);
scanf("%d",&chute);
getchar();
if(chute != num){
printf("\n\n\tERROUUUUUUUUUUU!!");
j.pontuacao--;
}else{
printf("\n\n\n\tARCERTOU !!!!\n");
}
getchar();
}while(num !=chute && j.pontuacao >0);
if(j.pontuacao == 0){
printf("\n\n\nVOCE PERDEU");
}
printf("\n\n\tSua pontuacao foi :%d ponto(s)",j.pontuacao);
getchar();
return j;
}
Arv *criaArvore(){
return NULL;
}
Arv *criaNoh(Arv *arvore, Jog j){
Arv *aTemp;
if(arvore == NULL){
aTemp = (Arv *)malloc(sizeof(Arv));
aTemp->j = j;
aTemp->left = criaArvore();
aTemp->right = criaArvore();
return aTemp;
}else{
int dir = 0;
aTemp = arvore;
Arv *pai, *raiz = arvore;
while(!vazia(aTemp)){
if(j.pontuacao<= aTemp->j.pontuacao){
pai = aTemp;
aTemp = aTemp->left;
dir = 0;
}else{
pai = aTemp;
aTemp = aTemp->right;
dir = 1;
}
}
aTemp = (Arv *)malloc(sizeof(Arv));
aTemp->j = j;
aTemp->left = criaArvore();
aTemp->right = criaArvore();
if(dir)
pai->right = aTemp;
else
pai->left = aTemp;
return raiz;
}
}
int vazia(Arv *a){
return a == NULL;
}
void imprimir(Arv *a){
if(a->right != NULL)
imprimir(a->right);
printf("Nome: %s | Pontuacao: %d", a->j.nome,a->j.pontuacao);
if(a->left != NULL)
printf("\n\t ESQ ->Nome: %s | Pontuacao: %d", a->left->j.nome,a->left->j.pontuacao);
else
printf("\n\nESQ: NULL");
if(a->right != NULL)
printf("\n\tDIR ->Nome: %s | Pontuacao: %d\n\n",a->right->j.nome,a->right->j.pontuacao);
else
printf("\n\tDIR: NULL\n\n");
if(a->left != NULL)
imprimir(a->left);
}
void ordem(Arv *a, FILE *arq){
fwrite(&a->j, sizeof(Jog), 1, arq);
if(a->left != NULL)
ordem(a->left, arq);
}
Arv *carregar(){
Arv *a = criaArvore();
FILE *arq = fopen("ranking.bin", "rb");
if(arq){
Jog j;
while(!feof(arq)){
if(fread(&j, sizeof(Jog), 1, arq)){
a = criaNoh(a, j);
}
}
fclose(arq);
return a;
}else{
return NULL;
}
}
int main(){
Arv *a = criaArvore();
int opc;
Jog jogador;
a = carregar();
do{
opc = menu();
switch(opc){
case 1:{
jogador = jogar();
a = criaNoh(a, jogador);
break;
}
case 2:{
if(!vazia(a))
imprimir(a);
else
printf("\n\tARVORE VAZIA");
printf("\n\n");
getchar();
break;
}
case 0:{
if(a != NULL){
FILE *arq = fopen("ranking.bin", "wb");
ordem(a, arq);
fclose(arq);
}
break;
}
default:{
printf("ERRO!!!\n\n");
break;
}
}
}while(opc !=0);
return 0;
}
Atenção: Precisando de ajuda entre em contato com a SGP e solicite uma assessoria com a melhor equipe do mercado no desenvolvimento de trabalhos acadêmicos
E-mail: ajudastrabalhosprogramacao@gmail.com
Facebook: fb.me/ajudaemTrabalhosdeprogramacao
0 comentários:
Postar um comentário