blg 0 Denunciar post Postado Maio 12, 2015 olá, preciso desenvoler um programa em c que permite ao usuário jogar bagha-chall, o programa executará em modo texto em uma janela de terminal, mas não estou conseguindo, sou novata nisso e estou tendo dificuldade, o jogo é disputado num tabuleiro com 25 intersecções (5x5), começando com 4 tigres nos cantos e 20 cabras fora. As peças são colocadas nas intersecções das linhas e os movimentos seguem as linhas determinadas no tabuleiro. o objetivo do jogador que está jogando com os tigres é capturar as cabras e do jogador que joga com as cabras, é imobilizar os quatro tigres. As cabras não podem se movimentar até que as 20 estejam no tabuleiro, já os tigres podem se movimentar desde o começo do jogo. o tabuleiro é simples , ficaria assim no terminal: T - tigres T---+---+---+---T | \ | / | \ | / | | \ | / | \ | / | | \ | / | \ | / | +---+---+---+---+ | / | \ | / | \ | | / | \ | / | \ | | / | \ | / | \ | +---+---+---+---+ | \ | / | \ | / | | \ | / | \ | / | | \ | / | \ | / | +---+---+---+---+ | / | \ | / | \ | | / | \ | / | \ | | / | \ | / | \ | T---+---+---+---T se alguém puder me dar uma luz eu agradeço Compartilhar este post Link para o post Compartilhar em outros sites
vangodp 1 Denunciar post Postado Maio 13, 2015 Suponho que já deves saber algo sobre teoria de videogames não? -gameloop -Gestão de eventos para teclado nesse caso. - IA no caso de ter que jogar com a maquina. As barras invertidas para poder imprimir elas devemos por 2 barras \\ para que saia uma. Vou deixar um exemplo que apesar de não saber si te vai funcionar por causa do getch, te deveria dar uma ideia. #include <iostream> #include <windows.h> #include <conio.h> using namespace std; void gotoxy ( int x, int y ) { HANDLE hcon; hcon = GetStdHandle ( STD_OUTPUT_HANDLE ); COORD dwPos; dwPos.X = x; dwPos.Y = y; SetConsoleCursorPosition ( hcon, dwPos ); } int main () { char mapa[17][27] = { {"+-----+-----+-----+-----+"}, {"| \\ | / | \\ | / |"}, {"| \\ | / | \\ | / |"}, {"| \\ | / | \\ | / |"}, {"+-----+-----+-----+-----+"}, {"| / | \\ | / | \\ |"}, {"| / | \\ | / | \\ |"}, {"| / | \\ | / | \\ |"}, {"+-----+-----+-----+-----+"}, {"| \\ | / | \\ | / |"}, {"| \\ | / | \\ | / |"}, {"| \\ | / | \\ | / |"}, {"+-----+-----+-----+-----+"}, {"| / | \\ | / | \\ |"}, {"| / | \\ | / | \\ |"}, {"| / | \\ | / | \\ |"}, {"+-----+-----+-----+-----+"} }; for ( int y = 0; y < 17; y++ ) { for ( int x = 0; x < 27; x++ ) { cout << mapa[y][x]; } cout << endl; } int x = 0; int y = 16; int cx = 0; int cy = 0; //inicia em: gotoxy ( 0, 16 ); printf ( "T" ); int ch; while ( ( ch = _getch() ) ) { if ( ch == 27 ) { return 0; } if ( ch == 72 ) { //cout << "up" << endl; if ( y > 0 ) { gotoxy ( x, y ); printf ( "+" ); y = y - 4; gotoxy ( x, y ); printf ( "T" ); } } else if ( ch == 75 ) { //cout << "left" << endl; if ( x > 0 ) { gotoxy ( x, y ); printf ( "+" ); x = x - 6; gotoxy ( x, y ); printf ( "T" ); } } else if ( ch == 77 ) { //cout << "right" << endl; if ( x <= 20 ) { gotoxy ( x, y ); printf ( "+" ); x = x + 6; gotoxy ( x, y ); printf ( "T" ); } } else if ( ch == 80 ) { //cout << "down" << endl; if ( y <= 12 ) { gotoxy ( x, y ); printf ( "+" ); y = y + 4; gotoxy ( x, y ); printf ( "T" ); } } else { gotoxy ( x, y ); printf ( "+" ); cx = x; cy = y; gotoxy ( x, y ); printf ( "T" ); x = cx; y = cy; } } cin.ignore(); return 0; } Esta feito e compilado com codeblocks e mingw-64, em windows7 de 32 bits. Si não te funciona busca o header conio.h. Esse código se pode melhorar muito, até mesmo prescindir do conio.h que esse header não vale nada. :yes: Compartilhar este post Link para o post Compartilhar em outros sites
blg 0 Denunciar post Postado Maio 13, 2015 clareou bastante, estava com uma tremenda dificuldade. Obrigado pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites