1. //
  2. //  SongArray.cpp
  3. //  
  4. //
  5. //  Created by Graham Gier on 10/9/12.
  6. //
  7. //
  8.  
  9. #include <Myro.h>
  10. #include <math.h>
  11. #include <stdio.h>
  12. #include <iostream>
  13. #include <cstdlib>
  14.  
  15. using namespace std;
  16. void fightsong();
  17. void eighteen();
  18. void SingPokemon();
  19. void storms();
  20. void Viva();
  21. void PlayNote(string note, string duration);
  22. int main();
  23.  
  24.  
  25. double a = 880;
  26. double b= 987.77;
  27. double c = 1046.5;
  28. double d = 1174.66;
  29. double e = 1318.51;
  30. double f = 1396.9;
  31. double g = 1567.98;
  32. double beat = (60.0/176);
  33.  
  34.  
  35. float D5 = 587.33;
  36. float Eb5 = 622.25;
  37. float E5 = 659.26;
  38. float F5 = 698.46;
  39. float Gb5 = 739.99;
  40. float G5 = 783.99;
  41. float Ab5 = 830.61;
  42. float A5 = 880.00;
  43. float Bb5 = 932.33;
  44. float B5 = 984.77;
  45. float C6 = 1046.50;
  46. float Db6 = 1108.73;
  47. float D6 = 1174.66;
  48. float Eb6 = 1244.51;
  49. float E6 = 1318.51;
  50. float F6 = 1396.91;
  51. float Gb6 = 1479.98;
  52. float G6 = 1567.98;
  53. float Ab6 = 1661.22;
  54. float A6 = 1760.00;
  55. float Bb6 = 1864.66;
  56. float B6 = 1975.53;
  57. float C7 = 2093.00;
  58. float Db7 = 2217.46;
  59. float D7 = 2349.32;
  60. float Eb7 = 2489.02;
  61. float E7 = 2637.02;
  62. float F7 = 2793.83;
  63.  
  64. float uBPM;
  65.  
  66. const int MAX = 5;
  67. const int MAX2 = 4;
  68.  
  69. void fightsong()
  70. {
  71.     robot.beep((1.0/3.0)*beat,1046.50);
  72.     robot.beep((2.0/3.0)*beat,0.0);
  73.     //1
  74.     robot.beep((2.0)*beat,1046.50);
  75.     robot.beep((2.0/3.0)*beat,0.0);
  76.     robot.beep((1.0/3.0)*beat,880.000);
  77.     robot.beep((0)*beat,0.0);
  78.     robot.beep((1.0/3.0)*beat,932.328);
  79.     robot.beep((1.0/3.0)*beat,0.0);
  80.     robot.beep((1.0/3.0)*beat,783.991);
  81.     robot.beep((0)*beat,0.0);
  82.     //2
  83.     robot.beep((2)*beat,880.000);
  84.     robot.beep((2.0/3.0)*beat,0.0);
  85.     robot.beep((1.0/3.0)*beat,698.456);
  86.     robot.beep((0)*beat,0.0);
  87.     robot.beep((1.0/3.0)*beat,659.255);
  88.     robot.beep((1.0/3.0)*beat,0.0);
  89.     robot.beep((1.0/3.0)*beat,587.330);
  90.     robot.beep((0)*beat,0.0);
  91.     //3
  92.     robot.beep((2)*beat,523.251);
  93.     robot.beep((2.0/3.0)*beat,0.0);
  94.     robot.beep((1.0/3.0)*beat,880.000);
  95.     robot.beep((0)*beat,0.0);
  96.     robot.beep((1.0/3.0)*beat,932.328);
  97.     robot.beep((1.0/3.0)*beat,0.0);
  98.     robot.beep((1.0/3.0)*beat,659.255);
  99.     robot.beep((0)*beat,0.0);
  100.     //4
  101.     robot.beep((2)*beat,698.456);
  102.     robot.beep((1)*beat,0.0);
  103.     robot.beep((1.0/3.0)*beat,1046.50);
  104.     robot.beep((2.0/3.0)*beat,0.0);
  105.     //5
  106.     robot.beep((2)*beat,1046.50);
  107.     robot.beep((2.0/3.0)*beat,0.0);
  108.     robot.beep((1.0/3.0)*beat,880.000);
  109.     robot.beep((0)*beat,0.0);
  110.     robot.beep((1.0/3.0)*beat,932.328);
  111.     robot.beep((1.0/3.0)*beat,0.0);
  112.     robot.beep((1.0/3.0)*beat,783.991);
  113.     robot.beep((0)*beat,0.0);
  114.     //6
  115.     robot.beep((2)*beat,880.000);
  116.     robot.beep((2.0/3.0)*beat,0.0);
  117.     robot.beep((1.0/3.0)*beat,698.456);
  118.     robot.beep((0)*beat,0.0);
  119.     robot.beep((1.0/3.0)*beat,659.255);
  120.     robot.beep((1.0/3.0)*beat,0.0);
  121.     robot.beep((1.0/3.0)*beat,587.330);
  122.     robot.beep((0)*beat,0.0);
  123.     //7
  124.     robot.beep((2)*beat,523.251);
  125.     robot.beep((2.0/3.0)*beat,0.0);
  126.     robot.beep((1.0/3.0)*beat,880.000);
  127.     robot.beep((0)*beat,0.0);
  128.     robot.beep((1.0/3.0)*beat,932.328);
  129.     robot.beep((1.0/3.0)*beat,0.0);
  130.     robot.beep((1.0/3.0)*beat,659.255);
  131.     robot.beep((0)*beat,0.0);
  132.     //8
  133.     robot.beep((1.0/3.0)*beat,698.456);
  134.     robot.beep((1.0/3.0)*beat,0.0);
  135.     robot.beep((1.0/3.0)*beat,523.251);
  136.     robot.beep((0)*beat,0.0);
  137.     robot.beep((1.0/3.0)*beat,698.456);
  138.     robot.beep((1.0/3.0)*beat,0.0);
  139.     robot.beep((1.0/3.0)*beat,880.000);
  140.     robot.beep((0)*beat,0.0);
  141.     robot.beep((1.0/3.0)*beat,1046.50);
  142.     robot.beep((2.0/3.0)*beat,0.0);
  143.     robot.beep((5.0/6.0)*beat,659.255);
  144.     robot.beep((1.0/6.0)*beat,0.0);
  145.     //9
  146.     robot.beep((1.0/3.0)*beat,698.456);
  147.     robot.beep((1.0/3.0)*beat,0.0);
  148.     robot.beep((1.0/3.0)*beat,523.251);
  149.     robot.beep((0)*beat,0.0);
  150.     robot.beep((1.0/3.0)*beat,698.456);
  151.     robot.beep((1.0/3.0)*beat,0.0);
  152.     robot.beep((1.0/3.0)*beat,880.000);
  153.     robot.beep((0)*beat,0.0);
  154.     robot.beep((1.0/3.0)*beat,1046.50);
  155.     robot.beep((2.0/3.0)*beat,0.0);
  156.     robot.beep((5.0/6.0)*beat,659.255);
  157.     robot.beep((1.0/6.0)*beat,0.0);
  158.     //10
  159.     robot.beep((2)*beat,698.456);
  160.     return;
  161. }
  162.  
  163. void eighteen()
  164. {
  165.     robot.beep(.2, 783);
  166.     robot.beep(.2, 1046.5);
  167.     robot.beep(.2, 1174.66);
  168.     robot.beep(.2, 1318.5);
  169.     robot.beep(.2, 1174.66);
  170.     robot.beep(.2, c);
  171.     robot.beep(.2, 1174.66);
  172.     robot.beep(.4, e);
  173.     robot.beep(.4, c);
  174.     robot.beep(.8, c);
  175.     wait(.2);
  176.     robot.beep(.2, 783);
  177.     robot.beep(.2, 1046.5);
  178.     robot.beep(.2, 1174.66);
  179.     robot.beep(.2, 1318.5);
  180.     robot.beep(.2, 1174.66);
  181.     robot.beep(.2, c);
  182.     robot.beep(.2, 1174.66);
  183.     robot.beep(.4, e);
  184.     robot.beep(.4, c);
  185.     robot.beep(.8, c);
  186.     wait(.2);
  187.     robot.beep(.2, a);
  188.     robot.beep(.2, d);
  189.     robot.beep(.2, e);
  190.     robot.beep(.2, d);
  191.     robot.beep(.2, a);
  192.     robot.beep(.2, 698.46);
  193.     robot.beep(.2, a);
  194.     robot.beep(.2, d);
  195.     robot.beep(.2, a);
  196.     robot.beep(.2, 698.46);
  197.     robot.beep(.2, a);
  198.     robot.beep(.8,d);
  199.     wait(.2);
  200.     robot.beep(.2,783.99);
  201.     robot.beep(.2, c);
  202.     robot.beep(.2, d);
  203.     robot.beep(.2, e);
  204.     robot.beep(.2, d);
  205.     robot.beep(.2, c);
  206.     robot.beep(.2, d);
  207.     robot.beep(.4, e);
  208.     robot.beep(.4, c);
  209.     robot.beep(.8, c);
  210.     wait(.2);
  211.     robot.beep(.2, 783);
  212.     robot.beep(.2, 1046.5);
  213.     robot.beep(.2, 1174.66);
  214.     robot.beep(.2, 1318.5);
  215.     robot.beep(.2, 1174.66);
  216.     robot.beep(.2, c);
  217.     robot.beep(.2, 1174.66);
  218.     robot.beep(.4, e);
  219.     robot.beep(.4, c);
  220.     robot.beep(.8, c);
  221.     wait(.2);
  222.     robot.beep(.133333, a);
  223.     robot.beep(.133333, a);
  224.     robot.beep(.133333, a);
  225.     robot.beep(.4, c);
  226.     robot.beep(.4, a);
  227.     wait(.4);
  228.     robot.beep(.133333, a);robot.beep(.133333, a);robot.beep(.133333, a);
  229.     robot.beep(.4, b);
  230.     robot.beep(.4, 783.99);
  231.     wait(.4);
  232.     robot.beep(.133333, a);robot.beep(.133333, a);robot.beep(.133333, a);
  233.     robot.beep(.4, 932.33);
  234.     robot.beep(.4, a);
  235.     robot.beep(.4, c);
  236.     robot.beep(.4, b);
  237.     robot.beep(.4, d);
  238.     robot.beep(.4, c);
  239.     robot.beep(.2666666, g);
  240.     robot.beep(.2666666, 1479.98);
  241.     robot.beep(.2666666, f);
  242.     robot.beep(.2666666,e);
  243.     robot.beep(.2666666, 1244.51);
  244.     robot.beep(.2666666,d);
  245.     robot.beep(.2666666, 1108.73);
  246.     robot.beep(.2666666, c);
  247.     robot.beep(.2666666, b);
  248.     robot.beep(.2666666, 932.33);
  249.     robot.beep(.2666666, a);
  250.     robot.beep(.2666666, 830.61);
  251.     robot.beep(.2666666, 783.99);
  252.     wait(.4);
  253.     robot.beep(.4, 830.61);
  254.     wait(.4);
  255.     robot.beep(.4, a);
  256.     wait(.4);
  257.     robot.beep(.4, b);
  258.     wait(.4);
  259.     robot.beep(.2, c);
  260.     robot.beep(.2, 783.99);
  261.     robot.beep(.2, c);
  262.     robot.beep(.2, d);
  263.     robot.beep(.2, e);
  264.     robot.beep(.2, d);
  265.     robot.beep(.2, c);
  266.     robot.beep(.2, d);
  267.     robot.beep(.4, e);
  268.     wait(.4);
  269.     robot.beep(.4, e);
  270.     robot.beep(.6, c);
  271.     return;
  272. }
  273.  
  274. void PlayNote(string note, string duration)
  275. {
  276.     double freq;
  277.     double time;
  278.    
  279.     // freq
  280.     if (note == "G5")
  281.     {
  282.         freq = 783.99;
  283.     }
  284.     else if (note == "B5")
  285.     {
  286.         freq = 987.77;
  287.     }
  288.     else if (note == "C6")
  289.     {
  290.         freq = 1046.50;
  291.     }
  292.     else if (note == "D6")
  293.     {
  294.         freq = 1174.66;
  295.     }
  296.     else if (note == "D#6")
  297.     {
  298.         freq = 1244.51;
  299.     }
  300.     else if (note == "E6")
  301.     {
  302.         freq = 1318.51;
  303.     }
  304.     else if (note == "F6")
  305.     {
  306.         freq = 1396.91;
  307.     }
  308.     else if (note == "G6")
  309.     {
  310.         freq = 1567.98;
  311.     }
  312.     else if (note == "A6")
  313.     {
  314.         freq = 1760.00;
  315.     }
  316.     else if (note == "A#6")
  317.     {
  318.         freq = 1864.66;
  319.     }
  320.     else if (note == "B6")
  321.     {
  322.         freq = 1975.53;
  323.     }
  324.     else if (note == "C7")
  325.     {
  326.         freq = 2093.00;
  327.     }
  328.     else if (note == "C#7")
  329.     {
  330.         freq = 2217.46;
  331.     }
  332.     else if (note == "D7")
  333.     {
  334.         freq = 2349.32;
  335.     }
  336.     else if (note == "Rest")
  337.     {
  338.         freq = 0.0;
  339.     }
  340.    
  341.     // time
  342.     if (duration == "1/16")
  343.     {
  344.         time = 0.1;
  345.     }
  346.     else if (duration == "1/8")
  347.     {
  348.         time = 0.2;
  349.     }
  350.     else if (duration == "1/4")
  351.     {
  352.         time = 0.4;
  353.     }
  354.     else if (duration == "3/8")
  355.     {
  356.         time = 0.6;
  357.     }
  358.     else if (duration == "1/2")
  359.     {
  360.         time = 0.8;
  361.     }
  362.     else if (duration == "5/8")
  363.     {
  364.         time = 1.0;
  365.     }
  366.     else if (duration == "3/4")
  367.     {
  368.         time = 1.2;
  369.     }
  370.     else if (duration == "1")
  371.     {
  372.         time = 1.6;
  373.     }
  374.     else if (duration == "2")
  375.     {
  376.         time = 3.2;
  377.     }
  378.    
  379.     robot.beep(time, freq);
  380. }
  381.  
  382. void SingPokemon()
  383. {
  384.     PlayNote("G5", "3/8");
  385.     PlayNote("B5", "1/16");
  386.     PlayNote("D6", "1");
  387.     PlayNote("F6", "3/8");
  388.     PlayNote("E6", "1/16");
  389.     PlayNote("D#6", "1/16");
  390.     PlayNote("D6", "1");
  391.     PlayNote("Rest", "1");
  392.    
  393.     PlayNote("G5", "3/8");
  394.     PlayNote("B5", "1/16");
  395.     PlayNote("D6", "1");
  396.     PlayNote("F6", "1/4");
  397.     PlayNote("E6", "1/8");
  398.     PlayNote("F6", "1/8");
  399.     PlayNote("G6", "3/8");
  400.     PlayNote("A6", "1/4");
  401.     PlayNote("G6", "1");
  402.     PlayNote("Rest", "1");
  403.     return;
  404. }
  405.  
  406.  
  407. void Viva()
  408. {
  409.     for(int i = 0; i < 2; i++)
  410.     {
  411.        
  412.         robot.beep(0.3,698.46);
  413.         robot.beep(0.3,698.46);
  414.         robot.beep(0.2,698.46);
  415.         robot.beep(0.2,659.26);
  416.         robot.beep(0.2,698.46);
  417.         robot.beep(0.5,659.26);
  418.         robot.beep(0.2,698.46);
  419.         robot.beep(0.3,493.88);
  420.         robot.beep(1,554.37);
  421.         wait(1);
  422.        
  423.         robot.beep(0.3,659.26);
  424.         robot.beep(0.3,659.26);
  425.         robot.beep(0.2,659.26);
  426.         robot.beep(0.2,493.88);
  427.         robot.beep(0.2,659.26);
  428.         robot.beep(0.5,493.88);
  429.         robot.beep(0.2,369.99);
  430.         robot.beep(0.3,415.30);
  431.         wait(1);
  432.     }
  433.    
  434.     robot.beep(0.3,698.46);
  435.     robot.beep(0.3,698.46);
  436.     robot.beep(0.2,698.46);
  437.     robot.beep(0.2,659.26);
  438.     robot.beep(0.5,783.99);
  439.     robot.beep(0.2,783.99);
  440.     robot.beep(0.2,783.99);
  441.     robot.beep(0.5,783.99);
  442.     wait(1);
  443.    
  444.     robot.beep(0.3,659.26);
  445.     robot.beep(0.3,659.26);
  446.     robot.beep(0.3,659.26);
  447.     robot.beep(0.2,587.33);
  448.     robot.beep(0.2,554.37);
  449.     robot.beep(0.5,554.37);
  450.     wait(1);
  451.     robot.beep(0.2,659.26);
  452.     robot.beep(0.3,554.37);
  453.     robot.beep(0.3,554.37);
  454.     robot.beep(0.5,554.37);
  455.     robot.beep(0.2,587.33);
  456.     robot.beep(1,493.88);
  457.     wait(1);
  458.     robot.beep(0.2,369.99);
  459.     robot.beep(0.2,493.88);
  460.     robot.beep(0.2,440.00);
  461.     robot.beep(0.2,369.99);
  462.     robot.beep(0.5,369.99);
  463.     robot.beep(0.5,493.88);
  464.     robot.beep(0.2,369.99);
  465.     robot.beep(1,440.00);
  466.     wait(5);
  467.     return;
  468. }
  469.  
  470. void storms()
  471. {
  472.     float qNote = 60/uBPM;
  473.     float eNote = 30/uBPM;
  474.     float hNote = 120/uBPM;
  475.     float dqNote = 180/uBPM;
  476.     wait(2); //Begin song of storms
  477.     robot.beep(eNote, D6);//Measure 1
  478.     robot.beep(eNote, F6);
  479.     robot.beep(hNote, D7);
  480.     robot.beep(eNote, D6);
  481.     robot.beep(eNote, F6);
  482.     robot.beep(hNote, D7);
  483.     robot.beep(qNote, E7);
  484.     wait(eNote);
  485.     robot.beep(eNote, F7);
  486.     robot.beep(eNote, E7);
  487.     robot.beep(eNote, F7);
  488.     robot.beep(eNote, E7);
  489.     robot.beep(eNote, C7);
  490.     robot.beep(hNote, A6);//end of line 3
  491.     robot.beep(qNote, A6);
  492.     robot.beep(qNote, D6);
  493.     robot.beep(eNote, F6);
  494.     robot.beep(eNote, G6);
  495.     robot.beep(dqNote, A6);
  496.     robot.beep(qNote, A6);
  497.     robot.beep(qNote, D6);
  498.     robot.beep(eNote, F6);
  499.     robot.beep(eNote, G6);
  500.     robot.beep(dqNote, E6);//first ending
  501.    
  502.     robot.beep(eNote, D6);//Measure 1, second repeat
  503.     robot.beep(eNote, F6);
  504.     robot.beep(hNote, D7);
  505.     robot.beep(eNote, D6);
  506.     robot.beep(eNote, F6);
  507.     robot.beep(hNote, D7);
  508.     robot.beep(qNote, E7);
  509.     wait(eNote);
  510.     robot.beep(eNote, F7);
  511.     robot.beep(eNote, E7);
  512.     robot.beep(eNote, F7);
  513.     robot.beep(eNote, E7);
  514.     robot.beep(eNote, C7);
  515.     robot.beep(hNote, A6);//end of line 3, second repeat
  516.     robot.beep(qNote, A6);
  517.     robot.beep(qNote, D6);
  518.     robot.beep(eNote, F6);
  519.     robot.beep(eNote, G6);
  520.     robot.beep(hNote, A6);
  521.     robot.beep(qNote, A6);
  522.     robot.beep(dqNote, D6);
  523.     wait(dqNote*3);       //end of Section 1, Rehearsal B
  524.    
  525.     robot.beep(eNote, D5);//Rehearsal C
  526.     robot.beep(eNote, F5);
  527.     robot.beep(hNote, D6);
  528.     robot.beep(eNote, D5);
  529.     robot.beep(eNote, F5);
  530.     robot.beep(hNote, D6);
  531.     robot.beep(qNote, E6);
  532.     wait(eNote);
  533.     robot.beep(eNote, F6);
  534.     robot.beep(eNote, E6);
  535.     robot.beep(eNote, F6);
  536.     robot.beep(eNote, E6);
  537.     robot.beep(eNote, C6);
  538.     robot.beep(hNote, A5);//end of line 3, second page
  539.     robot.beep(qNote, A5);
  540.     robot.beep(qNote, D5);
  541.     robot.beep(eNote, F5);
  542.     robot.beep(eNote, G5);
  543.     robot.beep(dqNote, A5);
  544.     robot.beep(qNote, A5);
  545.     robot.beep(qNote, D5);
  546.     robot.beep(eNote, F5);
  547.     robot.beep(eNote, G5);
  548.     robot.beep(dqNote, E5);//first ending, second page
  549.    
  550.     robot.beep(eNote, D5);//Rehearsal C, second repeat
  551.     robot.beep(eNote, F5);
  552.     robot.beep(hNote, D6);
  553.     robot.beep(eNote, D5);
  554.     robot.beep(eNote, F5);
  555.     robot.beep(hNote, D6);
  556.     robot.beep(qNote, E6);
  557.     wait(eNote);
  558.     robot.beep(eNote, F6);
  559.     robot.beep(eNote, E6);
  560.     robot.beep(eNote, F6);
  561.     robot.beep(eNote, E6);
  562.     robot.beep(eNote, C6);
  563.     robot.beep(hNote, A5);//end of line 3, second repeat, second page
  564.     robot.beep(qNote, A5);
  565.     robot.beep(qNote, D5);
  566.     robot.beep(eNote, F5);
  567.     robot.beep(eNote, G5);
  568.     robot.beep(hNote, A5);
  569.     robot.beep(qNote, A5);
  570.     robot.beep(dqNote, D5);
  571.     wait(2);
  572.     return;
  573. }
  574.  
  575. void stickman()
  576. {
  577.     //legs
  578.     robot.forward(1, 1);
  579.     robot.turnRight(1, 1);
  580.     robot.forward(1, 1);
  581.     robot.turnLeft(1, 1.55);
  582.     robot.forward(1, 1);
  583.     robot.turnRight(1, .3);
  584.     //body
  585.     robot.forward(1, 1.25);
  586.     //arms
  587.     robot.turnRight(1, 1);
  588.     robot.forward(1,.7);
  589.     robot.turnLeft(1, 1.55);
  590.     robot.forward(1,.7);
  591.     robot.turnRight(1, .55);
  592.     robot.turnLeft(1,1);
  593.     robot.forward(1,.7);
  594.     robot.turnRight(1, 1.55);
  595.     robot.forward(1,.7);
  596.     //head
  597.     robot.motors(-.5, 1);
  598.     wait(4);
  599.     robot.motors(0,0);
  600.     return;
  601. }
  602.  
  603. void heart()
  604. {
  605.     connect("/dev/rfcomm0");
  606.     robot.motors(1.0, 1.0);
  607.     wait(1);
  608.     robot.motors(0, 1.0);
  609.     wait(3.0);
  610.     robot.motors(1.0, -1.0);
  611.     wait(0.8);
  612.     robot.motors(0, 1.0);
  613.     wait(3.2);
  614.     robot.motors(1.0, 1.0);
  615.     wait(1.1);
  616.     cout << "Disconnecting" << endl;
  617.     disconnect();
  618.     return;
  619. }
  620.  
  621. void DrawPokeball()
  622. {
  623.     cout << "Moving\n";
  624.     robot.motors(1.0/7.0, 1);
  625.     wait(7.0*3.14159/3.0);
  626.     robot.turnLeft(1, 0.75);
  627.     robot.forward(1, 0.4);
  628.     robot.turnRight(1, 0.75);
  629.     robot.motors(-.5, 1);
  630.     wait(2.0*3.14159);
  631.     robot.turnRight(1, 0.75);
  632.     robot.forward(1, 0.4);
  633.     robot.stop();
  634.     return;
  635. }
  636.  
  637. void randomdraw()
  638. {
  639.     for(int i=0; i<20; i++)
  640.     {
  641.         robot.forward(rand());
  642.         robot.turnRight((double) rand());
  643.         robot.backward(rand());
  644.     }
  645. }
  646.  
  647.  
  648. int main()
  649. {
  650.     srand (time(NULL));
  651.     connect("/dev/tty.Fluke2-0221-Fluke2");
  652.     int playlist[MAX];
  653.     int drawlist[MAX2];
  654.    
  655.     for(int i =0; i<MAX; i++)
  656.     {
  657.     cout << "Choose a song. 0= fight song, 1= 1812 overture, 2 = pokemon, 3= viva la vida, 4 = song of storms" << endl;
  658.     cin >> playlist[i];
  659.     }
  660.    
  661.     for(int i=0; i<MAX; i++)
  662.     {
  663.         cout << "Song " << i << " is:";
  664.         if (playlist[i] == 0) cout<< "The Trojan Fight Song"<<endl;
  665.         else if (playlist[i] == 1) cout<< "The 1812 Overture"<<endl;
  666.         else if (playlist[i] == 2) cout<<"The Pokémon Fight Song"<<endl;
  667.         else if (playlist[i] == 3) cout<<"Viva la Vida"<<endl;
  668.         else if (playlist[i] == 4) cout<<"The Song of Storms"<<endl;
  669.         else cout << "invalid choice"<< endl;
  670.     }
  671.    
  672.     for( int i = 0; i<MAX; i++)
  673.     {
  674.         if (playlist[i] == 0) fightsong();
  675.         if (playlist[i] == 1) eighteen();
  676.         if (playlist[i] == 2) SingPokemon();
  677.         if (playlist[i] == 3) Viva();
  678.         if (playlist[i] == 4) storms();
  679.     }
  680.    
  681.     for (int i = 0; i<MAX2; i++)
  682.     {
  683.         cout << "Choose a drawing. 0= Stick figure, 1 = heart, 2 = pokéball 3= random"<<endl;
  684.         cin>>drawlist[i];
  685.     }
  686.    
  687.     for(int i = 0; i<MAX2; i++)
  688.     {
  689.         cout << "Drawing " << i << " is:";
  690.         if (drawlist[i] == 0) cout<<"A stick figure"<<endl;
  691.         else if (drawlist[i] == 1) cout <<"A heart"<<endl;
  692.         else if (drawlist[i] == 2) cout <<"A Pokéball"<<endl;
  693.         else if (drawlist[i] == 3) cout <<"Random"<<endl;
  694.         else cout<<"invalid"<<endl;
  695.     }
  696.    
  697.     for (int i =0; i<MAX2; i++)
  698.     {
  699.     switch (drawlist[i])
  700.         {
  701.     case 0:stickman();
  702.         break;
  703.     case 1: heart();
  704.         break;
  705.     case 2: DrawPokeball();
  706.         break;
  707.     case 3: randomdraw();
  708.         break;
  709.     default: cout<<"invalid"<<endl;
  710.         break;
  711.         }
  712.        
  713.     }
  714.    
  715.     disconnect();
  716.     return 0;
  717.    
  718. }