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

转载 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文件),因而要求有相应的图形驱动和字体连库*/

[NOI2010]超级钢琴 解题报告

超级钢琴 【问题描述】 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。 这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音...
  • TA201314
  • TA201314
  • 2015-01-17 14:09:16
  • 1600

NOI2010...BZOJ2006 超级钢琴 贪心

Description 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。 这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙...
  • u012915516
  • u012915516
  • 2015-10-05 16:33:48
  • 409

☆【区间求最值】【NOI2010】超级钢琴

Description 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。 这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙度...
  • Whjpji
  • Whjpji
  • 2012-03-20 20:52:19
  • 1283

java 游戏源码-----模拟钢琴

  • 2009年06月20日 10:15
  • 31KB
  • 下载

用C语言编写钢琴小程序

网上搜索键盘钢琴,可以搜索到不少小游戏,最常玩的就是Flash小游戏,26个按键的 后来想用C语言自己实现一个,没有界面~~控制台的。。 原理很简单,先在控制台中获取按键事件,在按键事件中,开一个...
  • jiratao
  • jiratao
  • 2013-08-12 09:32:58
  • 4429

键盘小钢琴[C语言][自制]

大一上最喜欢的一个作品 。刚开始只是一个能自动发出小星星音乐的小程序XD 效果图: 代码如下: /*This is a small piano.这是一个小钢琴哦~*/ #include ...
  • CatGlory
  • CatGlory
  • 2015-08-18 18:50:39
  • 1362

一天Android App[简单钢琴]开发 [李园7舍_404]

学习C语言未必有助于面向对象设计程序语言(C++,java等)的学习[ 思维方面,语言样子都是长得相似 ],学习C语言有助于程序中的逻辑设计。程序中的逻辑编写大多都是采用最开始编写C语言的方式。这有助...
  • misskissC
  • misskissC
  • 2013-07-23 20:17:30
  • 6978

jquery中的一个小TIPS:鼠标移动到连接时发出声音

这个TIPS其实很简单的,实现的效果是:当鼠标移动到链接上时,则可以发出声音, 其实很简单,代码如下: Click here for sound effect Hover here for sound...
  • jackyrongvip
  • jackyrongvip
  • 2013-07-01 16:27:09
  • 1138

汇编--计算机钢琴实现

计算机钢琴 一 钢琴功能   程序运行时,是PC成为一架可弹奏的“钢琴”,当按下数字键1~8,一次发出1,2,3,4,5,6,7,i八个音调。按ctrl+c退出程序。 二 实验原理   1 PC机扬声...
  • u013507368
  • u013507368
  • 2014-12-04 21:18:28
  • 2417
收藏助手
不良信息举报
您举报文章:一架小钢琴——图形界面与发声技术的简单应用
举报原因:
原因补充:

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