一架小钢琴——图形界面与发声技术的简单应用

转载 2005年03月03日 09:28:00
一架小钢琴——图形界面与发声技术的简单应用 发表日期:2004年7月17日 作者:林奕伟 已经有2975位读者读过此文 /* * Super Piano, Version 1.0 * Compiled by TCC.EXE * Coding Enviroment: Win-TC 1.72 * Written by Lin Yiwei,from ZJU * Date: 2004-7-17 */ #include #include #include #include #define closegr closegraph #define KEY_WIDTH 60 #define KEY_HEIGHT 280 #define s 8051 #define d 8292 #define f 8550 #define g 8807 #define h 9064 #define j 9322 #define k 9579 #define ESC 283 /*function's prototype*/ void initgr() { int gd=DETECT,gm=0; registerbgidriver(EGAVGA_driver);/*register BGI driver */ registerbgifont(triplex_font); /*register BGI font*/ registerbgifont(small_font); registerbgifont(sansserif_font); registerbgifont(gothic_font); initgraph(&gd,&gm,""); } /*initialize the graphic*/ void down(int x,int y) { setcolor(WHITE); setfillstyle(SOLID_FILL,WHITE); bar(x,y,x+KEY_WIDTH,y+KEY_HEIGHT-13); setcolor(DARKGRAY); setfillstyle(SOLID_FILL,DARKGRAY); bar(x,y+KEY_HEIGHT-13,x+KEY_WIDTH,y+KEY_HEIGHT); } /*the key being pressed*/ void up(int x,int y) { setcolor(WHITE); setfillstyle(SOLID_FILL,WHITE); bar(x,y,x+KEY_WIDTH,y+KEY_HEIGHT-20); setcolor(DARKGRAY); setfillstyle(SOLID_FILL,DARKGRAY); bar(x,y+KEY_HEIGHT-20,x+KEY_WIDTH,y+KEY_HEIGHT); } /*the key being release*/ void start() { int i=0; initgr(); /* initialize the BGI */ setbkcolor(LIGHTGRAY); /*set the background*/ settextstyle(4,0,5); setcolor(BLUE); outtextxy(170,40,"SUPER PIANO"); setcolor(RED); outtextxy(172,42,"SUPER PIANO"); setcolor(YELLOW); outtextxy(174,44,"SUPER PIANO"); setcolor(GREEN); outtextxy(176,46,"SUPER PIANO"); /*this is the title*/ for(i=0;i<7;i++) { up(100+i*(KEY_WIDTH+5),110); } /*the key*/ settextstyle(0,0,1); setcolor(LIGHTRED); outtextxy(175,420,"KEY:1-s,2-d,3-f,4-g,5-h,6-j,7-k,Quit-Esc"); setcolor(BLUE); outtextxy(215,440,"All Rights Reversed @ 2004-7"); } main() { int i=0; int key=0; start(); while(key!=ESC) { for(i=0;i<7;i++) { up(100+i*(KEY_WIDTH+5),110); } /*release the key first*/ key=bioskey(0); switch(key) { case s:down(100,110);sound(523);delay(3000);nosound();break; case d:down(165,110);sound(587);delay(3000);nosound();break; case f:down(230,110);sound(659);delay(3000);nosound();break; case g:down(295,110);sound(699);delay(3000);nosound();break; case h:down(360,110);sound(784);delay(3000);nosound();break; case j:down(425,110);sound(880);delay(3000);nosound();break; case k:down(490,110);sound(988);delay(3000);nosound();break; default:break; } } closegr(); } /*图形驱动和字体均注册(可生成完全独立的exe文件),因而要求有相应的图形驱动和字体连库*/

相关文章推荐

JAVA简单Swing图形界面应用示例

JAVA简单Swing图形界面应用示例

Java图形界面——绘图技术演示

package com.test.tank; import javax.swing.*; import java.awt.*; public class Test1 extends JFrame{...

babyos (八)—— 简单图形界面

注:以下代码为原创,若发现bug,万望指出,若有问题,欢迎交流,转载请指明出处。若能有助于一二访客,幸甚。 欢迎关注babyos 的成长历程和宝贝计划:https://github.com/guzh...

python——图形界面的简单实用 easygui

下载easygui的安装包到电脑,进入此路径C:\Python35\python.exe setup.py install这里要注意这个问题:我最开始python是安装在C:\Program File...

C语言的图形界面?——简单外挂程序

简单接触c语言图形界面后就想把之前的控制台外挂小程序变成图形界面,仅供娱乐,目前只完成了两个版本即年度版和中文版的阳光和金币修改,其他修改可自行搜索偏移地址,这里奉上一篇个人认为比较详细的ce寻找基址...

java图形界面UI设计——简单的计算器

java图形界面UI设计——简单的计算器 import javax.swing.*; import java.awt.*; import java.util.*; import java.lang....

【JAVA开发技术进阶】 Java实现运行任意目录下class中加了@MyTest的空参方法(实现图形界面)

说明: 因为上个代码,总是要输入完整的绝对路径,比较麻烦,于是,就写了这个小程序,直接进入文件对话框选择需要运行的class文件。 只需要提前输入完整的类名。 注意:加的MyTest...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)