当前位置: 首页 > news >正文

模板建站是什么页面设计常用的字体颜色有

模板建站是什么,页面设计常用的字体颜色有,邯郸网络企业版,网上做试卷的网站井字棋 1.设计登录界面1.1导入需要的工具包1.2窗口显示1.3登录界面图片显示1.6标签按钮输入框显示 2.登录功能实现2.1用户数据存储 2.2登录和注册2.2.1登录功能实现2.2.2注册功能实现 3.井字棋游戏3.1 导入需要的工具包3.2 窗口显示3.2 按钮标签显示3.3 棋盘设置初始状态3.4 游… 井字棋 1.设计登录界面1.1导入需要的工具包1.2窗口显示1.3登录界面图片显示1.6标签按钮输入框显示 2.登录功能实现2.1用户数据存储 2.2登录和注册2.2.1登录功能实现2.2.2注册功能实现 3.井字棋游戏3.1 导入需要的工具包3.2 窗口显示3.2 按钮标签显示3.3 棋盘设置初始状态3.4 游戏设计3.4.1创建白布3.4.2 画出九宫格 在每个格子中心绘制数字或 X3.6设置输赢条件3.7 进一步处理用户输入3.8设置AI步数3.9 清空棋盘状态效果图 1.设计登录界面 1.1导入需要的工具包 import tkinter as tk from PIL import Image, ImageTk import pickle from tkinter import messagebox import subprocess1.2窗口显示 window tk.Tk() window.title(Welcome) window.geometry(500x600)1.3登录界面图片显示 image Image.open(welcome.gif) photo ImageTk.PhotoImage(image)函数解析 ImageTk.PhotoImage 是 Python 中用于处理图像的模块通常与 PILPython Imaging Library一起使用。它允许你在 Tkinter 程序中加载和显示图像。 1.5 用户名设置默认值 value GaoYue entry_var tk.StringVar(window) entry_var.set(value)解释 创建了一个StringVar对象entry_var用于绑定到一个Entry控件以便可以在用户输入时更新该控件的值。然后给entry_var设置了一个初始值value这样在Entry控件中显示的文本就是value的值并设置初始值为qq.com这样在Entry控件中显示的文本就是。 1.6标签按钮输入框显示 label1_image tk.Label(window,imagephoto) label1_image.place(x10,y10) label2 tk.Label(window,textUser name,width10,height5) label2.place(x40,y130) label3 tk.Label(window,textpassword,width10,height5) label3.place(x40,y180) label4 tk.Entry(window,width30,bd5) label4.place(x140,y210) label5 tk.Entry(window,textvariableentry_var,width30,bd5) label5.place(x140,y160)button1 tk.Button(window,textLoign,width10,commandusr_login) button1.place(x140,y280) button2 tk.Button(window,textSign up,width10,commandusr_sign_up) button2.place(x250,y280)2.登录功能实现 2.1用户数据存储 def usr_login():usr_name label5.get()usr_pwdlabel4.get()print(usr_name)try:with open(usrs_info.pickle,rb) as usr_file:print(1)usrs_info pickle.load(usr_file)print(usrs_info)except FileNotFoundError:with open(usrs_info.pickle,wb) as usr_file:print(2)usrs_info {admin:admin}pickle.dump(usrs_info,usr_file)解释: 两个输入框(label5,label4)使用get()函数获取用户输入的数据接下来使用使用了Python中的异常处理机制。在try使用with语句打开usrs_info.pickle文件,设置为只读二进制模式将”usrs_info.pickle”二进制文件加载到内存里面转换到usrs_info变量中输出出来。当读取的文件不存在报错时跳转到except代码块中执行相应的异常处理使用with语句打开二进制写入模式打开文件文件不存在时创建相对应文件用一个变量(usrs_info)接收一个字典( {‘admin’:‘admin’})用来存储用户信息或者账户信息用于验证用户身份,将字典序列化为字节流(二进制数据)并写入usr_file文件中永久保存。 2.2登录和注册 2.2.1登录功能实现 print(ok) print(usr_name:,usr_name) if usr_name in usrs_info:print(3)if usr_pwd usrs_info[usr_name]:tk.messagebox.showinfo(titleWelcome,messageHow are youusr_name)tk.messagebox.showinfo(titleGame Start, messageLets start the game!)subprocess.run([python, 飞机大战.py])else:tk.messagebox.showerror(messageError,your password is wrong,try again.) else:print(4)is_sign_up tk.messagebox.askyesno(titleWelcome,messageYou have not sign up yet.sign up today?)解释 If语句如果用户名在字典中执行下一个if语句用户密码是否等于usrs_info中键usr_name的值如果等于弹出消息框((title“Welcome”,message“How are you”usr_name),(title“Game Start”, message“Let’s start the game!”),使用subprocess.run函数以python解释器执行井字棋.py文件如果不等于弹出消息框(message“Error,your password is wrong,try again.”)如果第一个if语句没有达到条件弹出一个对话框内容是title“Welcome”,message“You have not sign up yet.sign up today?”。 2.2.2注册功能实现 def sign_up():nn entry9.get()np entry10.get()npf entry11.get()with open(usrs_info.pickle,rb) as usr_file:exist_usr_info pickle.load(usr_file)if np ! npf:tk.messagebox.showerror(Error,The user has already signed up!)elif nn in exist_usr_info:print(已经注册过了)tk.messagebox.showerror(Error,The user has already signed up!)else:exist_usr_info[nn] npwith open(usrs_info.pickle,wb) as usr_file:pickle.dump(exist_usr_info,usr_file)tk.messagebox.showinfo(Welcome,You have successfully signed up!)window.destroy() button3 tk.Button(window, textSign up, width10,commandsign_up) button3.place(x140, y150) print(开始注册)解释: 三个输入框获取用户输入的用户名注册密码重复密码打开二进制文件将二进制文件数据转换为python对象用一个变量exist_usr_info保存然后if判断注册密码是否与重复密码相等如果不相等就弹出消息框(“Error”,“The user has already signed up!”)反之文件中的用户名中的密码等于注册密码将变量exist_usr_info中的数据通过with语句和pickle函数保存在二进制文件中然后弹出消息框(“Welcome”,“You have successfully signed up!”),窗口销毁将函数sign_up与按钮进行连接最后输入开始注册。 3.井字棋游戏 3.1 导入需要的工具包 import tkinter as tk from tkinter import messagebox3.2 窗口显示 window tk.Tk() window.geometry(600x500) window.title(Welcome)3.2 按钮标签显示 label2 tk.Label(text请输入要落下棋子的位置1-9, width30, height2) label2.pack() label2.place(x190, y310) entry2 tk.Entry(width20) entry2.pack() entry2.place(x220, y350) button11 tk.Button(text落下棋子, width10, height2,commandmessage2) button11.pack() button11.place(x250, y380) button22 tk.Button(text重新开始, width10, height2) button22.pack() button22.place(x250, y430)解释 设置标签和按钮按钮与函数相连接 3.3 棋盘设置初始状态 gameover False board []*9 step 0解释: 设置游戏初始化为结束设置棋盘状态为九个空字符串的列表step为初始化棋盘步数为0 3.4 游戏设计 3.4.1创建白布 canvas tk.Canvas(window, width300, height300, bgwhite) canvas.pack()函数解析: tk.Canvas 是 Tkinter 中用于绘制图形的组件你可以在其中绘制直线、矩形、椭圆等形状也可以放置文本、图像等元素。 3.4.2 画出九宫格 def draw_nume(canvas,width,height,line_colorblack):cell_width width / 3cell_height height / 3for i in range(3):x i * cell_widthcanvas.create_line(x, 0, x, height, fillline_color) # 垂直线for i in range(3):y i * cell_heightcanvas.create_line(0, y, width, y, fillline_color) # 水平线解释 定义一个draw_nume函数传入形参(canvas,width,height,line_color‘black’),’line_colorblack’表示线条颜色width,heightcell_width width / 3和cell_height height / 3计算了每个单元格的宽度和高度第一个for循环是画垂直线(起点坐标终点坐标) fillline_color填充方式为线条,计算当前列的 x 坐标为 i * cell_width。第二个for循环是画水平线,计算当前行的 y坐标为 i * cell_height,canvas.create_line()画水平线。 在每个格子中心绘制数字或 “X” for i in range(3):for j in range(3):x i * cell_width cell_width / 2y j * cell_height cell_height / 2index i * 3 jif board[index] X:canvas.create_text(y, x, textX, font(Helvetica, 20))else:canvas.create_text(y, x, textstr(index 1), font(Helvetica, 20))解释: 第一个for循环为行的中心位置第二个for循环为列的中心位置在x,y找到中心位置 index i * 3 j是在九宫格上写上数字的索引如果board[index] ‘X’:就在x,y的中心位置画X如果不是在index索引加一。 3.5设置输入限制 def message():Iemet entry2.get()if not Iemet.isdigit():tk.messagebox.showinfo(输入错误, 请输入一个数字。)elif int(Iemet) 9:tk.messagebox.showinfo(输入错误, 输入的数字不能大于 9。)解释 如果判断不是数字弹出消息框(“输入错误”, “请输入一个数字。”),接着判断输入的是大于9 的弹出消息框(“输入错误”, “输入的数字不能大于 9。”) 3.6设置输赢条件 def iswins():global gameoverwins [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]]for w in wins:if (board[w[0]]! and board[w[0]]board[w[1]]board[w[2]]):gameover Truetk.messagebox.showinfo(title你别挣了,message我赢了)returnif step5:gameover Truereturn tk.messagebox.showinfo(title你别挣了,message都没有赢了)return解释: 定义全局变量gameover列出所有的用户赢的可能for循环用与循环遍历wins列表if条件使用索引board[w[0]]w的第一个数不能为空判断board[w[0]]的第一个数和第二个数和第三个数是否相等如果相等就是wins列表中的一个赢的可能弹出消息框(title“你别挣了”,message“我赢了”)返回第二个if条件如果我方步数大于等于5返回消息框(title“你别挣了”,message“都没有赢了”),返回。 3.7 进一步处理用户输入 def message2():global boardglobal stepIemet entry2.get()if Iemet.isdigit():number int(Iemet)if 1 number 9:index number - 1board[index] Xdraw_nume(canvas, 300, 300)is_Win()step 1解释 定义两个全局变量获取输入框文本if语句检查用户输入的文本是否为数字接着if语句判断是否在1到9之间(包括1-9)井字棋游戏板上的索引位置标记为 ‘X’表示用户的棋子这是一个函数调用用来在画布上绘制新的游戏板调用一个函数is_Win()用来检查是否获胜这一行代码增加游戏的步数以便在每一步后进行检查。将函数放置在按钮上。 3.8设置AI步数 index ai.AI().decide(AI,高越,board) r 20 canvas.create_oval() board[index] AI iswins()解释: 调用了 ai.AI().decide(“AI”,“高越”,board),圆的半径为20设置棋盘数据为”AI”。 3.9 清空棋盘状态 def reset():global canvascanvas.delete(A)使用canvas.delete函数清空棋盘状态 效果图
http://www.w-s-a.com/news/415836/

相关文章:

  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司
  • 龙岩网站设计招聘信息网上免费logo设计
  • 高端定制网站开发建站教程详解网站共享备案可以申请支付接口
  • 做房产网站接不到电话企业推广宣传方式
  • 网站建设费用不用摊销下一页p30
  • 北京 工业网站建设公司国外服务器公司有哪些
  • 怎样局域网站建设盈利网站
  • 公司做网站广告语济南建网站价格消费品展
  • 建德网站网站建设规划设计书
  • 谷歌网站流量分析wordpress置顶浮标
  • 江苏新宁建设集团网站网络规划设计师2023论文
  • 合作建站协议python wordpress采集器
  • 集团网站网页模板网站建设图片大全