• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Voltriz

O meu jogo do galo [necessita de reparos]

5 mensagens neste tópico

Uma pergunta, como se faz para por o código numa janela de uma linguagem especifica(neste caso C)?

não ta grande coisa, mas até funciona!

#include "stdio.h"
#include "string.h"
#define C 3
#define L 3
void inter();
void inserir(int p1, int p2, int j);
int verificar(int v[L][C],int n);
int acabou(int v[L][C]);
//void representar(int v[L][C]);
main()
{
      int g=0,e=0,j1[L][C],j2[L][C],r[L][C],p1=0,p2=0,i=0,j=0,c=0,ver=0,ab=0;
inter();
for(i=0;i<L;i++)
for(j=0;j<C;j++)
{j1[i][j]=0;
j2[i][j]=0;
r[i][j]=0;
}

do
{

c=0;


do
{
printf("\n PLAYER 1\n");
printf("\n insira as coordenadas do lugar onde deseja jogar\n\n");
scanf("%d%d",&p1,&p2);
if (r[p1-1][p2-1]==0)
{j1[p1-1][p2-1]=1;
inserir(p1,p2,1);
r[p1-1][p2-1]=1;
c=1;
}
else if((p1>=0) && (p1<=2) && (p2>=0) && (p2<=2)) 
printf("\n Esse lugar ja ta preenchido!!! o PLAYER %d ja jogou ai \n\n",r[p1-1][p2-1]);
else
printf("\n Nao pode jogar ai, as coordenadas estão fora do tabuleiro!!\n\n");
}while(c==0);
//representar(r);

ver=verificar(j1,1);
if(ver==1)
{
printf("\n O PLAYER 1 GANHOU!!!!!\n");
break;
}
ab=acabou(r);
if(ab==1)
{
printf("\n o jogo terminou empatado\n");
break;
}

c=0;


do
{
printf("\n PLAYER 2\n");
printf("\n insira as coordenadas do lugar onde deseja jogar\n\n");
scanf("%d%d",&p1,&p2);
if (r[p1-1][p2-1]==0)
{j2[p1-1][p2-1]=2;
inserir(p1,p2,2);
r[p1-1][p2-1]=2;
c=1;
}
else
printf("\n Esse lugar ja ta preenchido!!! o PLAYER %d ja jogou ai \n\n",r[p1-1][p2-1]);
}while(c==0);
//representar(r);

ver=verificar(j2,2);
if(ver==1)
{
printf("\n O PLAYER 2 GANHOU!!!!!\n");
break;
}

ab=acabou(r);
if(ab==1)
{
printf("\n O jogo terminou Empatado!!!!!!!!!\n");
break;
}


}while(g!=1 || e!=1 );
getchar();
}


int acabou(int v[L][C])
{
int i=0,j=0;
for(i=0;i<L;i++)
for(j=0;j<C;j++)
{
if(v[i][j]==0)
return 0;
}
return 1;
}      


//void representar(int v[L][C])....

      
void inter()
{
      printf("\a\n JOGO DO GALO \n");
      printf("\n Tem este Painel de Jogo");
      printf("\n\n___|___|___\n");
      printf("___|___|___\n");
      printf("   |   |   \n\n");
      printf("As coordenadas estao distribuidas desde:\n[1,1]-canto inferior esquerdo\nAte\n[3,3]-canto superior direito\n");
      getchar();
}
      
int verificar (int v[L][C], int n)
{
    int i=0,j=0;
if ( v[0][0]==n && v[0][1]==n && v[0][2]==n)
return 1;
if ( v[1][0]==n && v[1][1]==n && v[1][2]==n)
return 1;
if ( v[2][0]==n && v[2][1]==n && v[2][2]==n)
return 1;
if ( v[0][0]==n && v[1][0]==n && v[2][0]==n)
return 1;
if ( v[0][1]==n && v[1][1]==n && v[2][1]==n)
return 1;
if ( v[0][2]==n && v[1][2]==n && v[2][2]==n)
return 1;
if ( v[0][0]==n && v[1][1]==n && v[2][2]==n)
return 1;
if ( v[0][2]==n && v[1][1]==n && v[2][0]==n)
return 1;                
                
getchar();   
}



