Ir para conteúdo
Ds1991

Dúvida: Como fazer um programa rodar novamente?

Recommended Posts

Olá, amigos, eu me chamo Daniel e sou aluno de ADS, vamos direto ao ponto, eu gostaria de saber como eu faço para rodar esse programa novamente, resetar as informações anteriores e rodar o programa como se fosse a primeira vez (não sei se estou sendo claro o suficiente) , eu já tentei colocar o comando "system ("cls")" em várias partes do código, mas não está resolvendo, não sei mais o que fazer, agradeço a sua ajuda. Obrigado.

 

 

#include <iostream>
#include <stdlib.h>

 

using namespace std;

 

char matriz[3][3] = {'1','2','3','4','5','6','7','8','9'};
int n;
char jog = 'X';
char sair = 's';
bool s = true;

 

void Jogo(){
    system("cls");
    cout << "\n   JOGO  DA  VELHA\n\n";
    for (int a=0;a<3;a++){
       cout << "\t";
         for (int j=0;j<3;j++){
            cout << matriz[a][j]<< " ";
        }
        cout << "\n";
    }
    cout << "\n";
}

 

void Entrada(){
    int p;
    cout << "Digite um numero: ";
    cin >> p;
    
    if (p==1){
        if(matriz[0][0] == '1'){
            matriz[0][0] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==2){
        if(matriz[0][1] == '2'){
            matriz[0][1] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==3){
        if(matriz[0][2] == '3'){
            matriz[0][2] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==4){
        if(matriz[1][0] == '4'){
            matriz[1][0] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==5){
        if(matriz[1][1] == '5'){
            matriz[1][1] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==6){
        if(matriz[1][2] == '6'){
            matriz[1][2] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==7){
        if(matriz[2][0] == '7'){
            matriz[2][0] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==8){
        if(matriz[2][1] == '8'){
            matriz[2][1] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
    else if(p==9){
        if(matriz[2][2] == '9'){
            matriz[2][2] = jog;
        }
        else{
            cout << "\nJogada invalida! Tente novamente.\n\n";
            Entrada();
        }
    }
}

 

void Alterna(){
    if (jog == 'X')
        jog = 'O';
    else{
        jog = 'X';
     } 
}

 

char Vencedor(){

 

  // Jogador 1

 

    if (matriz[0][0] == 'X' && matriz[0][1] == 'X' && matriz[0][2] == 'X')
        return 'X';
    if (matriz[1][0] == 'X' && matriz[1][1] == 'X' && matriz[1][2] == 'X')
        return 'X';
    if (matriz[2][0] == 'X' && matriz[2][1] == 'X' && matriz[2][2] == 'X')
        return 'X';

 

    if (matriz[0][0] == 'X' && matriz[1][0] == 'X' && matriz[2][0] == 'X')
        return 'X';
    if (matriz[0][1] == 'X' && matriz[1][1] == 'X' && matriz[2][1] == 'X')
        return 'X';
    if (matriz[0][2] == 'X' && matriz[1][2] == 'X' && matriz[2][2] == 'X')
        return 'X';

 

    if (matriz[0][0] == 'X' && matriz[1][1] == 'X' && matriz[2][2] == 'X')
        return 'X';
    if (matriz[0][2] == 'X' && matriz[1][1] == 'X' && matriz[2][0] == 'X')
        return 'X';

 

    //Jogador2

 

    if (matriz[0][0] == 'O' && matriz[0][1] == 'O' && matriz[0][2] == 'O')
        return 'O';
    if (matriz[1][0] == 'O' && matriz[1][1] == 'O' && matriz[1][2] == 'O')
        return 'O';
    if (matriz[2][0] == 'O' && matriz[2][1] == 'O' && matriz[2][2] == 'O')
        return 'O';

 

    if (matriz[0][0] == 'O' && matriz[1][0] == 'O' && matriz[2][0] == 'O')
        return 'O';
    if (matriz[0][1] == 'O' && matriz[1][1] == 'O' && matriz[2][1] == 'O')
        return 'O';
    if (matriz[0][2] == 'O' && matriz[1][2] == 'O' && matriz[2][2] == 'O')
        return 'O';

 

    if (matriz[0][0] == 'O' && matriz[1][1] == 'O' && matriz[2][2] == 'O')
        return 'O';
    if (matriz[0][2] == 'O' && matriz[1][1] == 'O' && matriz[2][0] == 'O')
        return 'O';

 

    return 'e';
}

 

int main(){
     
   while (s == true){
         Jogo();;    
        while (true){
            n++;
            Entrada();
            Alterna();
            Jogo();
                if (Vencedor() == 'X'){
                    cout << "Jogador X Venceu!\n\n";
                    break;
                }
                else if(Vencedor() == 'O'){
                    cout << "Jogador O Venceu!\n\n";
                   break; 
                }
                else if(Vencedor() == 'e' &&     n == 9){
                    cout << "Deu empate!\n\n";
                    break;
                }              
          }
          cout << "Jogar novamente?\n(s/n): ";
          cin >> sair;
        
        if(sair == 's' || sair == 'S'){
            s = true;
        }
        else if(sair == 'n' || sair == 'N'){
            s = false;
            break;
        }
    }
    system("pause");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só usar o comando "return" para retornar a função principal do programa


#include <stdio.h>

int main(){
  int valor = 12;
  printf("%d", valor);
  valor = 40;
  return main();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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

  • Conteúdo Similar

    • Por Lincoln Ferreira de Jesus
      Olá, estou começando a aprender a linguagem c++ e eu gostaria de saber alguns exemplos de jogos feitos com puro c++ sem engine nem nd. Pra eu ter uma noção de quanto um desenvolvedor vai sem usar uma engine =) obrigado.
    • Por lucas.sardelari
      Olá
      Estou tendo um problema ao compilar uma biblioteca no Android Studio pelo NDK Quando executo o comando ndk-build, um problema é lançado:
       
      Android NDK: Found platform level in ./project.properties. Setting APP_PLATFORM to android-19. Android NDK: WARNING: APP_PLATFORM android-19 is higher than android:minSdkVersion 1 in ./AndroidManifest.xml. NDK binaries will *not* be compatible with devices older than android-19. See https://android.googlesource.com/platform/ndk/+/master/docs/user/common_p roblems.md for more information. [arm64-v8a] Compile : FerrugemLib <= FerrugemLib.c In file included from jni/FerrugemLib.c:15: In file included from jni\CL/cl.h:32: jni\CL/cl_version.h:34:9: warning: cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2) [-W#pragma-messages] #pragma message("cl_version.h: CL_TARGET_OPENCL_VERSION is not defined. Defaulting to 220 (OpenCL 2.2)") ^ jni/FerrugemLib.c:346:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:535:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:733:25: warning: 'clCreateCommandQueue' is deprecated [-Wdeprecated-declarations] openCLObjects->queue = clCreateCommandQueue(openCLObjects->context, openCLObjects->device, 0, &err); ^ jni\CL/cl.h:1760:72: note: 'clCreateCommandQueue' has been explicitly marked deprecated here cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED; ^ jni\CL/cl_platform.h:91:70: note: expanded from macro 'CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED' #define CL_EXT_SUFFIX__VERSION_1_2_DEPRECATED __attribute__((deprecated)) ^ jni/FerrugemLib.c:839:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:944:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:1977:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ jni/FerrugemLib.c:2034:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ 8 warnings generated. [arm64-v8a] SharedLibrary : libFerrugemLib.so C:/Android/Sdk/ndk-bundle/build//../toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/lib/gcc/aarch64-linux-android/4.9.x/../../../../aarch64-linux-android/bin\ld: cannot find OpenCL: No such file or directory clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [obj/local/arm64-v8a/libFerrugemLib.so] Error 1 Meu Android.mk
      LOCAL_PATH := $(call my-dir)
      LOCAL_C_INCLUDES += PATH_TO_CL_FOLDER
       
      include $(CLEAR_VARS) LOCAL_MODULE := decodeYUV420SP LOCAL_SRC_FILES := decodeYUV420SP.c LOCAL_LDLIBS := -llog -ljnigraphics include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := FerrugemLib LOCAL_SRC_FILES := FerrugemLib.c LOCAL_LDLIBS := -lOpenCL LOCAL_LDLIBS += -llog -ljnigraphics LOCAL_ALLOW_UNDEFINED_SYMBOLS := true include $(BUILD_SHARED_LIBRARY) APP_OPTIM := debug LOCAL_CFLAGS := $(call my-dir) Alguem poderia ajudar em como eu conseguir fazer dar o build com este comando: -lOpenCL
      Me propuseram a trocar o -lOpenCL por -framework OpenCL porem sem sucesso.
      Obrigado.
    • Por Luis Febro
      Olá, estou tendo dificuldade em fazer a iteração comparando os valores das propriedades do objeto:
       
      let accessories = {bike: ["helmet", 'glasses', "gloves", "smartwatch"], apps: ["Google Maps", "Anki"]};       let compareItems = function(obj, analysedThing) {         let res = "";         Object.entries(obj).map(function(ìtems) {           if (ìtems[1].indexOf(analysedThing) > -1) {              res = ìtems[0];             document.getElementById("quickCode").innerHTML = `it was found ${analysedThing} in the section ${res}`;           } else {             document.getElementById("quickCode").innerHTML = "Nothing was found. Try another item!";           }         });       };       compareItems(accessories, "glasses");  
      Output: Nothing was found. Try another item! // Mas tem sim na primeira propriedade. Se busco algum valor em apps, por outro lado, ele acha para mim. Mas não em bike.
      Alguém pode me orientar para buscar todos os valores e retornar a propriedade correspondente? Grato.
    • Por Marcelobpc
      Boa tarde pessoal,
      estou tendo muita dificuldade para criar um algoritmo que eu entre com um numero de 0 a 100 e ele me informe quantos números pares tem no intervalo do numero que digitei até 0 e caso o numero digitado for maior que 100 ele solicite que seja digitado o numero de 0 a 100 novamente.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.