Ir ao conteúdo

C jogo em linguagem de programação C no estilo aplicação em console ''jogo perfil'


Posts recomendados

Postado

1614150068_WhatsAppImage2021-04-27at21_52.02(1).thumb.jpeg.371da00c1ed9a1cbc0a5e47b915203aa.jpeg

Pfvor alguém pode me ajudar a fazer esse programa, estou tento muitas dificuldades pra completar esse jogo, pfvor preciso de ajuda, isso é tudo q eu conseguir elaborar pro programa, não sei o que fazer. É pro trabalho final do curso, segue a baixo as instruções. Desde já agradeço.


 

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

int main() {
    int QTDE_RODADAS=3,DURACAO_DICA=6, QTDE_DICAS=0, PENALIDADE_DICA=5,DURACAO_RODADA = 60;
    int pontuacao_rodada, pontuacao_final, max_palavra=5,op1,op, sorteio,tamanho,acertos,erro,opcon;
    char nome[max_palavra][5],dica,nomeu[5];

    //Aqui se encontram atribuidas a uma variavel inteira as regras base do jogo, a pontuação e os fundamentais do jogo foram separados por puros métodos organizacionais
    printf("\n\t1.Novo Jogo"
           "\n\t2.Explicacao do Jogo"
           "\n\t3.Exibir Ranking"
           "\n\t4.Sair"
            "\n\t:");
    scanf("%d",&op1);
    do{
    //Com o uso do printf são apresentadas as opções e então é usado scanf para poder captar a escolhida
    switch(op1){
        case 2:{
        printf("\nBem vindo ao jogo Indoles! O objetivo deste jogo e advinhar o que minhas dicas indicam.");
        printf("\nVoce tera um tempo limite para acertar as respostas e dicas serao dadas, entretanto quanto mais dicas, menos tempo. Divirta-se!");
        printf("\nAtencao por favor desconsidere o uso de acentos");
        break;
        }
    //switch foi usado para então definir qual seria a saída da opção que foi dada como entrada, assim permitindo maior facilidade e fugindo do uso de diversos if-else.
        case 1:{
            printf("\n\n\t == Menu de Temas ==");
            printf("\n\t 1-Pessoas"
                    "\n\t 2-Coisas"
                    "\n\t 3-Lugares"
                    "\n\t 4-Anos"
                    "\n\t Digite a opcao: ");
            scanf("%d",&op);
            switch(op){
                case 1:{
                    strcpy(nome[0],"Lunna"); 
                      strcpy(nome[1],"Marcelo");
                      strcpy(nome[2],"Stephany");
                     strcpy(nome[3],"Nycole");
                      strcpy(nome[4],"Richard");
                      do{
                          
                          sorteio=rand() % max_palavra;
                          tamanho= strlen(nome[sorteio]);
                          break;
                      }while(opcon!=2);
                    break;
                }
            }    
        }
    }
}
}

 

Postado

@Gabriel Mattos Albuquerque    seria Melhor você postar o enunciado em forma de texto , que se possa copiar , essa imagem não está boa e difícil de visualizar o quê está escrito ,  e seu código não está compilando com erro na declaração da matriz " nome " ,  e corrigido poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <iomanip>
#include <iostream>
#include <vector>
#include <conio.h>
#include <windows.h>
#define getch()    _getch()
#define       max_palavra 5
void textcolor_2(int, int);
using namespace        std;
int main()
{
    srand( time(  NULL )      );
    POINT pt                   ;  // para pegar a posicao da setinha do mouse
    pt.y = 2                   ;  // posicao y
    int letras_ants, fundo_ants;  // cares
    HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO               c; // informações do systemas
    GetConsoleScreenBufferInfo(h, &c         ); // sobre a tela
    letras_ants = c.wAttributes & 0x0F        ; // a cor da letras
    fundo_ants = c.wAttributes >> 4 & 0x0F    ; // cor de fundos
    GetCursorPos(& pt                        ); // pega a posicao do mouse
    vector < int > meu_vetor                  ; // vetores em c++
    int meu_int                               ; 
    for (int i = 0; i < 10; i++)
    {
        meu_int = rand() % 1000 + 1 ;           // gerar numeroa Aleatorios
        meu_vetor.push_back(meu_int);           // insere valores no vetor c++
    }
    textcolor_2(14, 3)              ;           // cor das letras amarela em fundo preto
    for (int j = 0; j < 10; j++     )
    {
        SetCursorPos(pt.x, pt.y    );           // move a seta do mouse para a direita
        printf("%d ", meu_vetor[j] );           // escreve o conteúdo do vetor
        Sleep (800                 );           // dorme hum pouquinho
        pt.x += 50                  ;           // qtd de Pixels da tela que move a setinha
    }
    textcolor_2(12, 15)                       ; // cor das letras Vermelhas em fundo Branco
    printf("\n\t\tTecLe . . .!       \n"     );
    getch()                  ;
    printf("\t\tTecLe Di NovU . . . !\n"     );
    while (!_kbhit())        ;
    int QTDE_RODADAS    =  3 ,
        DURACAO_DICA    =  6 , 
        QTDE_DICAS      =  0 , 
        PENALIDADE_DICA =  5 , 
        DURACAO_RODADA  = 60 ;
    int pontuacao_rodada     , 
        pontuacao_final      , 
        max_palavras = 5     , 
        op1                  , 
        op                   , 
        sorteio              , 
        tamanho              , 
        acertos              , 
        erro                 , 
        opcon                ,
        ret                  ;
    char nome[max_palavra][5], 
        dica                 ,              
        nomeu             [5];
    //  Aqui se encontram atribuidas a uma variavel inteira as regras 
    //  base do jogo, a pontuação e os fundamentais do jogo foram 
    //  separados por puros métodos organizacionais
    do 
    {
        textcolor_2(11, 0); // cor das letras aNila em fundo BancOo
        printf
        (
            "\n\t1.Novo Jogo           "
            "\n\t2.Explicacao do Jogo  "
            "\n\t3.Exibir Ranking      "
            "\n\t4.Sair Do Jogo . . . !"
            "\n\t: "
        );
        ret = scanf("%d", &op1);
        //  Com o uso do printf são apresentadas as opções e 
        //  então é usado scanf para poder captar a escolhida
        switch (op1)
        {
        case 2:  //  não precisa dessas chaves aqui não !
            textcolor_2(3, 15); // cor das letras aZuis em fundo Branco
            printf
            (
                "\nBem vindo ao jogo Indoles! O objetivo          "
                "deste jogo e advinhar o que minhas dicas indicam."
            );
            textcolor_2(10, 12); // cor das letras verdE em fundo verMelho
            printf
            (
                "\nVoce tera um tempo limite para acertar as respostas"
                "e dicas serao dadas, entretanto quanto mais dicas,   "
                "menos tempo. Divirta-se!                             "
            );
            printf("\nAtencao por favor desconsidere o uso de acentos");
            break;
            //  switch foi usado para então definir qual seria a saída
            //  da opção que foi dada como entrada, assim permitindo maior
            //  facilidade e fugindo do uso de diversos if-else.
        case 1: 
            printf("\n\n\t == Menu de Temas ==");
            textcolor_2(4, 14); // cor das letras MagentA em fundo AmaRelLo
            printf
            (
                "\n\t 1-Pessoas       "
                "\n\t 2-Coisas        "
                "\n\t 3-Lugares       "
                "\n\t 4-Anos          "
                "\n\t Digite a opcao: "
            );
            ret = scanf("%d", &op);
            switch (op)
            {
            case 1: 
                strcpy(nome[0], "Lunna"   );
                strcpy(nome[1], "Marcelo" );
                strcpy(nome[2], "Stephany");
                strcpy(nome[3], "Nycole"  );
                strcpy(nome[4], "Richard" );
                do 
                {
                    sorteio = rand() % max_palavra ;
                    tamanho = strlen(nome[sorteio]);
                    break                          ;  // e esse Qubrador de Laços obrigarÁ a Saida precoce do Loop
                } while (opcon != 2)               ;  // Aqui tens hum Loop etherno
                break                              ;
            }
        }
    } while (op1 != 4                             );
    textcolor_2(letras_ants, fundo_ants           );  // volta para a cor padrão do console
    return           0;
}
void textcolor_2(int letras, int fundo)
{
    SetConsoleTextAttribute
    (
        GetStdHandle
        (
            STD_OUTPUT_HANDLE
        ),
        letras + 
        (
            fundo << 4
        )
    );
}

 

