Python实验:关灯游戏

文章目录

  • 前言
  • 一、设计表
  • 二、关键代码
  • 三、运行结果
    • 小地图,容易难度:
    • 中地图,中等难度:
    • 大地图,困难难度:
  • 四、完整代码链接
  • 总结


前言

这是一个Python实验作业,内容如下:

题目要求:请完成《关灯游戏》,并完成以下扩展内容:

扩展内容:

  1. 请设计并实现界面功能,允许玩家选择初始地图的大小,分别为:小(5x5),中(8x8),大(12x10),玩家选择之后立即刷新窗口界面并重设地图

  2. 请设计并实现界面功能,允许玩家选择游戏难度,分别为:
    容易:一开始有20%的格子状态为翻转状态
    中等:一开始有40%的格子状态为翻转状态
    困难:一开始有60%的格子状态为翻转状态

  3. 游戏开始之前,提示玩家输入唯一的用户名,用于保留该玩家的闯关记录

  4. 按照玩家选择的地图大小和难度开始游戏,游戏过程中记录玩家闯关的总时间以及翻转次数(即开关灯的次数)

  5. 玩家通关成功后,保存相关信息到数据库,表结构可以自定,但应当至少包含以下信息:

  • 玩家选择的地图大小
  • 玩家选择的难度
  • 玩家通关的日期时间
  • 玩家通关所用的总时间
  • 玩家通关所用的总点击次数

补充说明:
(1) 你可以使用任何python相关技术实现图形界面,包括但不限于Tkinter, wxPython, pyside6等,但必须界面和功能完整,设计布局合理美观
(2) 你可以使用任何数据库进行数据保存,包括任何的关系数据库或非关系数据库,但不得直接使用文件或CSV


一、设计表

使用mysql数据库,设计两张表,user表用来记录用户基本信息,play_info表用来记录用户游戏过程信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、关键代码


# 注册
def register(action):username = actionwith conn.cursor() as cursor:query = "INSERT INTO user (user_name) VALUES (%s)"cursor.execute(query, username)conn.commit()print("注册登录成功!")# 登录
def login(action):username = actionwith conn.cursor() as cursor:query = "SELECT * FROM user WHERE user_name=%s"cursor.execute(query, username)if cursor.fetchall():print("登录成功!")else:print("该玩家为第一次登录,自动为其注册")register(action)# 选择地图
def get_map(prompt):while True:try:user_input = int(input(prompt))if user_input < 1 or user_input > 10:print("输入无效,请输入1-3的数字。")else:return user_input except ValueError:print("输入无效,请输入一个整数。")# 选择难度
def get_difficulty(prompt):while True:try:user_input = int(input(prompt))if user_input < 1 or user_input > 10:print("输入无效,请输入1-3的数字。")else:return user_input except ValueError:print("输入无效,请输入一个整数。")
# 画表格
def draw_table(row,width,height):for i in range(0 ,row):cv.create_line(10, 10+i*40, width, 10+i*40, arrow='none')cv.create_line(10+i*40, 10, 10+i*40, height, arrow='none')  # 画灯
def draw_lamp(row,column):for i in range(0,row):for u in range(0,column):if l[i][u] == 'you':# 亮灯cv.create_oval(i*40+10, u*40+10, (i+1)*40+10,(u+1)*40+10, outline='white', fill='yellow', width=2)# 灭灯else:cv.create_oval(i*40+10, u*40+10, (i+1)*40+10,(u+1)*40+10, outline='white', fill='white', width=2)
# 单击事件函数
def do_event(event):x1 = (event.x - 10) // 40y1 = (event.y - 10) // 40# 翻转(x1,y1)处灯的状态reserve(x1, y1)# 翻转(x1,y1)周围灯的状态# 左侧灯的状态反转if x1 != 0:reserve(x1 - 1, y1)# 右侧灯的状态反转if x1 != row-1:reserve(x1 + 1, y1)# 上侧灯的状态反转if y1 != 0:reserve(x1, y1 - 1)# 下侧灯的状态反转if y1 != column-1:reserve(x1, y1 + 1)draw_lamp(row,column)

三、运行结果

小地图,容易难度:

在这里插入图片描述

中地图,中等难度:

在这里插入图片描述

大地图,困难难度:

在这里插入图片描述

四、完整代码链接

代码下载链接

总结

@作者:加辣椒了吗?
简介:憨批大学生一枚,喜欢在博客上记录自己的学习心得,也希望能够帮助到你们!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python计算圆的面积

用Python创建一个脚本&#xff0c;要求&#xff1a; 能计算半径为2的圆的面积保留10位小数可以直接执行 #!/usr/bin/env python3 import math print("Area is:{:.10f}".format(math.pi*4))计算圆的面积要用到pi&#xff0c;所以我们引用模块math

昆明学院计算机专业在哪个校区,昆明学院有几个校区及校区地址

昆明学院有几个校区及校区地址2017-06-19 11:15:56文/韩竞仪最近有很多考生和家长咨询小编&#xff0c;昆明学院有几个校区&#xff0c;今年新生会被分配到哪个校区?哪个校区好?等相关问题&#xff0c;下面小编统一回复一下考生们的问题。昆明学院有3个校区&#xff0c;分别是…

Solution 19: Fibonacci数列

问题描述 求Fibonacci数列的第n项。Fibonacci数列为1,1,2,3,5,... 解决思路 (1) 递归&#xff0c;指数级时间复杂度&#xff1b; (2) 循环&#xff0c;O(n)时间复杂度&#xff1b; (3) 矩阵乘法&#xff0c;O(logn)时间复杂度&#xff1b; (4) 公式法&#xff0c;O(1)时间复杂度…

ASP.NET MVC 学习第一天

今天开始第一天学习asp.net mvc&#xff0c;写的不是很好&#xff0c;高手不要喷&#xff0c;希望大家能一起进步学习。 好了&#xff0c;开始学习 新建项目&#xff0c;选择mvc 4应用程序 接下来选择基本&#xff0c;视图引擎当然要选择Razor&#xff0c;如果在选择aspx那我们…

计算机显示发送报告,Word文档打不开提示发送错误报告的解决方法

经常使用word文档的人员都会碰到过这种发送错误报告情况&#xff0c;既然有这个问题就要查个究竟什么原因造成&#xff0c;才能完美解决&#xff0c;那么今天小编就在这里讲解word文档发送错误报告的方法。根本原因是&#xff1a;打开word出现提示word发送错误报告的故障其主要…

图灵计算机模型意义,图灵机有什么意义_学习图灵机模型中遇到的问题

图灵机意义图灵提出图灵机的模型并不是为了同时给出计算机的设计&#xff0c;它的意义我认为有如下几点&#xff1a;1、它证明了通用计算理论&#xff0c;肯定了计算机实现的可能性&#xff0c;同时它给出了计算机应有的主要架构&#xff1b;2、图灵机模型引入了读写与算法与程…

使用MVVM-Sidekick开发Universal App(一)

终于要迈进Universal的大坑了&#xff0c;还有点小激动呢。 CurrencyExchanger 掌中汇率是我前几年发布在Windows Phone商店中的一个应用&#xff0c;当时是WP7版本&#xff0c;下载链接&#xff1a;http://www.windowsphone.com/zh-cn/store/app/%E6%8E%8C%E4%B8%AD%E6%B1%87%…

如何检测本计算机耗电量,如何查看电脑耗电量?鲁大师查看电脑使用功率的方法...

【www.xinr41319.cn--电脑网络】查看自己电脑的电源功率有两大好处&#xff0c;第一知道给台式电脑配置多大的电源&#xff0c;第二可以精确的算出&#xff0c;一台电脑&#xff0c;一天一般消耗多少电&#xff0c;那么小编教大家来查看一下自己电脑的功率是多少。我们可以要借…

【转载】COM小结

原文&#xff1a;http://blog.csdn.net/byxdaz/article/details/6595210 一、Com概念 所谓COM&#xff08;Componet Object Model&#xff0c;组件对象模型&#xff09;&#xff0c;是一种说明如何建立可动态互变组件的规范&#xff0c;此规范提供了为保证能够互操作&#xff0…

解决Dropbox无法连接的问题

同步共享服务Dropbox从6月18日开始再次遭到封锁&#xff0c;原因是DNS污染。Dropbox上次在2010年5月曾遭到IP封锁和网址关键字过 滤&#xff0c;2012年5月除文件外链功能外其它功能可正常访问&#xff1b;2014年2月全部功能都可以正常访问。中国正展开净网行动&#xff0c;文件…

RDLC报表系列一

