键盘小钢琴[C语言][自制]
大一上最喜欢的一个作品 。刚开始只是一个能自动发出小星星音乐的小程序XD
效果图:
代码如下:
/*This is a small piano.这是一个小钢琴哦~*/
#include<stdio.h>
#include<conio.h> //非缓冲输入
#include<stdlib.h>
#include<Windows.h>
#pragma warning(disable:4996) //to use getche() in VS needs it
#define TICK 450
#define DOH 523
#define RAY 587
#define MI 659
#define FA 698
#define SOH 784
#define LA 880
#define TEE 980
#define DOHH 1060
#define RAYH 1175
#define MIH 1318
#define FAH 1397
#define SOHH 1568
#define LAH 1760
#define TEEH 1976void welcome(void);
void display(void);
void playmusic1(void); //play music with color
void playmusic2(void); //play music without color
void thanks(void);
void choose1(void); //choose a type
void choose2(void); //choose a song
void song1(void);
void song2(void);
char a;
int choice,choice2;int main(void)
{welcome();if (choice == 2){printf("Enter numbers to play music:('p' to quit)\n");while (1){playmusic1();if (a == 'p')break;}}else{printf("Please choose the song you want to play:\n""1.Castle In The Sky(天空之城)\n2.星の在り処(星之所在)\n");choose2();}thanks();return 0;
}void welcome(void)
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);printf("1-DOH 2-RAY 3-MI 数字1到7,字母Q\n""4-FA 5-SOH 6-LA WERTYU分别对应音阶\n""7-TEE Q-DOHH W-RAYH\n""E-MIH R-FAH T-SOH\n""Y-LAH U-TEEH\n");display();choose1();
}void display(void)
{int i;for (i = 0; i < 80; i++)printf("=");
}void choose1(void)
{printf("Choose a game type:\n1.play songs(弹奏模式)\t2.free play(自由模式)\n");while ((scanf("%d", &choice)) != 1){while (getchar() != '\n');printf("Please enter a number ~");}display();
}void choose2(void)
{while ((scanf("%d", &choice2)) != 1){while (getchar() != '\n')printf("Please enter a number ~");}display();if (choice2 == 1)song1();else song2();printf("Enter numbers to play music:('p' to quit)\n");while (1){playmusic2();if (a == 'p')break;}
}void playmusic1(void) //发声并设置颜色
{a = getch();switch (a){case '1':Beep(DOH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 30); printf("DOH "); break;case '2':Beep(RAY, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 60); printf("RAY "); break;case '3':Beep(MI, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 90); printf("MI "); break;case '4':Beep(FA, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 120); printf("FA "); break;case '5':Beep(SOH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 150); printf("SOH "); break;case '6':Beep(LA, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 180); printf("LA "); break;case '7':Beep(TEE, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 210); printf("TEE "); break;case 'q':Beep(DOHH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 30); printf("DOHH "); break;case 'w':Beep(RAYH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 60); printf("RAYH "); break;case 'e':Beep(MIH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 90); printf("MIH "); break;case 'r':Beep(FAH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 120); printf("FA "); break;case 't':Beep(SOHH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 150); printf("SOH "); break;case 'y':Beep(LAH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 180); printf("LA "); break;case 'u':Beep(TEEH, TICK); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 210); printf("TEE "); break;case '\n':break;default :break;}
}void playmusic2(void) //发声
{a = getch();switch (a){case '1':Beep(DOH, TICK); break;case '2':Beep(RAY, TICK); break;case '3':Beep(MI, TICK); break;case '4':Beep(FA, TICK); break;case '5':Beep(SOH, TICK); break;case '6':Beep(LA, TICK); break;case '7':Beep(TEE, TICK); break;case 'q':Beep(DOHH, TICK); break;case 'w':Beep(RAYH, TICK); break;case 'e':Beep(MIH, TICK); break;case 'r':Beep(FAH, TICK); break;case 't':Beep(SOHH, TICK); break;case 'y':Beep(LAH, TICK); break;case 'u':Beep(TEEH, TICK); break;case '\n':break;default:break;}
}void thanks(void)
{putchar('\n');SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);display();printf("Thanks for playing~~~\n");system("pause");
}void song1(void) //天空之城
{printf("67Q7QE7 3656Q5 3434Q3 \n");
}void song2(void) //星之所在
{printf("Q7QE7 656Q5 434Q75 67QEW Q7QE75 67QWE REWQ7E\n");
}
键盘小钢琴[C语言][自制]相关推荐
- C语言编译键盘钢琴,键盘小钢琴[C语言][自制]
大一上最喜欢的一个做品 .刚开始只是一个能自动发出小星星音乐的小程序XD小程序 效果图:ui 代码以下:spa /*This is a small piano.这是一个小钢琴哦~*/ #include ...
- C语言编译键盘钢琴,键盘小钢琴[C语言][自持]
键盘小钢琴[C语言][自制] 大一上最喜欢的一个作品 .刚开始只是一个能自动发出小星星音乐的小程序XD 效果图: 代码如下: /*This is a small piano.这是一个小钢琴哦~*/ # ...
- C语言自制简易钢琴块
C语言自制简易钢琴块 在网上无聊时找的如何用C语言编译器做钢琴块这个小游戏,没事可以自己看看,从中学到一些新东西. // Piano piece.cpp: 定义控制台应用程序的入口点. //autho ...
- C语言自制小游戏:三子棋(井字棋)智能下棋补充
目录 一.前期准备 二.逻辑与程序实现 1.连珠 ①横向连珠 ②纵向连珠 ③斜向连珠 ④函数完善 2.堵棋 ①横向堵棋 ②纵向堵棋 ③斜向堵棋 3.整理函数 ①整理AI_Computer函数 ②修改C ...
- 控制台推箱子小游戏C语言
自己开发的C语言控制台推箱子小游戏,基于二维数组实现,功能不多但是游戏整体较为完整,因为技术有限,所以代码暂未优化且整体显得较为臃肿,整体架构简单,代码全自主设计编写,仅作交流学习,还望大佬多多指点. ...
- 电子琴仿真c语言程序,矩阵键盘模拟电子琴C语言程序设计
原标题:矩阵键盘模拟电子琴C语言程序设计 //24c08地址为0xa0 #include #define uchar unsigned char unsigned char code table[]= ...
- Android UI设计之十一自定义ViewGroup,打造通用的关闭键盘小控件ImeObser
2019独角兽企业重金招聘Python工程师标准>>> 转载请注明出处:http://blog.csdn.net/llew2011/article/details/51598682 ...
- 微信小程序开发语言(微信小程序开发教程)详细步骤
微信小程序开发语言 开发微信小程序用什么语言 1.微信小程序开发所需要的语言比较特别,首先介绍一下需要使用到的文件类型大致分为:WXML(WeiXin Mark Language 微信标记语言).WX ...
- 微信小程序开发语言的选择
微信使用的开发语言和文件很「特殊」. 小程序所使用的程序文件类型大致分为以下几种: ①WXML(WeiXin Mark Language,微信标记语言) ②WXSS(WeiXin Style Shee ...
最新文章
- 一些简单网络命令用法
- python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem
- python关于二手房的课程论文_python之数据清理-以二手房信息为例
- mAP提升40%!YOLO3改进版—— Poly-YOLO:更快,更精确的检测和实例分割
- Java 面试之 JVM
- android适配器封装,Android万能适配器(一)封装ViewHolder
- Spring自动装配(autowire)篇
- 从零开始,CentOS6安装ghost博客
- Map-Reduce
- [C语言循环应用]--打印字符金字塔
- 2015 CCPC 这次,我为自己鼓掌
- 金蝶k3服务器系统要求,金蝶k3要求服务器配置
- 《那些年啊,那些事——一个程序员的奋斗史》——101
- js实现粘贴板js插件clipboard.js实现一键复制粘贴功能
- 软件测试常用术语总结
- 如何掌控自己的时间和生活(how to get control of your time and your life)读书笔记
- 在OpenWRT上运行Sakura Frp
- fitnesse 新手入门
- GNSS-INS组合导航:KF-GINS(二)
- 转]60个英文阅读网站强力推荐