comment
IRC Chat
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.

Sencillo PIANO

  • 0 Respuestas
  • 1616 Vistas

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

Desconectado Jhonjhon_123

  • *
  • Underc0der
  • Mensajes: 150
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Jhonjhon_123's Software In Developed
« en: Febrero 23, 2010, 07:35:59 pm »
Aqui les dejo un sencillo programa en C que simula un piano de 7 teclas coincidentes con el do, re, mi, fa, sol, la, si.

Para los sonidos empleo los beep del PC.

codigo:
Código: C
  1. #include <winbgim.h>
  2. #include <iostream>
  3. #include <math.h>
  4. #include <windows.h>
  5.  
  6. /* DEFINICION DE LAS TECLAS
  7.               NOMENCLATURA: TeclaColor -> ejemplo: TAZUL
  8.               SETFILLSTYLE: (tipo, color)
  9.               BAR (X inicial, Y inicial, X final, Y final
  10.               BEEP (frecuencia en Herzios, Duracion en Milisegundos*/
  11.              
  12. #define temp 500 //Duracion en milisegundos de las notas
  13. #define tneg 150 //longitud de las teclas negras
  14.  
  15. #define Si setfillstyle(1,BLANCO);bar(600,0,698,300);setfillstyle(1,NEGRO);bar(600,0,610,tneg);settextstyle(5,0,4);outtextxy(633,305,"si");//Beep(800,temp);
  16. #define La setfillstyle(1,BLANCO);bar(500,0,598,300);setfillstyle(1,NEGRO);bar(500,0,510,tneg);bar(588,0,598,tneg);settextstyle(5,0,4);outtextxy(530,305,"la");//Beep(704,temp);
  17. #define Sol setfillstyle(1,BLANCO);bar(400,0,498,300);setfillstyle(1,NEGRO);bar(488,0,498,tneg);bar(400,0,410,tneg);settextstyle(5,0,4);outtextxy(430,305,"sol");//Beep(660,temp);
  18. #define Fa setfillstyle(1,BLANCO);bar(300,0,398,300);setfillstyle(1,NEGRO);bar(388,0,398,tneg);bar(300,0,310,tneg);settextstyle(5,0,4);outtextxy(330,305,"Fa");//Beep(594,temp);
  19. #define Mi setfillstyle(1,BLANCO);bar(200,0,298,300);setfillstyle(1,NEGRO);bar(200,0,210,tneg);bar(288,0,298,tneg);settextstyle(5,0,4);outtextxy(230,305,"mi");//Beep(528,temp);
  20. #define Re setfillstyle(1,BLANCO);bar(100,0,198,300);setfillstyle(1,NEGRO);bar(188,0,198,tneg);bar(100,0,110,tneg);settextstyle(5,0,4);outtextxy(130,305,"re");//Beep(495,temp);
  21. #define Do setfillstyle(1,BLANCO);bar(0,0,98,300);setfillstyle(1,NEGRO);bar(88,0,98,tneg);settextstyle(5,0,4);outtextxy(30,305,"do");//Beep(420,temp);
  22.  
  23. /* DEFINICION DE LOS COLORES */
  24. #define AZUL 1
  25. #define VERDE 2
  26. #define ROJO 4
  27. #define MAGENTA 5
  28. #define MARRON 6
  29. #define GRIS 7
  30. #define VERDECLARO 10
  31. #define AMARILLO 14
  32. #define BLANCO 15
  33. #define NEGRO 0
  34.  
  35. /*Sonidos*/
  36. #define si Beep(800,temp);
  37. #define la Beep(704,temp);
  38. #define sol Beep(660,temp);
  39. #define fa Beep(594,temp);
  40. #define mi Beep(528,temp);
  41. #define re Beep(495,temp);
  42. #define doo Beep(450,temp);
  43.  
  44.  
  45. /* ############################################################################
  46.    FUNCIONES                                                                 */
  47.  
  48. void IniciarWinbgim(); // inicia la pantalla de la WINBGIM
  49. void Menu();
  50. void Inicio();
  51. void Juego();
  52. void Instrucciones();
  53. void Open();
  54. void Autor();
  55. void Bye();
  56.  
  57. /* ############################################################################
  58.    CUERPOS DE LAS FUNCIONES                                                  */
  59.  
  60. void IniciarWinbgim()
  61. {
  62.      initwindow(698,400); // abre la pantalla de la WINBGIM a x=698, y=600
  63.  }
  64.  
  65. void Menu()
  66. {
  67.      setfillstyle(1,NEGRO);bar(0,0,698,400);
  68.      setfillstyle(4,BLANCO);bar(0,0,698,100);
  69.      setfillstyle(5,BLANCO);bar(0,150,698,250);
  70.      setcolor(ROJO);
  71.      settextstyle(2,0,15);
  72.      outtextxy(20,100,"BepPiano");
  73.      setcolor(BLANCO);
  74.      settextstyle(1,0,1);
  75.      outtextxy(280,280,"1- Tocar"); // ascii 49
  76.      outtextxy(280,310,"2- Instrucciones"); // ascii 50
  77.      outtextxy(280,340,"3- Autor"); // ascii 51
  78.      int aux=0;
  79.      while (aux==0)
  80.      {
  81.      int menu=(int)No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  82.      //printf("%d",menu);
  83.      switch (menu)
  84.      {
  85.             case 49:
  86.                  Inicio();
  87.                  aux=1;
  88.             case 50:
  89.                  Instrucciones();
  90.                  aux=1;
  91.             case 51:
  92.                  Autor();
  93.                  aux=1;
  94.             case 27:
  95.                  Bye();
  96.                  aux=1;
  97.      }
  98.      }
  99.  }
  100.  
  101. void Open()
  102. {
  103.      // variables necesarias para el rectangulo blanco en apertura de la presentacion
  104.      int x1=359;
  105.      int y1=200;
  106.      int x2=359;
  107.      int y2=200;
  108.      while (x1>=0) //bucle para aumentar las coordenadas del rectangulo
  109.      {
  110.            setcolor(BLANCO);
  111.            rectangle(x1,y1,x2,y2);
  112.            x1--;
  113.            x2++;
  114.            y1--;
  115.            y2++;
  116.            delay (1);
  117.      }
  118.  }
  119. void Inicio()
  120. {
  121.      
  122.      // barrido negro para borrar pantalla y poner las teclas
  123.      int lx1=0;
  124.      int ly1=0;
  125.      int ly2=400;
  126.      while (lx1<=698)
  127.      {
  128.            setcolor(NEGRO);
  129.            line(lx1,ly1,lx1,ly2);
  130.            lx1++;
  131.            delay(1);
  132.            while(lx1==98)
  133.            {
  134.                          Do;
  135.                          doo;
  136.                          break;
  137.            }
  138.            while(lx1==198)
  139.            {
  140.                          Re;
  141.                          re;
  142.                          break;
  143.            }
  144.            while(lx1==298)
  145.            {
  146.                          Mi;
  147.                          mi;
  148.                          break;
  149.            }
  150.            while(lx1==398)
  151.            {
  152.                          Fa;
  153.                          fa;
  154.                          break;
  155.            }
  156.            while(lx1==498)
  157.            {
  158.                          Sol;
  159.                          sol;
  160.                          break;
  161.            }
  162.            while(lx1==598)
  163.            {
  164.                          La;
  165.                          la;
  166.                          break;
  167.            }
  168.            while(lx1==698)
  169.            {
  170.                          Si;
  171.                          si;
  172.                          break;
  173.            }
  174.      }
  175.      Juego();
  176.  }
  177.  
  178. void Juego()
  179. {
  180.      int melodia[99];
  181.      int c,t; // c es el total de teclas que puedes pulsar y t el tiempo que
  182.               //permanecen los textos de las notas en pantalla
  183.      t=200;
  184.      for (c=0; c<888; c++)
  185.      {
  186.      int tecla=(int)No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  187.      //printf("%d",tecla);
  188.      switch (tecla)
  189.             {
  190.             case 97: // tecla A nota DO
  191.                  setfillstyle(1,GRIS);bar(0,0,98,300);setfillstyle(1,NEGRO);bar(88,0,98,tneg);
  192.                  setcolor(BLANCO);
  193.                  settextstyle(5,0,4);
  194.                  outtextxy(40,320,"do");
  195.                  doo;
  196.                  delay(t);
  197.                  setfillstyle(1,BLANCO);bar(0,0,98,300);setfillstyle(1,NEGRO);bar(88,0,98,tneg);
  198.                  setcolor(NEGRO);
  199.                  outtextxy(40,320,"do");
  200.                  break;
  201.             case 115:
  202.                  setfillstyle(1,GRIS);bar(100,0,198,300);setfillstyle(1,NEGRO);bar(188,0,198,tneg);bar(100,0,110,tneg);
  203.                  setcolor(BLANCO);
  204.                  settextstyle(5,0,4);
  205.                  outtextxy(140,320,"re");
  206.                  re;
  207.                  delay(t);
  208.                  setfillstyle(1,BLANCO);bar(100,0,198,300);setfillstyle(1,NEGRO);bar(188,0,198,tneg);bar(100,0,110,tneg);
  209.                  setcolor(NEGRO);
  210.                  outtextxy(140,320,"re");
  211.                  break;
  212.             case 100:
  213.                  setfillstyle(1,GRIS);bar(200,0,298,300);setfillstyle(1,NEGRO);bar(200,0,210,tneg);bar(288,0,298,tneg);
  214.                  setcolor(BLANCO);
  215.                  settextstyle(5,0,4);
  216.                  outtextxy(240,320,"mi");
  217.                  mi;
  218.                  delay(t);
  219.                  setfillstyle(1,BLANCO);bar(200,0,298,300);setfillstyle(1,NEGRO);bar(200,0,210,tneg);bar(288,0,298,tneg);
  220.                  setcolor(NEGRO);
  221.                  outtextxy(240,320,"mi");
  222.                  break;
  223.             case 102:
  224.                  setfillstyle(1,GRIS);bar(300,0,398,300);setfillstyle(1,NEGRO);bar(388,0,398,tneg);bar(300,0,310,tneg);
  225.                  setcolor(BLANCO);
  226.                  settextstyle(5,0,4);
  227.                  outtextxy(340,320,"fa");
  228.                  fa;
  229.                  delay(t);
  230.                  setfillstyle(1,BLANCO);bar(300,0,398,300);setfillstyle(1,NEGRO);bar(388,0,398,tneg);bar(300,0,310,tneg);
  231.                  setcolor(NEGRO);
  232.                  outtextxy(340,320,"fa");
  233.                  break;
  234.             case 106:
  235.                  setfillstyle(1,GRIS);bar(400,0,498,300);setfillstyle(1,NEGRO);bar(488,0,498,tneg);bar(400,0,410,tneg);
  236.                  setcolor(BLANCO);
  237.                  settextstyle(5,0,4);
  238.                  outtextxy(440,320,"sol");
  239.                  sol;
  240.                  delay(t);
  241.                  setfillstyle(1,BLANCO);bar(400,0,498,300);setfillstyle(1,NEGRO);bar(488,0,498,tneg);bar(400,0,410,tneg);
  242.                  setcolor(NEGRO);
  243.                  outtextxy(440,320,"sol");
  244.                  break;
  245.             case 107:
  246.                  setfillstyle(1,GRIS);bar(500,0,598,300);setfillstyle(1,NEGRO);bar(500,0,510,tneg);bar(588,0,598,tneg);
  247.                  setcolor(BLANCO);
  248.                  settextstyle(5,0,4);
  249.                  outtextxy(540,320,"la");
  250.                  la;
  251.                  delay(t);
  252.                  setfillstyle(1,BLANCO);bar(500,0,598,300);setfillstyle(1,NEGRO);bar(500,0,510,tneg);bar(588,0,598,tneg);
  253.                  setcolor(NEGRO);
  254.                  outtextxy(540,320,"la");
  255.                  break;
  256.             case 108:
  257.                  setfillstyle(1,GRIS);bar(600,0,698,300);setfillstyle(1,NEGRO);bar(600,0,610,tneg);
  258.                  setcolor(BLANCO);
  259.                  settextstyle(5,0,4);
  260.                  outtextxy(640,320,"si");
  261.                  si;
  262.                  delay(t);
  263.                  setfillstyle(1,BLANCO);bar(600,0,698,300);setfillstyle(1,NEGRO);bar(600,0,610,tneg);
  264.                  setcolor(NEGRO);
  265.                  outtextxy(640,320,"si");
  266.                  break;
  267.             case 27:
  268.                  Bye();
  269.             }
  270.      }
  271. }
  272.  
  273. void Instrucciones()
  274. {
  275.      setfillstyle(1,NEGRO);bar(0,0,698,400);
  276.      setfillstyle(4,BLANCO);bar(0,0,698,100);
  277.      setfillstyle(5,BLANCO);bar(0,150,698,250);
  278.      setcolor(ROJO);
  279.      settextstyle(2,0,15);
  280.      outtextxy(20,100,"Instrucciones");
  281.      setcolor(BLANCO);
  282.      settextstyle(6,0,1);
  283.      outtextxy(10,280,"El BepPiano consta de 7 teclas correspondientes a las notas");
  284.      outtextxy(10,310,"do, re, mi, fa, sol, la, si. Para hacerlo sonar pulsa las teclas:");
  285.      outtextxy(10,340,"a=do, s=re, d=mi, f=fa, j=sol, k=la, l=si");
  286.      outtextxy(10,370,"La tecla Bloc Mayus a de estar desactivada (en minusculas).");
  287.      int menu=(int)No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  288.      Menu();
  289.  }
  290.  
  291. void Autor()
  292. {
  293.      setfillstyle(1,NEGRO);bar(0,0,698,400);
  294.      setfillstyle(4,BLANCO);bar(0,0,698,100);
  295.      setfillstyle(5,BLANCO);bar(0,150,698,250);
  296.      setcolor(ROJO);
  297.      settextstyle(2,0,15);
  298.      outtextxy(20,100,"Autor");
  299.      setcolor(BLANCO);
  300.      settextstyle(6,0,1);
  301.      outtextxy(10,280,"BepPiano.");
  302.      outtextxy(10,310,"Creado por Radon");
  303.      outtextxy(10,340,"Code en e-r00t");
  304.      int menua=(int)No tienes permisos para ver links. Registrate o Entra con tu cuenta();
  305.      Menu();
  306.  }
  307.  
  308. void Bye()
  309. {
  310.      Open();
  311.      setfillstyle(1,NEGRO);
  312.      bar(0,0,698,400);
  313.      settextstyle(6,0,1);
  314.      outtextxy(100,200,"Adios!!!.");
  315.      delay(800);
  316.      No tienes permisos para ver links. Registrate o Entra con tu cuenta(-1);
  317.  }
  318.  
  319. int main()
  320. {
  321.     IniciarWinbgim();
  322.     Menu();
  323.     return 0;
  324. }
  325.  
  326.  

esta compilado con el devc++

Autor: Radón
« Última modificación: Enero 25, 2015, 08:47:56 pm por Expermicid »
No tienes permisos para ver links. Registrate o Entra con tu cuenta

 

¿Te gustó el post? COMPARTILO!



[C] Sencillo Conversor de texto a hexadeciamal

Iniciado por Jhonjhon_123

Respuestas: 0
Vistas: 1240
Último mensaje Febrero 23, 2010, 07:42:00 pm
por Jhonjhon_123