第
Python实战之梦幻钢琴小游戏的实现
目录导语一、环境准备二、代码展示三、效果展示
导语
今天来给大家写一款界面化的(Tkinter)电子钢琴小程序。
音乐是声音的艺术,它通过人们的听觉,来传达思想情感、表现社会生活。但它与舞蹈、绘画不同的呈现形式不同,舞蹈是通过肢体语言,绘画是通过色彩和线条来体现艺术形象。而音乐不是一种具象的形态,它需要通过人们的内心去感受,去理解。
因此,在音乐的学习中,有很多抽象的概念对孩子来说非常难以理解,例如律动、放松、呼吸等。其实,这些看似只可意会不可言传的概念,以及一些手指技巧,都可以通过一些形象的比喻,向孩子们说明问题,这不仅能提高孩子们的学习兴趣,并且还能使这些知识在脑海里留下深刻印象。
今天这款电子钢琴小程序不仅可以学到小知识还能边玩儿边锻炼手速鸭~爱了没?
一、环境准备
1)运行环境
开发环境:Python3、Pycharm社区版、tkinter,部分自带的模块安装Python即可使用。
2)模块安装
第三方库的安装方式如下:
一般安装:pipinstall+模块名
镜像源安装:pipinstall-i/simple/+模块名
模块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了几个点的。
二、代码展示
1)导入模块
importwinsound
fromtkinterimport*
2)主程序
defdoone():
foriinrange(1,11):
i=i*500
winsound.Beep(i,500)
defsubmit():#读取乐谱并播放的函数
music=list(map(str,u.get()))#print(music)print(p.get())
order=[[131,147,165,175,196,220,247],[262,296,330,349,392,440,494],[523,587,659,698,784,880,988],[1047,1175,1319,1397,1568,1760,1976]]
match=[0,1,2,3,4,5,6,7,8,9]
char=[A,B,C,D]
n=1
time1=[0forxinrange(10,1000)]
order1=[0forxinrange(0,1000)]
order11=[0forxinrange(0,1000)]
orderm=[0forxinrange(0,1000)]
foriinrange(len(music)):
ifmusic[i]==/:
n=n+1
ifi==0:
ifmusic[i]==0andmusic[i+1]==.andmusic[i+2]==5:
time1[j]=0.5
j=j+1
whilet10:
ifmusic[i]==match[t]andmusic[i+3]==/:
time1[j]=t
j=j+1
t=t+1
else:
ifmusic[i]==0:
time1[j]=0.5
j=j+1
fortpinrange(1,9):
if(music[i]==match[tp]andmusic[i-1]==/):
time1[j]=tp
j=j+1
fortninrange(0,4):
ifmusic[i]==char[tn]:
order1[m]=tn
m=m+1
forttinrange(1,9):
ifmusic[i]==match[tt]and(music[i-1]==Aormusic[i-1]==Bormusic[i-1]==Cormusic[i-1]==D):
order11[k]=tt
k=k+1
print(n)
whileln:
time1[l]=time1[l]*int(p.get())
orderm[l]=order[order1[l]][order11[l]-1]
time1[l]=int(time1[l])#print(时间,字母,顺序,音律以此为:)print(time1[l]