1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Help C#

Discussão em 'Programação' iniciada por Ruben_Barbosa, 24 de Março de 2009. (Respostas: 4; Visualizações: 1633)

  1. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Boas malta eu tenho um trabalho de xadrez para fazer e para já o que consegui fazer até agora e ja foi bom foi isto;).

    Como tal sou iniciante em C#, mas já vou dando os toques =).
    O que eu queria por exemplo era como criar um peça de xadrez e dizer que moviemntos pode Fazer.
    Algo do Genero

    Código:
    char T; // caracter Torre
    agora n sei como criar um movimento dela :(
    acho que tenho que usar matriz mas ainda não aprendi mas se alguem me pode-se dar uma maozinha agradecia ;)
    cumps
    

    Código:
    #include <stdio.h>
    #include <stdlib.h>
    #include <locale.h>
    #include <conio2.h>
    
    void Menu_principal();
    void desenhar_op();
    void back_menu();
    int tabuleiro ();
    void nome_jogador();
    
    
    int main()
    {
        setlocale(LC_ALL,"");
        Menu_principal();
    }
    
    
    
    // Função para Menu
    void Menu_principal()
    {
    
        char opcao;
        textbackground(BLUE);
        textcolor(WHITE);
        clrscr();
        setlocale(LC_ALL,"");
        desenhar_op();
        opcao = getch();
        switch(opcao)
        {
            case 'J':
            case 'j':
            nome_jogador();
            tabuleiro ();
    
    
            case 'O':
            case 'o':
    
    
            case 'S':
            case 's':
                exit;
                break;
    
            default :
                printf("\n\n Opção Invalida.\n\n Deseja Voltar ao menu Inicial (S/N)");
                back_menu();
        }
    
    }
    
    //funcao que desenha o opções do jogo
    void desenhar_op()
    {
        gotoxy(28,5);
        printf("Bem Vindo ao Jogo de Xadrez\n\n\n\n\n");
        textcolor(WHITE);
        gotoxy(26,10);
        printf("- - -   Opções de Jogo    - - -");
        gotoxy(32,14);
        printf("[J]- player vs player");
        gotoxy(32,16);
        printf("[O]-opções do jogo");
        gotoxy(32,18);
        printf("[S]-Sair do jogo ");
    }
    
    // funcao voltar ao menu
    void back_menu()
    {
        char op;
        op = getch();
    
        switch(op)
        {
            case 'S':
            case 's':
                clrscr();
                system("PAUSE");
                Menu_principal();
                break;
    
            case 'N':
            case 'n':
                exit;
                break;
    
                default:
                    printf("\n Opção invalida. O Programa vai encerrar!\n\n");
                    exit;
                    break;
        }
    }
    
    int tabuleiro ()
    {
    
        int tab[10][10],x, y ,i;
            clrscr();
            i=6;
        for(x=1; x<=10; x++)
        {
            i++;
            gotoxy(30,i);
        for(y=1; y<=10; y++)
        {
            if( (x+y)%2 == 0 ) textcolor(WHITE);
                else textcolor(BLACK);
                    cprintf("%c%c",219,219);
        }
        }
        gotoxy(20,20);
        printf ("introduza as coordenadas a inprimir\n");
        gotoxy(20,21);
        scanf("%d %d",&x,&y);
        tab[x][y];
        printf("**", tab[x][y]);
    }
    
    void nome_jogador()
    {
        char P1[25];
        char P2[25];
        clrscr();
        printf("\n Introduza o Nome do Primeiro jogador.\n");
        gotoxy(2,4);
        gets(P1);
        printf("\n Introduza o Nome do Segundo jogador.\n");
        gotoxy(2,8);
        gets(P2);
    }
    
    
     
  2. Tomb4000

    Tomb4000 Power Member

    Das uns toques em c#???

    Entendi mal ou não sabes que isso não é c#.

    Espero ter entendido mal o texto, ou o que tentaste transmitir, porque se entedi de c# não sabes nada....
     
  3. iznougud

    iznougud I quit My Job for Folding

    @Tomb4000: pus-me logo a pensar no problema e nem reparei que ele estava a usar C e nao C# :D

    Isso está mesmo a pedir o uso de classes e enums, mas não sei até que ponto ja deste essa materia e a podes usar.

    O modo mais básico é teres uma lista do tipo de peças (um enum), teres uma função que recebe a posicao da peça, a posiçao pretendida e o tipo de peça. Usas um switch para dependendo do tipo de peça recebido saber se é um movimento válido ou nao. Se for valido a peça passa para a nova posicao, caso contrario da erro.


    O tabuleiro vai ter de passar a ser variavel global...
    Provavelmente o melhor metodo de distinguires entre cores das peças é usares 'T' para torre preta e 't' para torre branca por exemplo.

    A função que valida o movimento pode começar por ver se na posicao final nao excede o tabuleiro, depois se existe alguma peça da mesma cor na posicao final.
    Se isto for validado entao podes validar o movimento da peca com o switch, no caso da torre, pos_final.x == pos_inicial.x ou pos_final.y == pos_inicial.y (com pos_inicial != pos_final)
     
  4. Tomb4000

    Tomb4000 Power Member

    Pois, mas dependendo da linguagem podes chegar a soluções diferentes... por exemplo... se for c não vais usar classes de certeza....
    Cumprimentos...
     
  5. Ruben_Barbosa

    Ruben_Barbosa Power Member

    LOL soz malta xD queria Dizer C só LOL noob XD !!!!

    Se me pudessem dar umas dicas ou ajuda agradecia ;)
     

Partilhar esta Página