Jump to content
Samuel Barroca

Jogo do galo em C

Recommended Posts

Samuel Barroca

Tenho que fazer o jogo do galo em c 

Tenho que seguir este programa. 

Alguém me ajuda? 

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LINHAS  3
#define COLUNAS 3

char matrix[COLUNAS][LINHAS];

void delay(unsigned int mseconds){
   clock_t goal=mseconds+clock();
   while(goal>clock());
}

void InitMatrix(void){
   char i,j;
   for(i=0;i<LINHAS;++i){
      for(j=0;j<COLUNAS;++j){
         matrix[j]=0;
      }
   }
}

void printMatrix(void){
   char i,j;
   for(i=0;i<LINHAS;++i){
      for(j=0;j<COLUNAS;++j){
         printf(" %d ",matrix[j]);
         if(j<(COLUNAS-1)) printf("|");
      }
      printf("\n");
      if(i<(LINHAS-1)){
         for(j=0;j<COLUNAS;++j){
            if(j<COLUNAS-1) printf("----");
            else printf("---");
         }
      }
      printf("\n");
   }
}

char makeMove(char position, char player){
   //devolve 0 caso tenha sido uma jogada inválida
   //devolve 1 caso tenha sido uma jogada válida
   //Valida a jogada e afecta a matriz com a jogada
}

char checkVictory(char player){
   //devolve 0 caso não exista vitória.
   //devolve 1 caso tenha vencido o player 1
   //devolve 2 caso tenha vencido o player 2
}

void main(void){
   char jogada;
   InitMatrix();
   printMatrix();
   printf("Insere a jogada -> ");
   scanf("%d",&jogada);
   printf("Jogaste %d",jogada);


}
 

Share this post


Link to post
Share on other sites
HappyHippyHippo

o que faz com que não consigas realizar o pedido ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
HappyHippyHippo

isso torna a ajuda complicada ...

tens de ser mais específico no que pretendes fazer em relação ao que te é apresentado


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
PsySc0rpi0n
3 hours ago, Samuel Barroca said:

@HappyHippyHippo fazer o jogo do galo player 1 contra player 2

Assim não vais lá. Mais vale ires ao Google, procurar um code feito e pronto...

Tens que tentar fazer alguma coisa. Pôr aqui o código que tentaste fazer, explicar o que estavas à espera que ele fizesse e o que aconteceu em vez do que estavas à espera que acontecesse.

Acho que só assim conseguirás mais ajuda.

Agora vir aqui e dizer "ah, preciso disto. Façam-me..." Esquece!


Kurt Cobain - Grunge misses you

Nissan GT-R - beast killer

Share this post


Link to post
Share on other sites
HappyHippyHippo

e qual é então a primeira função simples que pretendes fazer ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
HappyHippyHippo
4 hours ago, Samuel Barroca said:

@PsySc0rpi0n, eu preciso de ajuda para saber por onde pegar

pelo início ... eu diria o primeiro método no código que não está implementado ...

char makeMove(char position, char player){
   //devolve 0 caso tenha sido uma jogada inválida
   //devolve 1 caso tenha sido uma jogada válida
   //Valida a jogada e afecta a matriz com a jogada
}

 


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Samuel Barroca

@HappyHippyHippo, ,quando começar a programar na main o programa como é que eu vou invocar o make move?

O que tenho que fazer no make move? 

Share this post


Link to post
Share on other sites
HappyHippyHippo

como se invoca uma função ?

e o que fazer no makeMove ? o que estás descrito nos comentários


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Mythran

Homem tens de explicar a tua situação...

Estás na faculdade ou isso é um curso online? É a primeira vez que estás a ver código à frente?

O teu 1º passo deveria de ser perceber o que raio está a aconteçer aqui...

2º Nomenclatura - Troca o nome dessas funçoes para algo que te seja reconhecível
 

void InitMatrix(void) // DefineTableSize(void)
{
   char currentLine, currentColumn;
   for(currentLine = 0; currentLine < LINHAS; ++currentLine)
   {
      for(currentColumn = 0; currentColumn < COLUNAS; ++currentColumn)
      {
		//char matrix[COLUNAS][LINHAS];
        matrix[currentColumn] = 0; // tens uma array bi-dimensional mas ignoras esse facto aqui... Em c++ isso não é possível...
      }
   }
}

3º Aponta todos os passos para completar o teu objectivo num papel (Pseudo-código) e aí passas a perceber onde realmente precisas de ajuda

4º Em vez de pedires para te fazerem um jogo da treta pede antes um Zelda ou algo assim muito fixe...

5º Perceber que em programação 90% é reflecção e decifrar, programar só 10%

 

Citação

@HappyHippyHippo, ,quando começar a programar na main o programa como é que eu vou invocar o make move?

O que tenho que fazer no make move? 

Já aprendeste o while loop?

void main(void)
{
   char jogada;
   InitMatrix(); // chamada de função
   printMatrix(); // chamada de função
   printf("Insere a jogada -> ");
   scanf("%d",&jogada);
   printf("Jogaste %d",jogada);
}

Basicamente queres que o jogador te dê a posição onde por o X ou O, pegar nesse valor o quando fazes DisplayTable
  no teu caso (PrintMatrix) e substituir o caracter na posição pelo caracter do jogar
  depois de confirmares que a posição ainda está disponivel...
Depois tens de perceber que se meteres 10 pessoas a fazer a mesma coisa, que vais ter 10 códigos diferentes a fazer a mesma coisa
  e isto quer apenas dizer que todos pensamos de forma diferente. Eu pessoalmente faria muita coisa diferente do que ai tens.
Para te ajudar iria mudar muita coisa o que acabaria por nao te ajudar em nada e como tal essa é a razão de teres de ser mais explicito
  no que perguntas.

Tens a certeza que queres chamar o MakeMove no main?

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.