Ir ao conteúdo
  • Cadastre-se

Pessoa_737

Membro Júnior
  • Posts

    6
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá olá, preciso fazer um programa que informe qual dado tem o maior número e se algum dado tirou o mesmo número que outro (essa parte do empate eu ainda não fiz porque a primeira básica tá dando problema, mas se alguém quiser me dar uma luz de como posso fazer isso agradeço). Então, primeiro problema: Ele consegue ver qual é o maior número, mas nem sempre, as vezes algum dado não tira o maior número e ganha ponto mesmo assim; segundo problema: é para o jogo se encerrar quando alguém faz 10 pontos, MAS ele continua rodando depois de alguém alcançar 10 pontos :| #include <iostream> #include <time.h> //srand time null #include <stdlib.h> //rand #include <windows.h> //sleep using namespace std; int ponto_j1 = 0; ///pontuação dos jogadores int ponto_j2 = 0; int ponto_j3 = 0; int ponto_j4 = 0; class Dado{ public: int dado; void numrand(); }; void Dado::numrand(){ this->dado=rand()%6+1; ///função para dar um numero aleatorio de 1 até 6 } void Pontuacao(){ cout<<" JOGADOR 1: "<<ponto_j1<<" JOGADOR 2: "<<ponto_j2<<" JOGADOR 3: "<<ponto_j3<<" JOGADOR 4: "<<ponto_j4<<endl; } int main (){ char resp; do{ cout<<">Aperte R para rolar os dados!"<<endl; cin>>resp; if (resp=='r'||resp=='R'){ system("cls"); Pontuacao(); srand(time(NULL)); Dado *dado1=new Dado(); ///cria um dado para cada jogador Dado *dado2=new Dado(); Dado *dado3=new Dado(); Dado *dado4=new Dado(); dado1->numrand(); dado2->numrand(); ///dá um número aleatório para cada dado dado3->numrand(); dado4->numrand(); for (int i=0; i<3; i++){ cout<<"rolando."; Sleep(200); cout<<"."; Sleep(200); cout<<"."; Sleep(200); } cout<<endl<<"JOGADOR 1 >> "<<dado1->dado<<" <<"<<endl; cout<<endl<<"JOGADOR 2 >> "<<dado2->dado<<" <<"<<endl; cout<<endl<<"JOGADOR 3 >> "<<dado3->dado<<" <<"<<endl; cout<<endl<<"JOGADOR 4 >> "<<dado4->dado<<" <<"<<endl<<endl; if (dado1>dado2 && dado1>dado3 && dado1>dado4){ ///se o dado 1 for maior cout<<"O >JOGADOR 1< ganhou 1 ponto!!"<<endl; ponto_j1++; } if (dado2>dado1 && dado2>dado3 && dado2>dado4){ ///se o dado 2 for maior cout<<"O >JOGADOR 2< ganhou 1 ponto!!"<<endl; ponto_j2++; } if (dado3>dado2 && dado3>dado1 && dado3>dado4){ ///se o dado 3 for maior cout<<"O >JOGADOR 3< ganhou 1 ponto!!"<<endl; ponto_j3++; } if (dado4>dado2 && dado4>dado3 && dado4>dado1){ ///se o dado 4 for maior cout<<"O >JOGADOR 4< ganhou 1 ponto!!"<<endl; ponto_j4++; } } }while(ponto_j1<10 || ponto_j2<10 || ponto_j3<10 || ponto_j4<10); return 0; }
  2. Eu preciso fazer um jogo de dados em que quatro jogadores lançam os dados e o maior número ganha. Fiz com um dado e deu certo, mas quando coloquei os outros 3 que faltavam deu um probleminha, o número continua aleatório e entre 1 e 6, mas o mesmo número aparece para todos os dados (1111, 3333, etc.). Meu professor não nos passou conteúdo sobre classe direito, tô tendo que me virar procurando coisa na internet. #include <iostream> #include <time.h> #include <stdlib.h> using namespace std; class Dado{ public: int dado; void numrand(); }; void Dado::numrand(){ srand(time(NULL)); this->dado=rand()%6+1; } int main (){ Dado *dado1=new Dado(); Dado *dado2=new Dado(); Dado *dado3=new Dado(); Dado *dado4=new Dado(); dado1->numrand(); dado2->numrand(); dado3->numrand(); dado4->numrand(); cout<< dado1->dado << dado2->dado << dado3->dado << dado4->dado; return 0; }
  3. Preciso fazer um campo minado em que o jogador não clica no campo, mas se movimenta nele. O jogador diz quantas minas quer que tenha no jogo e o programa deve espalhar essas minas aleatoriamente no mapa e deve dizer quantas minas tem em volta do jogador. Meu programa estava funcionando até então, faltando apenas colocar as minas no mapa, mas depois de eu mexer nele tentando colocar as minas está dando "expected unqualified-id before 'return'". Queria saber como resolver esse problema e como colocar as minas no mapa. Aqui o programa: #include <iostream> #include <stdlib.h> #include <conio.h> #include <stdio.h> #include <windows.h> using namespace std; void gotoxy(int x, int y){ SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),(COORD){x-1,y-1}); } void NumMinas (int nM){ //Função que confere se o número digitado é válido while (nM<15 || nM>127){ cout<<"Número inválido, tente outro: "; cin>>nM; } } void Vitoria (){ system ("cls"); cout<<"ae, tu ganhou, iei"<<endl; cout<<"num fez mais que sua obrigação"<<endl; } void Derrota(){ system ("cls"); cout<<"seu lixo"; } void Movimentacao (int x, int y, int x2, int y2, char resp){ x = 1; //x = horizontal y = 1; //y = vertical x2 = 1; y2 = 1; bool ganhou = false; while(true){ gotoxy(x2, y2); cout << "\2"; //rastro gotoxy(x, y); cout << "\1"; //personagem x2=x; y2=y; if(kbhit()){ resp=getch(); if(resp=='a' || resp=='A'){ //esquerda x--; } if(resp=='w' || resp=='W'){ //cima y--; } if(resp=='s' || resp=='S'){ //baixo y++; } if(resp=='d' || resp=='D'){ //direita x++; } } ///////////////////////////////////////PAREDES INVISÍVEIS//////////////////////////////////////////////////////////////// if (x==11){ //faz com que o personagem não saia pela direita x=10; } if (y==0){ //faz com que o personagem não saia do mapa por cima y=1; } if(y==16){ //impede que o personagem saia do mapa por baixo y=15; } if (x==0){ //faz com que o personagem nao saia pela esquerda x=1; } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if((x==10) && (y==15)){ ganhou = true; break; } Sleep(50); } system ("cls"); if (ganhou){ Vitoria(); } else if (!ganhou){ Derrota(); } } void Campo (int i, int j,int x, int y, int x2, int y2, char resp){ //função que imprime o campo system("cls"); for (j=0; j<15;){ cout<<".........."<<endl; j++; } Movimentacao(x, y, x2, y2, resp); } int main (){ setlocale (LC_ALL, "Portuguese"); system("color 0C"); int nM; //Número de minas que o jogador vai escolher int i, j, x, y, x2, y2; char resp; cout<<" ______ __ __ _ "<<endl; cout<<" / ____/ / / / // "<<endl; cout<<" / / ___ _ _ ____ ____ / / / \2 _ ___ ___//____ "<<endl; cout<<" / /____( // / // // / / / / / / /( // // /"<<endl; cout<<" /______/ // / // __//___/ / / / / / / // //___/"<<endl; cout<<" /_/ "<<endl<<endl<<endl; cout<<">Com quantas minas você quer jogar? (Min: 15 Máx: 127 ): "; cin>>nM; NumMinas(nM); Campo (i, j, x, y, x2, y2, resp); } return 0; OBS 1.: as funções "vitoria" e "derrota" eu coloquei qualquer coisa só pra testar se estava dando certo. OBS 2.: essa é minha primeira publicação, caso eu esteja cometendo algum erro peço desculpas.

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...