send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[C] Interprete de Brainfuck

  • 1 Respuestas
  • 1541 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mr.blood

  • *
  • Underc0der
  • Mensajes: 73
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: red_ink@hotmail.es
« en: Mayo 15, 2013, 04:00:05 pm »
Bueno, en un largo rato de aburrimiento he creado un interprete de Brainfuck. No se porque, pero me esta gustando este "lenguaje".

Código: C
  1. #include <stdio.h>
  2.  
  3. #define MAX 100
  4.  
  5. int array[MAX]={0}, i=0;
  6. FILE *archivo;
  7.  
  8. void interprete(int instruccion);
  9.  
  10. int main(int argc, char *argv[])
  11. {
  12.         int instruccion;
  13.         if(argc < 1)
  14.         {
  15.                 return 1;
  16.         }
  17.         archivo=You are not allowed to view links. Register or Login(argv[1], "r");
  18.         while((instruccion=You are not allowed to view links. Register or Login(archivo))!=EOF)
  19.         {
  20.                 interprete(instruccion);
  21.         }
  22.         You are not allowed to view links. Register or Login(archivo);
  23.         You are not allowed to view links. Register or Login('\n');
  24.         return 0;
  25. }
  26.  
  27. void interprete(int instruccion)
  28. {
  29.         int pos, inst_bucle;
  30.         switch(instruccion)
  31.         {
  32.                 case '.':
  33.                         You are not allowed to view links. Register or Login(array[i]);
  34.                         break;
  35.                 case ',':
  36.                         array[i]=You are not allowed to view links. Register or Login();
  37.                         break;
  38.                 case '>':
  39.                         i++;
  40.                         break;
  41.                 case '<':
  42.                         i--;
  43.                         break;
  44.                 case '+':
  45.                         array[i]++;
  46.                         break;
  47.                 case '-':
  48.                         array[i]--;
  49.                         break;
  50.                 case '[':
  51.                         pos=You are not allowed to view links. Register or Login(archivo);
  52.                         while(array[i]!=0)
  53.                         {
  54.                                 You are not allowed to view links. Register or Login(archivo, pos, SEEK_SET);
  55.                                 inst_bucle=You are not allowed to view links. Register or Login(archivo);
  56.                                 while(inst_bucle !=']' && inst_bucle != EOF)
  57.                                 {
  58.                                         interprete(inst_bucle);
  59.                                         inst_bucle=You are not allowed to view links. Register or Login(archivo);
  60.                                 }
  61.                         }
  62.         }
  63. }
  64.  

Sa1uDoS
« Última modificación: Febrero 08, 2014, 05:39:11 pm por Expermicid »

Desconectado i_ucv

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #1 en: Febrero 05, 2016, 03:10:27 pm »
Buen aporte lince, that works!

Agrega compatibilidad con más de un archivo y queda perfecto.  8)

 

¿Te gustó el post? COMPARTILO!