All pastes #352563 Raw Edit

Untitled

public text v1 · immutable
·published 2007-02-12 22:24 UTC
rendered paste body
//Headers stdio.h, stdlib.h, conio.h, curses.h
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <curses.h>




#define KEY_LEFT 0x78 //Tecla 'z'
#define KEY_RIGHT 0x7a //Tecla 'x'
#define TRUE 1 //Definicao TRUE como 1
#define __OK 0 //Defincao __OK como 0





// unsigned char __adress__lf = 0x7a; //Codigo ASCII('x'): Em Hexadecimal
// unsigned char __adress__rt = 0x78; //Codigo ASCII('z'): Em Hexadecimal




struct __MOV { //Estrutura para inicializar a funcao do mesmo
  
  unsigned int (*keyl)(char _left);
  unsigned int (*keyr)(char _right);

};


// struct __MOV *other;


int __incmt(unsigned int x) { //Funcao que incrementa
  
  return (x++);

}




int __dscmt(int x) { //Funcao que descrementa

  return (x--);

}




int left_mov(char *__left) { //Move para esquerda
  
  int _y;

  __left = (char *)malloc(sizeof(char));


    for(;;) {

      do {

	*(__left) = getch();

    if(*(__left) == KEY_LEFT) {
      
      gotoxy(10,20);
      printf("@");
      __dscmt(_y--);

    }else {

      gotoxy(10,20);
      printf("@");
      __incmt(_y++);

    }

      }while(TRUE);

  }

    free(__left);

    return __OK;

}




int right_mov(char *__right) { //Move para a direita

  int _y;

  __right = (char *)malloc(sizeof(char));

  for(;;) {

    do {

      *(__right) = getch();

    if(*(__right) == KEY_RIGHT) {

      gotoxy(10,20);
      printf("@");
      __incmt(_y++);

    }else {

      gotoxy(10,20);
      printf("@");
      __dscmt(_y--);

    }

    }while(TRUE);

  }

  free(__right);

  return __OK;

}




//void main(void) { }
int main(int argc, char *argv[]) {

 
  struct __MOV *mov = (struct __MOV *)malloc(sizeof(struct __MOV));

  
  mov.keyl = left_mov;
  mov.keyr = right_mov;

  
  do {


    mov.keyl(KEY_LEFT);
    mov.keyr(KEY_RIGHT);


  }while(TRUE);
  
  
  free(mov);

  return __OK;

}