void inserir (int p1,int p2, int j)
{if (p1==1 && p2==1)
{
      printf("\n\n___|___|___\n");
      printf("___|___|___\n");
      printf(" %d |   |   \n",j);}
if (p1==2 && p2==1)
{
      printf("\n\n___|___|___\n");
      printf("___|___|___\n");
      printf("   | %d |   \n",j);}
if (p1==3 && p2==1)
{
      printf("\n\n___|___|___\n");
      printf("___|___|___\n");
      printf("   |   | %d \n",j);}
if (p1==1 && p2==2)
{
      printf("\n\n___|___|___\n");
      printf("_%d_|___|___\n",j);
      printf("   |   |   \n");}
if (p1==2 && p2==2)
{
      printf("\n\n___|___|___\n");
      printf("___|_%d_|___\n",j);
      printf("   |   |   \n");}
if (p1==3 && p2==2)
{
      printf("\n\n___|___|___\n");
      printf("___|___|_%d_\n",j);
      printf("   |   |   \n");}
if (p1==1 && p2==3)
{
      printf("\n\n_%d_|___|___\n",j);
      printf("___|___|___\n");
      printf("   |   |   \n");}

if (p1==2 && p2==3)
{
      printf("\n\n___|_%d_|___\n",j);
      printf("___|___|___\n");
      printf("   |   |   \n");}
if (p1==3 && p2==3)
{
      printf("\n\n___|___|_%d_\n",j);
      printf("___|___|___\n");
      printf("   |   |   \n");}

     getchar();
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Actualmente essa opção está desactivada mas aconselho a formatares o código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Actualmente essa opção está desactivada mas aconselho a formatares o código.

formatar o código? como assim?

EDIT: se puserem isto a correr vão ver que tive alguns problemas na representação dos valores no output, se me poderem ajudar a aperfeiçoar isso....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para ver este programa a funcionar! Escolhemos no Visual C++

Criar Projecto e que categoria escolhemos?

CLR

Win32

Gereral

Obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já agora fica aqui o meu projecto do jogo do galo

// jogoGalo.cpp : main project file.

#include "stdafx.h"
#include <stdio.h>
#include <string.h>

using namespace System;


#define TAB 3
#define PECA1 'X'
#define PECA2 'O'


void imprimirTabuleiro(char tab[])
{
int i;

for(int i; i < TAB - 1; i++)
{
	printf("_%c_", tab[i * TAB]);

	for(int j = 1; j < TAB; j++)
		printf("|_%c_", tab[i * TAB + j]);

	printf("\n");
}

i = TAB - 1;
char c = (tab[i * TAB] != '_' ? tab[i * TAB] : ' ');
printf(" %c ", c);

for(int j = 1; j < TAB; j++)
{
	c = (tab[i * TAB + j] != '_' ? tab[i * TAB + j] : ' ');
	printf("| %c ", c);
}

printf("\n");
}


int main(char[] args)
{
char estado[TAB * TAB];
int validacao[TAB * 2 + 2];
int pos[2], vez, res, aux;

for(int i = 0; i < TAB * TAB; i++)
	estado[i] = '_';

for(int i = 0; i < 2 * TAB + 2; i++)
	validacao[i] = 0;


    for(int i = 0; i < TAB * TAB; i++)
{
	vez = i % 2 + 1;
	printf("É a vez do jogador %d\n", vez);

	while(true)
	{
		for(int i = 0; i < 2;)
		{
			printf("Indique a %s onde quer jogar [entre 0 e %d]: ", (i == 0 ? "linha" : "coluna"), TAB - 1);
			scanf("%d", &pos[i]);

			if(pos[i] > -1 && pos[i] < TAB)
			{
				i++;
				continue;
			}

			printf("%s inválida.", (i == 0 ? "Linha" : "Coluna"));
		}

		int index = pos[0] * TAB + pos[1];
		if(estado[index] == '_')
		{
			estado[index] = (vez == 1 ? PECA1 : PECA2);

			aux = (vez == 1 ? 1 : -1);
			validacao[pos[0]] += aux;
			validacao[TAB + pos[1]] += aux;
			if(pos[0] == pos[1]) validacao[2 * TAB] += aux;
			if(pos[0] + pos[1] == TAB - 1) validacao[2 * TAB + 1] += aux;

			break;
		}

		printf("A posição que seleccionou já está preenchida. Escolha outra.\n");
	}

	imprimirTabuleiro(estado);

	for(int i = 0; i < 2 * TAB + 2; i++)
	{
		if(validacao[i] == TAB)
		{
			printf("O jogador 1 ganhou!\n");
			scanf("%d", &aux);
			return 0;
		}
		if(validacao[i] == -TAB)
		{
			printf("O jogador 2 ganhou!\n");
			scanf("%d", &aux);
			return 0;
		}
	}
}

printf("O jogo terminou empatado");
scanf("%d", &res);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora