• Y15BeTa蜂鸣器唱歌程序-演奏版


    最优版,自由演奏你的音乐!

    每天进步一点点!

    2018-12-09最新版

    #include<bits/stdc++.h>
    #include<windows.h>
    using namespace std;
    
    int md[8]={0,262,294,330,349,392,440,494},
        mz[8]={0,523,587,659,698,784,880,988},
        mg[8]={0,1046,1175,1318,1397,1568,1760,1967};
    
    int tot=0;
    
    inline void gotoxy(int y,int x);
    
    inline void open();
    
    inline int pinglv(string s);
    
    inline void ywy_beep(string s);
    
    //inline void change_start_music();
    
    inline void gotoxy(int y,int x){  
        COORD pos;  
        pos.X=x;  
        pos.Y=y;  
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); 
    }  
    
    inline void ywy_beep(string s){
        if(s=="cls"){
            tot=0;
            system("cls");
            return;
        }
        else if(s[0]=='B'){//手动,半调及连长音暂时只能用此解决 
            string a;int b;
            cin>>a>>b;
            int p=pinglv(a);
            if(p!=0)Beep(p,b);
            else{
                int ia=0;
                for(int i=0;i<=a.size()-1;i++)ia=ia*10+int(a[i])-48;
                Beep(ia,b);
            }
        }
        else if(s=="rand"){
            printf("请输入持续时间(单位:秒)
    ");
            int ha;
            scanf("%d",&ha);
            ha*=5;
            while(ha--)Beep(abs((rand()+ha*ha)%1500),200);
        }
        else if(s[0]=='&'){//微调:换气或隔音 
            Sleep(50);
        }
        else if(s[0]=='0'){//休止符 
            Sleep(300);
        }
        else{
            int p=pinglv(s);
            if(p!=0){
                Beep(p,300);
            }
            else{
                cout<<"震惊*"<<++tot;
                for(int i=1;i<=tot;i++)cout<<'!';
                cout<<endl;
            }
        }
    }
    
    inline void open(){
        gotoxy(11,30);
        printf("欢迎进入演奏系统
    ");
        for(int i=1;i<=3*88889999;i++);
        gotoxy(24,0);
        Beep(mz[1],180);
        Beep(mz[2],190);
        Beep(mz[3],200);
        Beep(mz[4],210);
        Beep(mz[5],700);
        printf("加载中");
        for(int i=1;i<=70;i++){
            printf(">");
            Sleep(10);
        }
        system("cls");
        system("pause");
        printf("
    
    指引:  cls可以清除我的所有记忆:)
    
    祝旅途愉快!
    
    ");//
        system("pause");
    }
    
    inline int pinglv(string s){
        if(s[0]>='1'&&s[0]<='7'&&s.size()==1){//中音 
            int ha=int(s[0]-'0');
            return mz[ha];
        }
        else if(s[0]=='d'&&s[1]>='1'&&s[1]<='7'&&s.size()==2){//低音 
            int ha=int(s[1]-'0');
            return md[ha];
        }
        else if(s[0]=='g'&&s[1]>='1'&&s[1]<='7'&&s.size()==2){//高音 
            int ha=int(s[1]-'0');
            return mg[ha];
        }
        else return 0;
    }
    
    int main(){
        srand(time(0));
        open();
        while(1){
            string s;
            cin>>s;
            ywy_beep(s);
        }
    }

    升级说明:

    21:09 2018-11-06
    1.加快了"加载中"的速度
    2."手动模式"分两种格式:
        (1)B int int 前一个int表示频率,后一个int表示持续时间(单位:毫秒)
        (2)B string int 前一个string和正常模式下的输入相同,eg:1 d1 g1
                后一个int表示持续时间(单位:毫秒)
    3.对于"输入格式错误"的语句,升级后将不再输出a,而输出一句神奇的话(动手试试吧!)

    升级说明:

    17:09 2018-12-09 
    1.添加了"前奏音乐"2.优化了"函数"

    附送礼包:卡农

    B g3 1200
    B g2 1200
    B g1 1200
    B 7 1200
    B 6 1200
    B 5 1200
    B 6 1200
    B 7 1200
    B g1 1200
    B 7 1200
    B 6 1200
    B 5 1200
    B 4 1200
    B 3 1200
    B 4 1200
    B 2 1200
    B g1 300
    B 7 300
    B g1 300
    B 1 300
    B d7 300
    B 5 300
    B 2 300
    B 3 300
    B 1 300
    B g1 300
    B 7 300
    B 6 300
    B g7 300
    B g3 300
    B g5 300
    B g6 300
    B g4 300
    B g3 300
    B g2 300
    B g4 300
    B g4 300
    B g3 300
    B g1 300
    B 7 300
    B 6 300
    B 5 300
    B 4 300
    B 3 300
    B 2 300
    B 4 300
    B 3 300
    B 2 300
    B 1 300
    B 2 300
    B 3 300
    B 4 300
    B 5 300
    B 2 300
    B 5 300
    B 4 300
    B 3 300
    B 6 300
    B 5 300
    B 4 300
    B 5 300
    B 4 300
    B 3 300
    B 2 300
    B 1 300
    B d6 300
    B 6 300
    B 7 300
    B g1 300
    B 7 300
    B 6 300
    B 5 300
    B 4 300
    B 3 300
    B 2 300
    B 6 300
    B 5 300
    B 6 300
    B 5 300
    B 4 300
    B 3 600
    B g3 600
    B g2 1200
    B g1 1200
    B g2 1200
    B g1 600
    B g3 600
    B g2 600
    B g4 600
    B g5 300
    B g3 150
    B g4 150
    B g5 300
    B g3 150
    B g4 150
    B g5 150
    B 5 150
    B 6 150
    B 7 150
    B g1 150
    B g2 150
    B g3 150
    B g4 150
    B g3 300
    B g1 150
    B g2 150
    B g3 300
    B 3 150
    B 4 150
    B 5 150
    B 6 150
    B 5 150
    B 4 150
    B 5 150
    B 3 150
    B 4 150
    B 5 150
    B 4 300
    B 6 150
    B 5 150
    B 4 300
    B 3 150
    B 2 150
    B 3 150
    B 2 150
    B 1 150
    B 2 150
    B 3 150
    B 4 150
    B 5 150
    B 6 150
    B 4 300
    B 6 150
    B 5 150
    
    B 6 300
    B 7 150
    B g1 150
    
    B 5 150
    B 6 150
    B 7 150
    B g1 150
    
    B g2 150
    B g3 150
    B g4 150
    B g5 150
    
    
    B g3 300
    B g1 150
    B g2 150
    
    B g3 300
    B g2 150
    B g1 150
    
    B g2 150
    B 7 150
    B g1 150
    B g2 150
    
    B g3 150
    B g2 150
    B g1 150
    B 7 150
    
    B g1 300
    B 6 150
    B 7 150
    
    B g1 300
    B 1 150
    B 2 150
    
    B 3 150
    B 4 150
    B 3 150
    B 2 150
    
    B 3 150
    B g1 150
    B 7 150
    B g1 150
    
    B 6 300
    B g1 150
    B 7 150
    
    B 6 300
    B 5 150
    B 4 150
    
    B 5 150
    B 4 150
    B 3 150
    B 4 150
    
    B 5 150
    B 6 150
    B 7 150
    B 1 150
    
    B 6 300
    B g1 150
    B 7 150
    
    B g1 300
    B 7 150
    B 6 150
    
    B 7 150
    B g1 150
    B g2 150
    B g1 150
    
    B 7 150
    B g1 150
    B 6 150
    B 7 150
    
    B g3 300
    B 3 300
    B 4 300
    B 3 300
    
    B 2 300
    B g2 300
    B g3 300
    B g2 300
    
    B g1 300
    B 3 300
    B 1 300
    B 6 300
    
    B 5 300
    B d5 300
    B d4 300
    B d5 300
    
    B d6 300
    B 6 300
    B 7 300
    B 6 300
    
    B 7 300
    B d5 300
    B d4 300
    B d5 300
    
    B d6 300
    B 6 300
    B 5 300
    B 6 300
    
    B 7 300
    B 7 300
    B 6 300
    B 7 300
    
    B 1 300
    B g1 300
    B g2 300
    B g1 300
    
    B 7 300
    B d7 300
    B 1 300
    B d7 300
    
    B d6 300
    B 6 300
    B 5 300
    B 6 300
    
    B 7 300
    B d7 300
    B 3 300
    B 2 300
    
    B 1 300
    B g1 300
    B g2 300
    B g4 300
    
    B g3 300
    B 3 300
    B 5 300
    B g3 300
    
    B g1 300
    B g4 300
    B g3 300
    B g4 300
    
    B g2 300
    B 5 300
    B 4 300
    B 5 300
    
    B 3 300
    B g1 150
    B 7 150
    
    B g1 300
    B 3 300
    
    B 5 300
    B 5 150
    B 6 150
    
    B 7 300
    B 5 300
    
    B 3 300
    B g1 150
    B g2 150
    
    B g3 300
    B g1 300
    
    B g3 300
    B g3 150
    B g2 150
    
    B g1 300
    B 7 300
    
    B 6 300
    B 6 150
    B 5 150
    
    B 6 300
    B 7 300
    
    B g1 300
    B g3 150
    B g2 150
    
    B g1 300
    B g3 300
    View Code
  • 相关阅读:
    bzoj4554: [Tjoi2016&Heoi2016]游戏
    bzoj3166: [Heoi2013]Alo
    luogu3398 仓鼠找sugar
    bzoj3261: 最大异或和
    bzoj3446: [Usaco2014 Feb]Cow Decathlon
    BZOJ1742[Usaco2005 nov]Grazing on the Run 边跑边吃草
    bzoj2750: [HAOI2012]Road
    bzoj4448: [Scoi2015]情报传递
    bzoj2809: [Apio2012]dispatching
    bzoj 1452
  • 原文地址:https://www.cnblogs.com/Y15BeTa/p/FengMingQi__1.html
Copyright © 2020-2023  润新知