Postado

@devair1010 ah, muito obrigado pela ajuda amigo, testei seu programa aqui e ta dando um erro na compilação. e desculpe pelo enunciado. Segue abaixo o enunciado escrito e a foto do erro q apareceu.image.thumb.png.c3406c86018057bbaed5b40e32110b9a.png 

Proposta

Desenvolver um jogo em linguagem de programação C no estilo aplicação em console inspirado no jogo comercial Perfil.

Neste jogo single player, o jogador receberá um conjunto de dicas sobre uma pessoa, uma coisa, um lugar ou um ano e acumulará pontos caso identifique de maneira correta sobre quem ou o quê as dicas se referem.

Regras

1. O jogo é composto de QTDE_RODADAS rodadas.

2. A cada DURACAO_DICA segundos uma nova dica é informada até um total de QTDE_DICAS.

3. A cada nova dica informada, a pontuação da rodada é diminuída por PENALIDADE_DICA.

4. Cada rodada dura no máximo DURACAO_RODADA segundos e, caso seja atingida, a pontuação recebida pelo jogador será zero.

5. A cada entrada errada do jogador, uma nova dica é informada e o tempo daquela dica é aumentado como se tivesse passado DURACAO_DICA segundos

6. Ao término das QTDE_RODADAS rodadas o jogador receberá a pontuação total e quanto tempo levou para completar as rodadas.

Requisitos mínimos do jogo

A. Ter o perfil de 5 pessoas, 5 coisas, 5 lugares e 5 anos.

B. Exibir ao término do jogo o ranking dos 10 jogadores com maior pontuação, em ordem decrescente de pontuação.

C. Conter menu com pelo menos as opções: novo jogo, exibir explicação do jogo, exibir ranking e sair do jogo.

Avaliação

I. Prazo para entrega do código fonte compilável (e arquivos texto caso utilizados) e da apresentação em vídeo: 21/05/2021 às 23h59.

II. Forma de envio do código fonte: arquivo único do tipo “.c” através da tarefa Trabalho final.

III. Forma de envio de arquivos texto: todos em um único arquivo do tipo “.zip”.

IV. Forma de envio da apresentação em vídeo: link para o vídeo (não listado ou público) no YouTube através da tarefa Trabalho final.

V. Formato da apresentação em vídeo: vídeo de duração total de 5 minutos contendo uma apresentação mostrando o rosto do aluno informando com a própria voz o título do jogo e o nome completo do aluno; explicação breve sobre o jogo e sua implementação; e demonstração do funcionamento do jogo.

Sugestões

i. Armazenar o ranking dos jogadores em um arquivo texto.

ii. Cada perfil armazenado internamente em uma struct e externamente em um arquivo texto exclusivo

Postado
4 horas atrás, devair1010 disse:

esses includes são usados em compiladores modernos , como o visual studio ,  e esse Dev C++ está muito Desatualizado  mesmo ,   mas tranquilo ,  você pode comentar esses includes e vai compilar normal

 

Não é o caso de "modernidade". O programa se chama main.c e o IDE (qualquer um) vai usar o compilador C. vector, iostream e iomanip são bibliotecas usadas em C++.

 

A solução é simples. Tem 4 opções:

  • escreve o programa em C e usa extensão .c e os #include de C
  • escreve o programa em C++ e usa extensão .cpp e os #include de C++
  • use a extensão que quiser e veja na documentação do IDE como informar a linguagem sem depender da extensão. Em geral tem uma opção assim.
  • use C++, extensão cpp e os #include de C , usando para os headers comuns como stdio.h a convenção de tirar o .h e colocar um 'c' na frente, como cstdio, ou para headers que você escreveu por exemplo use 
    extern "C" {   #include "o_seu_header.h" }

     

🤔 Claro que se está usando um programa em C mesmo basta apagar esses #include, já que não vai usar iostream nem vector nem iomanip ;) e estão aí nesse caso por engano.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!