Ir ao conteúdo

Posts recomendados

Postado

oi sou iniciante, to tentando fazer um jogo do Pedra, Papel, Tesoura, eu consegui e roda bem e ate compila sem nenhum worning ou erro, so que não mostra o resultado! quem venceu ou não, um detalhe: antes os else if q usei não tinha o {} e compilava bem, eu não coloquei porque minha instrução só tem 1 linha e ai não precisa do {}. Mas mesmo assim coloquei os {} pra ver se era e continua a mesma coisa, o negocio não fala quem venceu! so vai pro final onde fiz se quer sair ou voltar pro começo. Na parte do vez do (nome2) roda bem, mas depois disso, quando passa pros if eu acho, o codigo vai pro "deseja sair?" (se alguem perguntar porque não usar um string no player1 e player2, eu tentei mas deu varios erro, eu ainda não sei mexer nesse trem) agradeço desde já

 

#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <string>
#include <locale.h>
using namespace std;

int main(){
	
	char op;
	char player1; char player2;
	string nome1; string nome2;
	
do{
	system("clear||cls");
	setlocale(LC_ALL, "portuguese");
	cout << setw(40) << "Pedra, Papel e Tesoura" << endl;
	cout << "\nComeçar jogo?[s/n]: ";
	cin >> op;
	system("clear||cls");
	
	switch(op){
		case 's':
		case 'S':
			cout << "\nDigite o nome do player1: ";
			cin >> nome1;
			cout << "\nDigite o nome do player2: ";
			cin >> nome2;
			
			system("clear||cls");
			cout << "\nLegenda: [P -> Pedra / E - Papel / T - Tesoura]\n";
			cout << "\nVez de: " << nome1;
			cout << "\nDigite[P/E/T]: ";
			cin >> player1;
			
			
			system("clear||cls");
			cout << "\nLegenda: [P -> Pedra / E - Papel / T - Tesoura]\n";
			cout << "\nVez de: " << nome2;
			cout << "\nDigite[P/E/T]: ";
			cin >> player2;
				
			
			if(player1 == player2)
				cout << "\nEmpate!";
			
			if(player1 != player2){
				
				if(player1 == 'p' || player1 == 'P' && player2 == 't' || player2 == 'T'){
				
					cout << "\n" << nome1 << " venceu!";
					
				}else if(player2 == 'p' || player2 == 'P' && player1 == 't' || player1 == 'T'){
				
					cout << "\n" << nome2 << " venceu!";
					
				}else if(player1 == 't' || player1 == 'T' && player2 == 'e' || player2 == 'E'){
				
					cout << "\n" << nome1 << " venceu!";
					
				}else if(player2 == 't' || player2 == 'T' && player1 == 'e' || player1 == 'E'){
				
					cout << "\n" << nome2 << " venceu!";
				
				}else if(player1 == 'e' || player1 == 'E' && player2 == 'p' || player2 == 'P'){
				
					cout << "\n" << nome1 << " venceu!";
				
				}else if(player2 == 'e' || player2 == 'E' && player1 == 'p' || player1 == 'P'){
					
					cout << "\n" << nome2 << " venceu!";
					
				}
		}
			break;
			
		default:
			return 0;
			break;		
	}
	
	system("clear||cls");
	cout << "\n\nDeseja sair?[S/N]: ";
	cin >> op;
	
}while(op == 'N' || op == 'n');
	return 0;
}

 

  • Amei 1
Postado

@Matheus Marcelino    ele vai para o deseja sair , por que o compilador faz muito rápido , e você não vê ele mostrar o resultado e sendo que logo em seguida ele faz uma Limpeza na tela , e assim você não consegue ver o que aconteceu ,  e então você pode usar um Delay no programa para que nesses casos ele espere um pouquinho e depois continua ,  e se você incluir a biblioteca Windows.h , pode usar o comando Sleep(4000);  ,  que vai mostrar a msg na tela e esperar  por 4 Segundos , e depois continuar ,  ou o getch() ; que espera ethernamente até que se tecle algum botão do teclado ,   e QuanTo Às chave "  {  }   " , nesses casos não precisaria mesmo não , mas o código identado fica bem estranho se não tiver elas no lugar certo ,  e então seu código com algumas modificações poderia ser assim  :

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <string>
#include <conio.h>
#include <locale.h>
#define getch() _getch()
using namespace std;
int main() 
{
    char op;
    char player1; char player2;
    string nome1; string nome2;
    cout << "\nDigite o nome do player1: ";
    cin >> nome1;
    cout << "\nDigite o nome do player2: ";
    cin >> nome2;
    do 
    {
        system("clear||cls");
        setlocale(LC_ALL, "portuguese");
        cout << setw(40) << "Pedra, Papel e Tesoura" << endl;
        cout << "\nComeçar jogo?[s/n]: ";
        fflush(stdin);
        setbuf(stdin, NULL);
        cin >> op;
        system("clear||cls");
        switch (op) 
        {
        case 's':
        case 'S':
            system("clear||cls");
            cout << "\nLegenda: [P -> Pedra / E - Papel / T - Tesoura]\n";
            cout << "\nVez de: " << nome1;
            cout << "\nDigite[P/E/T]: ";
            cin >> player1;
            // system("clear||cls");
            cout << "\nLegenda: [P -> Pedra / E - Papel / T - Tesoura]\n";
            cout << "\nVez de: " << nome2;
            cout << "\nDigite[P/E/T]: ";
            cin >> player2;
            if (player1 == player2)
            {
                cout << "\nEmpate . . . !" << "\n\tTecle !";
                getch();
            }
            else
            {
                if (player1 == 'p'  ||
                   (player1 == 'P'  &&
                    player2 == 't') ||
                    player2 == 'T'   )
                {
                    cout << "\n" << nome1 << " venceu !. . ." << "\n\tTecle !";;
                    getch();
                }
                else
                {
                    if (player2 == 'p' ||
                       (player2 == 'P' &&
                        player1 == 't') ||
                        player1 == 'T')
                    {
                        cout << "\n" << nome2 << " venceu !  !   !" << "\n\tTecle !";;
                        getch();;
                    }
                    else
                    {
                        if (player1 == 't' ||
                           (player1 == 'T' &&
                            player2 == 'e') ||
                            player2 == 'E')
                        {
                            cout << "\n" << nome1 << " venceu . ! . ! . !" << "\n\tTecle !";;
                            getch();;;
                        }
                        else
                        {
                            if (player2 == 't' ||
                               (player2 == 'T' &&
                                player1 == 'e') ||
                                player1 == 'E')
                            {
                                cout << "\n" << nome2 << " venceu ! ! !" << "\n\tTecle !";;
                                getch();;;
                            } 
                            else
                            {
                                if (player1 == 'e' ||
                                   (player1 == 'E' &&
                                    player2 == 'p') ||
                                    player2 == 'P')
                                {
                                    cout << "\n" << nome1 << " venceu  !" << "\n\tTecle !";;
                                   getch();;;
                                } 
                                else
                                {
                                    if (player2 == 'e' ||
                                       (player2 == 'E' &&
                                        player1 == 'p') ||
                                        player1 == 'P')
                                    {
                                        cout << "\n" << nome2 << " venceu  . ! . , , " << "\n\tTecle !";;
                                        getch();;;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            break;
        case 'N':
        case 'n':
            break;
        default:
            cout << "Opcao InvaLidA . . . !" << endl;
            cout << "\tTecle !";;
            getch();;;
            // return 0;
            // break;
        }
        system("clear||cls");
        cout << "\n\nDeseja sair?[S/N]: ";
       cin >> op;
    } while (op == 'N' || op == 'n');
    return 0;
}

 

  • Curtir 1
Postado
5 horas atrás, Matheus Marcelino disse:

oi sou iniciante, to tentando fazer um jogo do Pedra, Papel, Tesoura, eu consegui e roda bem e ate compila sem nenhum worning ou erro, so que não mostra o resultado! quem venceu ou não, um detalhe: antes os else if q usei não tinha o {} e compilava bem, eu não coloquei porque minha instrução só tem 1 linha e ai não precisa do {}. Mas mesmo assim coloquei os {} pra ver se era e continua a mesma coisa, o negocio não fala quem venceu! so vai pro final onde fiz se quer sair ou voltar pro começo. Na parte do vez do (nome2) roda bem, mas depois disso, quando passa pros if eu acho, o codigo vai pro "deseja sair?" (se alguem perguntar porque não usar um string no player1 e player2, eu tentei mas deu varios erro, eu ainda não sei mexer nesse trem) agradeço desde já

 

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <iomanip>
#include <stdlib.h>
#include <string>
#include <conio.h>
#include <locale.h>
#define getch() _getch()
using namespace std;
int main() 
{
    string op;
    char player1; char player2;
    string nome1; string nome2;
    cout << "\nDigite o nome do player1: ";
    cin >> nome1;
    cout << "\nDigite o nome do player2: ";
    cin >> nome2;
    do 
    {
        system("clear||cls");
        setlocale(LC_ALL, "portuguese");
        cout << setw(40) << "Pedra, Papel e Tesoura" << endl;
        cout << "\nComeçar jogo?[s/n]: ";
        fflush(stdin);
        setbuf(stdin, NULL);
        cin >> op;
        system("clear||cls");
        switch (op[0]) 
        {
        case 's':
        case 'S':
            system("clear||cls");
            cout << "\nLegenda: [P -> Pedra / E - Papel / T - Tesoura]\n";
            cout << "\nVez de: " << nome1;
            cout << "\nDigite[P/E/T]: ";
            cin >> player1;
            // system("clear||cls");
            cout << "\nLegenda: [P -> Pedra / E - Papel / T - Tesoura]\n";
            cout << "\nVez de: " << nome2;
            cout << "\nDigite[P/E/T]: ";
            cin >> player2;
            if (player1 == player2)
            {
                cout << "\nEmpate . . . !" << "\n\tTecle !";
                getch();
            }
            else
            {
                if (player1 == 'p'  ||
                   (player1 == 'P'  &&
                    player2 == 't') ||
                    player2 == 'T'   )
                {
                    cout << "\n" << nome1 << " venceu !. . ." << "\n\tTecle !";;
                    getch();
                }
                else
                {
                    if (player2 == 'p' ||
                       (player2 == 'P' &&
                        player1 == 't') ||
                        player1 == 'T')
                    {
                        cout << "\n" << nome2 << " venceu !  !   !" << "\n\tTecle !";;
                        getch();;
                    }
                    else
                    {
                       if (player1 == 't' ||
                          (player1 == 'T' &&
                           player2 == 'e') ||
                           player2 == 'E')
                       {
                           cout << "\n" << nome1 << " venceu . ! . ! . !" << "\n\tTecle !";;
                           getch();;;
                       }
                        else
                        {
                            if (player2 == 't' ||
                               (player2 == 'T' &&
                                player1 == 'e') ||
                                player1 == 'E')
                            {
                                cout << "\n" << nome2 << " venceu ! ! !" << "\n\tTecle !";;
                               getch();;;
                            } 
                            else
                            {
                                if (player1 == 'e' ||
                                   (player1 == 'E' &&
                                    player2 == 'p') ||
                                    player2 == 'P')
                                {
                                    cout << "\n" << nome1 << " venceu  !" << "\n\tTecle !";;
                                    getch();;;
                                }
                                else
                                {
                                    if (player2 == 'e' ||
                                       (player2 == 'E' &&
                                        player1 == 'p') ||
                                        player1 == 'P')
                                    {
                                        cout << "\n" << nome2 << " venceu  . ! . , , " << "\n\tTecle !";;
                                        getch();;;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            break;
        case 'N':
        case 'n':
             break;
        default:
            cout << "Opcao InvaLidA . . . !" << endl;
            cout << "\tTecle !";;
            getch();;;
            // return 0;
            // break;
        }
        system("clear||cls");
        cout << "\n\nDeseja sair?[S/N]: ";
        cin >> op;
    } while (op[0] == 'N' || op[0] == 'n');
    return 0;
}

 

 

  • Curtir 1

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!