コード例 #1
0
ファイル: main.c プロジェクト: abaquar/Capacitacao-C
/* Main ***********************************************************************/
int main(int argc, char** argv) {
    inicializaMapa(); //TODO: Excluir esta função e fazer a geração procedural dos mapas do jogo

	while(true){
		renderizaMapa();
		imprimeTela();
		esperaTecla();
	}
    return (EXIT_SUCCESS);
}
コード例 #2
0
ファイル: domino.c プロジェクト: Catanio/DataStruct-1
int jogando(){
  Node *temp=mesa;
  int auxI, auxII,primeiroNumero=temp->numberLeft, ultimoNumero,jogada, i;//joga = 1, pesca = 0;

  //Salva os dois números das extremidades da lista de dominós na mesa.
  while (temp!=NULL){
    ultimoNumero=temp->numberRight;
    temp=temp->right;
  }
  imprimeTela();
//esse loop verifica se existe uma peça compativel para a jogada, caso não, pesca e repete a verificação
  do {

    for(temp=playerHand; temp!=NULL; temp=temp->right) {
      if(temp->numberLeft == primeiroNumero || temp->numberRight == primeiroNumero || temp->numberLeft == ultimoNumero || temp->numberRight == ultimoNumero)
        break;
    }
    if(temp == NULL){
      playerHand=pescaDoMonte(playerHand);
          imprimeTela();
          printf("peça pescada por falta de jogadas possíveis!\n");
          return 1;
      }
      break;
  }while (1);

//esse loop pega a peça selecionada
  do{

    scanf("%d", &jogada);

    if(jogada > 0 && jogada <= contaLista(playerHand)){
      i=1;
      for (temp = playerHand; i<jogada; temp=temp->right)
        i++;

      if (temp->numberLeft == primeiroNumero || temp->numberRight == primeiroNumero || temp->numberLeft == ultimoNumero || temp->numberRight == ultimoNumero)
       break;
      else {
        imprimeTela();
        printf("Jogada inválida! Escolha outra peça: \n");
        continue;
      }
    }
    
    else continue;
    break;
  } while (1);

//essa parte faz os reaponteiramentos para dar um "pull" de uma lista pra outra.
  if (temp->left == NULL && temp->right == NULL){
    playerHand=NULL;
    temp->left=NULL;
    temp->right=NULL;
  }
  else if (temp->left == NULL ){
    playerHand=playerHand->right;
    playerHand->left = NULL;
    temp->right=NULL;
  }
  else if (temp->right==NULL) {
    temp->left->right=NULL;
    temp->left=NULL;
  }
  else {
    temp->left->right= temp->right;
    temp->right->left= temp->left;
    temp->left=NULL;
    temp->right=NULL;
  }
//falta excluir o nó da lista da mão
  do {
    printf("onde jogar?(1 - esquerda (%d); 2 - direita (%d)\n", primeiroNumero, ultimoNumero);
    scanf("%d", &jogada);
    if (jogada == 1) {
      if(temp->numberRight==primeiroNumero) {
        temp->right=mesa;
        mesa=temp;
        break;
      }
      else if (temp->numberLeft==primeiroNumero) {
        auxI=temp->numberLeft;
        auxII=temp->numberRight;
        temp->numberLeft=auxII;
        temp->numberRight=auxI;
        temp->right=mesa;
        mesa=temp;
        break;
      }
      else {
        printf("jogada invalida!\n");
        continue;
      }
    }
    else {
      Node *ultimo;
      for (ultimo=mesa; ultimo->right!=NULL; ultimo=ultimo->right);
      if (temp->numberLeft==ultimoNumero){
        ultimo->right=temp;
        temp->left=ultimo;
        break;
      }
      if (temp->numberRight==ultimoNumero) {
        auxI=temp->numberLeft;
        auxII=temp->numberRight;
        temp->numberLeft=auxII;
        temp->numberRight=auxI;
        ultimo->right=temp;
        temp->left=ultimo;
        break;
      }
      else {
        printf("jogada inválida!\n");
        continue;
      }
    }

  } while (1);
  return 1;
}