Ir para conteúdo
Fórum Script Brasil

rl28

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Posts postados por rl28

  1. Boa tarde,

    Estou com alguma dúvidas em relação a um exercício que estou realizando, onde pede para criar o Jogo da velha com a opção de salvar e poder continuar da onde havia parado. O código do jogo já está pronto, porém, falta a parte de salvar e continuar do ponto em que parei, onde estou quebrando a cabeça de como vou fazer. 

    Preciso criar uma função para salvar e depois chamar no main?

    Se puderem me dar uma dica de como posso fazer e de uma forma fácil, agradeço.

     

    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <locale.h>
    
    void display(char t[3][3]){
    
       printf("=====================\n");
       printf("==| JOGO DA VELHA |==\n");
       printf("=====================\n");
       
       printf("\n\n      0   1   2   Y\n");
       printf("    0 %c | %c | %c \n",t[0][0],t[0][1],t[0][2]);
       printf("     ---|---|--- \n ");
       printf("   1 %c | %c | %c \n",t[1][0],t[1][1],t[1][2]);
       printf("     ---|---|--- \n ");
       printf("   2 %c | %c | %c \n",t[2][0],t[2][1],t[2][2]);
    
       printf("\nX\n");
    }
    
    void teste_trinca(int *x, int *y, int *jg, int *teste, int velha, char t[3][3])
    {
        
    //TESTE HORIZONTAL//
            
            if(*x==0)
             if((t[0][0]==t[0][1]) && (t[0][1]==t[0][2]))
             {
                display(t);
                printf("\n Jogador %i GANHOU!! \n",*jg);
                 *teste=0;
             }
             
            if(*x==1)
             if((t[1][0]==t[1][1]) && (t[1][1]==t[1][2]))
             {
                display(t);
                printf("\n Jogador %i GANHOU!! \n",*jg);
                *teste=0;
             }
            if(*x==2) 
             if((t[2][0]==t[2][1]) && (t[2][1]==t[2][2]))
             {
                display(t);
                printf("\n Jogador %i GANHOU!! \n",*jg);
                *teste=0;
             }
    
    //TESTE VERTICAL//
    
            if(*y==0)
             if((t[0][0]==t[1][0]) && (t[1][0]==t[2][0]))
             {
                display(t);
                printf("\n Jogador %i GANHOU!! \n",*jg);
                *teste=0;
             }
             
            if(*y==1)
             if((t[0][1]==t[1][1]) && (t[1][1]==t[2][1]))
             {
                display(t);
                printf("\n Jogador %i GANHOU!! \n",*jg);
                *teste=0;
             }
             
            if(*y==2)
             if((t[0][2]==t[1][2]) && (t[1][2]==t[2][2]))
             {
                display(t);
                printf("\n Jogador %i GANHOU!! \n",*jg);
                *teste=0;
             }
             
    //TESTA DIAGONAL//
        
            if(((*x==0) && (*y==0))||((*x==1) && (*y==1))||((*x==2) && (*y==2)))
            {
             if((t[0][0]==t[1][1]) && (t[0][0]==t[2][2]))
             {
                display(t);
                printf("\n Jogador %i GANHOU!! \n",*jg);
                *teste=0;
             }
            }
            
            if(((*x==0)&&(*y==2))||((*x==1)&&(*y==1))||((*x==2)&&(*y==0)))
            {
             if((t[0][2]==t[1][1]) && (t[0][2]==t[2][0]))
             {
                display(t);
                printf("\n Jogador %i GANHOU!! \n",*jg);
                *teste=0;
             }
            }
    // TESTE VELHA//
    
            if(velha >= 9 && *teste == 1)
            {
                printf("\n DEU VELHA !");
                *teste = 0;    
            }
    }
    
    void play1(char t[3][3], int *x, int *y)
    {
       display(t);
       printf("\nJogador 1: Digite a coordenada X: ");
       scanf("%i",&*x);
       printf("\nJogador 1: Digite a coordenada Y: ");
       scanf("%i",&*y);
    }
    
    void play2(int *x, int *y, char t[3][3])
    {
       display(t);      
       printf("\nJogador 2: Digite a coordenada X: ");
       scanf("%i",&*x);
       printf("\nJogador 2: Digite a coordenada Y: ");
       scanf("%i",&*y);
    }
    
    main()
    {
           char tela[3][3];
           int teste = 1;
           int x, y;
           int velha = 0;
           int jogador;
           int jogada;
           setlocale(LC_ALL, "Portuguese");
           int menu=1;
       
        do{
            system("cls");
            fflush(stdin);
            printf("\n\n -----------------------");
            printf("\n 1 - Novo Jogo ");
            printf("\n 2 - Continuar Jogo ");
            printf("\n 3 - Sair ");
            printf("\n\n Escolha uma opção: ");
            scanf("%i",&menu);
            fflush(stdin);
            
            switch (menu){
            
                case 1: system("cls"); //Novo Jogo
                    
                    dados=fopen("velha.txt","w");
    
                       for(int i=0;i<3;i++)
                          for(int j=0;j<3;j++)
                             tela[i][j]=' ';
                          
                          while(teste!=0)
                          {      
                            if(teste!=0)
                             {
                                jogada = 0;
                                jogador = 1;  
                                play1(tela, &x, &y);
                                printf("\nX/Y: ");
                                printf("%i %i", x, y);
                            
                                getch();
     
                                while (jogada == 0)
                                {
                                    if(tela[x][y]==' ')
                                       {
                                        tela[x][y]='X';
                                           system("cls");
                                           velha++;
                                           teste_trinca (&x, &y, &jogador, &teste, velha, tela);   
                                           jogada = 1;
                                    }
                                    else
                                    {
                                           system("cls");
                                           printf("\nPosição já utilizada! \n"); 
                                           printf("\nPressione qualquer tecla para entrar novo valor\n");
                                           getch();
                                           system("cls");
                                           play1(tela, &x, &y);
                                    }
                                 }
                             }
                             if(teste!=0)
                             {
                                jogada = 0;
                                jogador = 2;         
                                play2(&x, &y, tela);
                                printf("\nX/Y: ");
                                printf("%i %i", x, y);
                        
                                getch();
                                
                                while (jogada == 0)
                                {
                                    if(tela[x][y]==' ')
                                    {
                                        velha++;
                                           tela[x][y]='O';
                                           system("cls");
                                           teste_trinca(&x, &y, &jogador, &teste, velha, tela);
                                        jogada = 1; 
                                        
                                    }            
                                    else
                                    {
                                           system("cls");
                                           printf("\nPosição já utilizada! \n"); 
                                           printf("\nPressione qualquer tecla para entrar novo valor!!\n");
                                           getch();
                                           system("cls");
                                           play2(&x, &y, tela);
                                    }        
                                 }    
                            }
                        }
                case 3: system("cls");
                        printf("\nSistema encerrado!!!");
                        getch();
                        break;
                        }
        }while(menu!=3);
        getch();
    }
  2. Boa noite,

    Criei um código em vb.net onde recebe dados de 2 textbox e salva em um .txt,porém, só esta salvando uma linha no txt e cada vez que insiro um novo dado, substitui a linha que já estava inserida, podem me ajudar?
    Precisava algo que criasse uma nova linha e salvasse as novas informações, mantendo as últimas.
    Segue código abaixo:

     

    Public Class frmTransacao
        Dim Writer As System.IO.StreamWriter
        Dim acao As String


        Private Sub btninserir_Click(sender As Object, e As EventArgs) Handles btninserir.Click

            'Grava arquivo txt com os campos "codigo e descricao" buscando o nome do arquivo o mesmo do form/tela'

            Writer = New IO.StreamWriter("C: \Users\rl\Desktop\" & Me.Text & ".txt")
            acao = btninserir.Text
            Writer.WriteLine("Código:" & textcodigo.Text & Space(1) & "Decrição:" & textdescricao.Text & Space(1) & "Ação:" & btninserir.Text)
            textcodigo.Text = String.Empty
            textdescricao.Text = String.Empty
            MessageBox.Show("Dados Salvos com Sucesso!")
            Writer.Close()
        End Sub

  3. Boa noite, 

    Estou querendo ler todos arquivos que meu sistema gerou na minha máquina no formato .txt e carregar os mesmos em uma gridview, assim deixando apenas uma tela de consulta dos dados salvos nos arquivos txt, porém, meu código não está conseguindo consultar os arquivos, abaixo código:

     

    Public Class formListaTransacao

        Private Sub formListaTransacao_Load(sender As Object, e As EventArgs) Handles MyBase.Load

            Dim dt As New DataTable

            dt.Columns.Add("Código")
            dt.Columns.Add("Descrição")
            dt.Columns.Add("Ação")


            Dim Arquivo As New System.IO.StreamReader("C:\Users\rl\Desktop\" & Me.Text & ".txt", System.Text.Encoding.Default)

            While Arquivo.Peek() <> -1
                dt.Rows.Add(Arquivo.ReadLine())
            End While

            DataGridView2.DataSource = dt
        End Sub

     

    Tela do gridview:

    image.png.b250f56470c882b454f3b08512035d3a.png

     

    Informação que consta no txt e que deve carregar no gridview:

    image.png.da4292f814deb2dfea170dcb8db9ac85.png

  4. Boa noite!

    Andei procurando em alguns fóruns a respeito de alterar a informação do text da form, mas não encontrei muita coisa. Por exemplo, cada vez que clico em uma ação/botão, ele abre um form, só que traz o nome que informei nas propriedades, gostaria que cada vez que eu abrisse a form, mostrasse o nome diferente de cada uma, assim consigo controlar cada transação que estiver aberta.

    Abri um form, tela 1, chamei de novo, tela 2 e assim por diante.. Montei um código mas está dando erro, vi em um fórum a dica, mas no meu carro não consegui fazer rodar ainda..segue abaixo:

    Public Class Principal
        Public formularios As New Collection
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles abretransacao.Click

            Dim Form As New Form()
            Static intnumero As Integer

            intnumero = intnumero + 1
            Form.Caption = "Formulário # " & intnumero ---- aqui onde está dando erro, informando que é uma expressão e por isso não pode ser um destino de uma atribuição
            Form.Show()
        End Sub

    Código original que peguei:

    Public formularios As New Collection

    Private Sub Command1_Click()
    Dim NovoForm As New Form1
    Static intnumero As Integer

      intnumero = intnumero + 1
      NovoForm.Caption = "Formulário # " & intnumero
      NovoForm.BackColor = QBColor(intnumero)
      formularios.Add NovoForm
      NovoForm.Show
    End Sub 

×
×
  • Criar Novo...