我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python实战之梦幻钢琴小游戏的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python实战之梦幻钢琴小游戏的实现

导语

今天来给大家写一款界面化的(Tkinter)电子钢琴小程序。

音乐是声音的艺术,它通过人们的听觉,来传达思想情感、表现社会生活。但它与舞蹈、绘画不同的呈现形式不同,舞蹈是通过肢体语言,绘画是通过色彩和线条来体现艺术形象。而音乐不是一种具象的形态,它需要通过人们的内心去感受,去理解。

因此,在音乐的学习中,有很多抽象的概念对孩子来说非常难以理解,例如律动、放松、呼吸等。其实,这些看似“只可意会不可言传”的概念,以及一些手指技巧,都可以通过一些形象的比喻,向孩子们说明问题,这不仅能提高孩子们的学习兴趣,并且还能使这些知识在脑海里留下深刻印象。

今天这款电子钢琴小程序不仅可以学到小知识还能边玩儿边锻炼手速鸭~爱了没?

一、环境准备

1)运行环境 

开发环境:Python3、Pycharm社区版、tkinter,部分自带的模块安装Python即可使用。 

2)模块安装 

第三方库的安装方式如下: 

一般安装:pip install +模块名  

镜像源安装:pip install -i https://pypi.douban.com/simple/+模块名 

模块安装问题可以详细的找我给大家讲一下的哈,之前其实也有的文章写了几个点的。 

二、代码展示

1)导入模块

import winsound

from tkinter import *

2)主程序

def doone():
	for i in range(1,11):
		i=i*500
		winsound.Beep(i,500)
def submit():#读取乐谱并播放的函数
	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
	j=0
	k=0
	m=0
	time1 = [0 for x in range(10,1000)]
	order1 = [0 for x in range(0,1000)]
	order11 = [0 for x in range(0,1000)]
	orderm = [0 for x in range(0,1000)]
	for i in range(len(music)):
		if music[i] == '/':
			n=n+1
		if i==0:
			if music[i] == '0' and music[i+1] == '.' and music[i+2] == '5':
				time1[j]=0.5
				j=j+1
			t=0
			while t<10:
				if music[i] == match[t] and music[i+3] == '/':
					time1[j]=t
					j=j+1
				t=t+1
		else:
			if music[i] == '0' :
				time1[j]=0.5
				j=j+1
			for tp in range(1,9):
				if (music[i] == match[tp] and music[i-1] == '/' ):
					time1[j]=tp
					j=j+1
			for tn in range(0,4):
				if music[i] == char[tn]  :
					order1[m]=tn
					m=m+1
			for tt in range(1,9):
				if music[i] == match[tt] and ( music[i-1] == 'A' or music[i-1] == 'B' or music[i-1] == 'C' or music[i-1] == 'D') :
					order11[k]=tt
					k=k+1
	print(n)
	l=0
	while l< n:
		time1[l]=time1[l]*int(p.get())
		orderm[l]=order[order1[l]][order11[l]-1]
		time1[l]=int(time1[l])#		print("时间,字母,顺序,音律以此为:")		print(time1[l],   order1[l],  order11[l],orderm[l])
		l=l+1
	l=0
	while l <n:#		print(orderm[l],time1[l])
		winsound.Beep(orderm[l],time1[l])
		l=l+1
#图形界面
root = Tk()
root.title("电子钢琴简易版")
frame = Frame(root)
frame.pack(padx=8, pady=8, ipadx=4)
lab1 = Label(frame, text="请输入乐谱:")
lab1.grid(row=0, column=0, padx=5, pady=5, sticky=W)
#u = StringVar()
#ent1 = Entry(frame, textvariable=u)
#ent1.grid(row=0, column=1, sticky='ew', columnspan=2)
lab2 = Label(frame, text="请输入每个音节代表的时间(单位ms):")
lab2.grid(row=1, column=0, padx=5, pady=5, sticky=W)
p = StringVar()
ent2 = Entry(frame, textvariable=p)
ent2.grid(row=1, column=1, sticky='ew', columnspan=2)
button = Button(frame, text="确认", command=submit, default='active')
button.grid(row=2, column=1)
button2 = Button(frame, text="退出", command=quit)
button2.grid(row=2, column=2, padx=5, pady=5)
button3 = Button(frame, text="第一题播放",command=doone)
button3.grid(row=2, column=0)

三、效果展示

1)运行界面

2)小程序截图

以上就是Python实战之梦幻钢琴小游戏的实现的详细内容,更多关于Python梦幻钢琴游戏的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python实战之梦幻钢琴小游戏的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python实战之梦幻钢琴小游戏的实现

这篇文章主要为大家详细介绍了如何利用Python语言编写一款界面化的(Tkinter)电子钢琴小程序,文中的示例代码讲解详细,感兴趣的可以了解一下
2023-02-24

Python如何实现梦幻钢琴小游戏

本篇内容主要讲解“Python如何实现梦幻钢琴小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现梦幻钢琴小游戏”吧!一、环境准备1)运行环境 开发环境:Python3、Py
2023-07-05

PythonPygame实战之实现经营类游戏梦想小镇代码版

作为一名模拟经营类游戏的发烧友,各种农场类、医院类、铁路类的游戏玩儿了很多年。今天用代码给大家打造一款梦想小镇游戏,希望大家喜欢啦
2022-12-27

Python实战之看图猜字游戏的实现

看图猜成语,是考验一个人的反应能力,也考验一个人的右脑思维。据说越聪明的人,这道题的完成率越高。本文就来用Python实现这一经典小游戏,需要的可以参考一下
2023-02-16

Python+Pygame实战之文字剧情游戏的实现

这篇文章主要为大家详细介绍了如何利用Python和Pygame实现两款文字剧情游戏——《巨龙之洞》和《太空矿工》,感兴趣的小伙伴可以了解一下
2022-12-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录