1、报表项目搭建&#xff1a; 配置好后&#xff0c;单击Web服务URL:http://lg-20151517ryre/ReportServer 如果电脑系统打开的时候没有设置密码的话&#xff0c;此时打开有可能会出现需要登录名和密码。如出现此种情况可给Administrator设置密码。然后刷新当前页面就可以看大上…

ADS-B显示终端5.9

更改日志 1 更新背景地图。增加了全国范围内的VOR电台、DME、NDB导航台信息&#xff0c;包含有坐标信息、代码信息、频率等内容。 VOR电台、DME、NDB导航台信息来自中国民航局公布的航行情况资料汇编。VOR、DME、NDB分别採用不同的图形绘制&#xff0c;目标均採用淡绿色画笔…

域名自动跳转不搭建服务器,宝塔搭建的服务器WEB系统环境如果做域名301跳转

宝塔搭建的服务器WEB系统环境如果做域名301跳转今天老蒋遇到一个网友&#xff0c;服务器WEB系统环境是用宝塔搭建的&#xff0c;搭建的网站绑定过WWW域名和不带WWW域名&#xff0c;他是希望能全部统一到WWW的域名&#xff0c;这里应该是他程序没有自带301跳转&#xff0c;如果是…

OpenCV Python教程(1、图像的载入、显示和保存)

本文是OpenCV 2 Computer Vision Application Programming Cookbook读书笔记的第一篇。在笔记中将以Python语言改写每章的代码。 PythonOpenCV的配置这里就不介绍了。 注意&#xff0c;现在OpenCV for Python就是通过NumPy进行绑定的。所以在使用时必须掌握一些NumPy的相关知识…

大华出入口管理系统H710服务器配置,DH-DSS-H710S2 大华出入口综合管理系统 停车场收费 支持人脸相机设备添加...

DH-DSS-H710S2 大华出入口综合管理系统 支持车辆列表展示&#xff0c;包括车辆编号、车牌、车场、车辆品牌、车辆类型、车身颜色、车主等信息 支持通过人员编号、姓名进行人员信息查询 支持打印小票与导出缴费信息 DH-DSS-H710S2DH-DSS-H710S2大华出入口综合管理系统DH-DSS-H71…

微软块级备份引擎服务器,文件级与块级备份区别

首先我们先来了解一下&#xff0c;什么叫做块级&#xff1f;什么叫文件级&#xff1f;1.块级概念&#xff1a;块级是指以扇区为基础&#xff0c;一个或我连续的扇区组成一个块&#xff0c;也叫物理块。它是在文件系统与块设备(例如&#xff1a;磁盘驱动器)之间。2.文件级概念&a…

通过物理映射往虚拟机中传输数据

1、在虚拟机管理界面&#xff0c;找到硬盘&#xff0c;双击 2、在跳出的页面中点击“映射” 3、在弹出的页面中将“以只读模式打开文件”选项勾去 4、选择是“”是 5、这个时候就看到电脑上出现了一个“Z盘”&#xff0c;此时就可以将需要复制进虚拟机的文件&#xff0c;复制…

Ubuntu12.04版本安装arm-linux-gcc 4.3.3

由于Ubuntu12.04是64位系统,如果安装4.3.3版本的arm gcc,系统将会找到,所以要让其可用,就要安装ia32-lib包,以便让系统使用32bit软件: apt-get install ia32-libs 由于我前面已将安装好了gcc 4.3.3并且设置好了环境变量,所以安装完上面以后就可以查看gcc信息了: arm-linux-gcc …

[Algorithm] 字符串匹配算法——KMP算法

1 字符串匹配 字符串匹配是计算机的基本任务之一。 字符串匹配是什么&#xff1f;举例来说&#xff0c;有一个字符串"BBC ABCDAB ABCDABCDABDE"&#xff0c;我想知道&#xff0c;里面是否包含另一个字符串"ABCDABD"&#xff1f; 许多算法可以完成这个任务&…

服务器共享文件审计,内网安全管理系统-共享审计

在现代企事业单位的网络中&#xff0c;最常用的功能莫过于“共享文件”了。财务部门需要当月员工的考勤信息&#xff0c;人事部门可能不会亲自拿过去&#xff0c;而是在网络上共享&#xff1b;生产部门的生产报表也不会用书面的资料分发&#xff0c;而是放在网络的共享文件夹下…