Ir ao conteúdo

Posts recomendados

Postado

Boa noite pessoal, estou desenvolvendo um "joguinho" de apostas com vários jogadores, segue meu código:

#include <stdio.h>
#include <conio.h> //Biblioteca para limpar a tela
#include <locale.h> // Biblioteca para permitir usi de acentos e caracteres especiais
#include <string.h> // Biblioteca para Strings
#include <stdlib.h>
#define size1 50
#define size2 50

// Atividade Prática Supervisionada
// Código produzido por: Daniel Schmitz e Willian Felipe Motta
// 1° período de Tecnologia em Sistemas para Internet
// Universidade Tecnológica Federal do Paraná
// Câmpus Toledo

struct Jogador  //Struct que armazena dados do jogador
    {
        char nome[size2];
        int fichas_j;
    };





int sorteio() // Função para sotear um número aleatório
{
    int n_sorteado=0;
    srand(time(NULL) );
    n_sorteado = rand() % 18; // Defina que os números aleatórios não podem ultrapassar 18
    return n_sorteado;
}

int main()
{

    char novo_jogador;
    int i=1;


    struct Jogador jogador[size1];
    setlocale(LC_ALL, "Portuguese"); //Define a língua usada, permitindo a utilização de acentos e caracteres especiais
    do{
        system("cls");
        printf("*********************************************************\n");
        printf("*********************************************************\n");
        printf("***************| Seja bem vindo a Roleta |***************\n");
        printf("*********************************************************\n");
        printf("*********************************************************\n");

        fflush(stdin); // Limpa o buffer do teclado para entrar com um tipo char
        printf("\nDigite o nome do jogador: \n");
        gets(jogador[i].nome); //Lendo o char

        printf("\n\nBem vindo, você esta iniciando o jogo com 10 fichas.\n");

        int fichas_jogador=10, aposta, fichas_apostadas=0, n_sorteado=0;
        char continuar;

        do{
            do{
                printf("\nQuantas fichas deseja apostar?\n");
                scanf("%d", &fichas_apostadas);
                if(fichas_apostadas > fichas_jogador) printf("Você não tem todas essas fichas, tente novamente!");
            }while(fichas_apostadas > fichas_jogador); //Testando se a quantidade de fichas apostadas não ultrapassam a quantidade que o jogador tem



            printf("\nVocê deseja apostar no [0]zero, [2]par ou [1]ímpar?\n");
            scanf("%d", &aposta); //Escolhendo o tipo de número que o jogador deseja apostar

            n_sorteado = sorteio(); //Recebendo um número aleatório da função "sorteio"

            printf("\nNumero sorteado: %d\n", n_sorteado);

            if(aposta == 0) //Direciona o programa para a aposta do jogador
            {
                if(n_sorteado == 0){ //Se o jogador apostou no número zero e foi sorteado o número zero, as fichas apostadas são multiplicadas por sete e armazenadas com as fichas pré-existentes
                    fichas_jogador = fichas_jogador - fichas_apostadas; //Deduz as fichas apostadas do total de fichas do jogador, para somar o novo número de fichas
                    fichas_jogador = fichas_jogador + (fichas_apostadas * 7);
                }
                else fichas_jogador = fichas_jogador - fichas_apostadas; //Se o jogador errou o número apostado ele perde o tanto de fichas que ele apostou
            }

            if(aposta == 1)
            {
                if((n_sorteado % 2) != 0 )
                {
                    fichas_jogador = fichas_jogador + (fichas_apostadas * 2);
                    fichas_jogador = fichas_jogador - fichas_apostadas;
                }
                else fichas_jogador = fichas_jogador - fichas_apostadas;
            }

            if(aposta == 2)
            {
                if((n_sorteado % 2) == 0 )
                {
                    fichas_jogador = fichas_jogador + (fichas_apostadas * 2);
                    fichas_jogador = fichas_jogador - fichas_apostadas;
                }
                else fichas_jogador = fichas_jogador - fichas_apostadas;
            }


            printf("\nSuas fichas atualmente são: %d\n", fichas_jogador); //Apresentando o número de fichas que o jogador ficou após ter ganhado ou perdido o jogo
            if(fichas_jogador<=0) break;

            fflush(stdin); //Limpando o buffer do teclado
            printf("\nDeseja apostar mais? S para sim e N para não.\n");
            scanf("%c", &continuar); //Descobrindo se o jogador quer apostar mais
            printf("\n\n");

            if(continuar=='n' || continuar=='N') break; //Se o jogador não quiser mais apostar, sai do laço


        }while (continuar == 's' || continuar == 'S');

        if(fichas_jogador>0)
        {
            printf("\nParabéns, você terminou o jogo com %d fichas\n", fichas_jogador); //Se o jogador terminar o jogo com fichas aqui ele é parabenizado e apresenta a quantidade de fichas com que ele terminou o jogo
        }
        else
        {
            printf("\nPocha vida, suas fichas acabaram, e o seu jogo também!"); // Caso se o jogador termine o jogo com saldo devedor ou sem fichas, essa mensagem é apresentada
        }
        jogador[i].fichas_j = fichas_jogador; // Passa o número de fichas com que o jogador terminou o jogo para a struct correspondente ao jogador
        fflush(stdin);
        printf("\n\nDeseja iniciar outro jogador? (S para sim e N para não)\n"); // Descobrindo se ooutro jogador deseja jogar
        scanf("%c", &novo_jogador);
        i++;
    }while(novo_jogador == 's' || novo_jogador == 'S');
	system("cls"); //Limpa a tela
    int j=0;
    printf("\n\nRanking:\n"); //Imprimindo o ranking
    for(j = 1 ; j < i ; j++)
    {
        printf("\n%d°  %s | %d fichas", j, jogador[j].nome, jogador[j].fichas_j);

    }
    printf("\n\n\n***Código produzido por Daniel Schmitz e Willian Motta, 1° período de TSI - UTFPR TD***\n\n\n");

    return 0;
}

 

O problema é que preciso exibir o o ranking em ordem crescente de quem terminou com mais fichas e não faço ideia de como fazer. Alguma sugestão?

 

Obrigado!

Postado

@Daniel Natan Schmitz Veja o exemplo:

#include <iostream>

using namespace std;

typedef struct{
  int orig;
  int dest;
  int peso;
}Aresta;
  
bool compara (Aresta A, Aresta B){
    return A.peso < B.peso;
}
                           
int main(){
    Aresta vetor[200]; // aqui você define o tamanho do seu vetor de struct, se você não sabe o tamanho tem funções que sabem :)
	sort (vetor, vetor + A, compara); //sort(parametros), passe nos parâmetros o vetor de struct, defina quantas
                           			  //posições você quer ordenar a partir do começo;
return 0;							  // e você pode criar uma função booleana para mostrar como ordenar os elementos, se é crescente ou decrescente.
}

Acredito que esse exemplo possa resolver seu problema.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!