Outline Of Sodoku

article/2025/9/25 7:00:12

第一步:确定所需要实现的目标

        1.数独程序的界面:

                1.1初始界面边框

                        1.1.1边框上的Sodoku标题

                1.2初始界面背景图片

                1.3初始界面开始键

                1.4初始界面难度设置 

                        \\数独界面始终为9×9的矩阵,可以通过改变初始给定格数来改变难度

                1.5响应键盘和鼠标指令

                        1.5.1鼠标响应开始键、难度设置

                        1.5.2键盘响应推出程序(可设置为Q键)

        2.开始数独游戏:

                2.1产生9×9的格子(9×9的矩形)

                2.2给定随机格子的初始值

                        2.2.1设置一个二维数组,其中元素为集合,对应每一个格子可填入的数字

                        \\通过设置集合初值为1~9,然后计算与行,列,自己3×3格子内的差集

                        2.2.2每次随机选一个格子并随机选择差集中数值为初始值,并更新本身差集的元素

                        2.2.3将数字的图片(?)放在矩形上表示改变数值

                2.3改变每个格子的数值

                        2.3.1响应鼠标选定这个格子

                        2.3.2响应键盘输入数字

                2.4提示系统

                        2.4.1遍历二维数组中元素个数,将个数最少的那个返回

        3.结束系统

                        3.1.1每次选完数字,进行判断:当二维数组中集合均为空集时,代表游戏结束

第二步:各个步骤实现可以用到的方法/库

        1.import sys

                1.1sys.exit()函数用于结束这个程序

        2.import pygame

                2.1screen=pygame.display.set_mode((a,b)) \\创建一个a,b长宽的窗口,一般用变量screen存储起来

                2.2pygame.display.set_caption \\创建窗口的标题

                2.3pygame.init()  \\进行使用pygame前各方面的初始化

                2.4pygame.event.get() \\用于捕捉各种事件。例如鼠标的点击、键盘按键的按下、松开或者QUIT退出程序事件。一般写为for event in pygame.event.get() 后面加上if event.type==...

                2.5pygame.display.update()\\用于刷新窗体

                2.6image=pygame.image.load("\\图片路径")  \\加载一个surface对象(即图片),一般用变量存储起来

                2.7image.get_rect() \\这里的image是2.6存储的surface对象,此函数以图形大小获得一个矩形,相当于图片的边框,它拥有top,bottom,left,right,height,width表示上下左右宽度长度等多个参数,之后可以根据这个矩形边框进行一些操作。在这个窗口中,可以这么认为,以左上角为坐标原点,向右伸展出x轴,向下伸展出轴,这些参数就是表示在这个笛卡尔坐标系中。

                2.8screen.fill(颜色)\\这里的screen即上面set_mode获得的窗口,这个函数用于填充背景颜色

                2.9screen.blit(image,image.get_rect())\\这个函数用于根据rect对象的移动改变image的位置(绘制) 在2.8\2.9函数之后加入2.5的pygame.display.update()

                2.10clock=pygame.time.Clock()创建一个Clock对象,其中含有方法clock.tick(fps)用于控制每秒变化的帧数 //数独应该不会用到

                2.11event.type==pygame.KEYDOWN 这个判断可以用于检测键盘是否按下(一般在下面还会增加内联if event.key==pygame.K_RIGHT等等)

                2.12pygame.display.set_mode中还可以指定参数,变为无边框窗口、可调节大小的窗口或全屏显示模式。

                2.13vInfo=pygame.display.Info() \\这个函数可以用来获取当前该窗口的大小,以便于在2.12中改变窗口大小时,使得图像正常显示出来。(屏幕参数可以通过vInfo.current_w和vInfo.current_h来获得当前屏幕的宽度和高度)

                2.14event.type==pygame.VEDIORISIZE 可以侦测屏幕伸缩的事件。这里列出pygame可以实现的事件类型。

                2.15pygame.draw.rect(Surface,color,Rect,width=0) //绘制一个矩形 当然也可以绘制一些其他的图形

                2.16pygame.Rect  //创建一个Rect矩形类,可以获得它的各种参数。如这个矩形内的某个坐标。

                2.17pygame.Font类 用于绘制字在屏幕上

 

 

                


http://chatgpt.dhexx.cn/article/x1sbcLTq.shtml

相关文章

Apache Kudu架构

目录 1. Kudu架构 1. Kudu架构 下图显示了一个具有三个master和多个tablet server的Kudu集群 Kudu采用Raft一致性算法,当写入一条数据,被至少一半replica保存,就可以让客户端访问该条数据。但所有的replica的数据会最终一致 Table&#xff…

kudu的相关介绍

目录 前言 背景 概览 数据模型 核心 API 一致性模型 架构 整体架构 数据分区策略 存储 存储设计目标 存储方式 存储实现 读写过程 应用案例 前言 近两年,KUDU 在大数据平台的应用越来越广泛。在阿里、小米、网易等公司的大数据架构中,KUD…

大数据入门-什么是Kudu

目录 一、概念 二、架构 1.Master Server 2.Tablet Server 3.Table 4.Tablet 三、特性 1.重要性 2.易用性 3.优势 4.与传统关系型数据库比较 5.与其他大数据组件比较 四、常用语句 1.建表 1.建普通表 2.建分区表 2.删除表 3.查询数据 4.添加数据 5.更新数据…

Kudu初入门

目录 介绍: 基础架构: 关于Tablet: Kudu与Impala集成 安装Kudu 配置Impala支持Kudu: 使用案例: 创建表: 查询Impala中现有的Kudu表 使用CREATE TABLE AS SELECT语句查询Impala中的任何其他表或来…

kudu-- 分布式数据库

一、前言 近两年,KUDU 在大数据平台的应用越来越广泛。在阿里、小米、网易等公司的大数据架构中,KUDU 都有着不可替代的地位。本文通过分析 KUDU 的设计, 试图解释为什么 KUDU 会被广泛应用于大数据领域,因为还没有研究过 KUDU 的…

Apache Kudu的介绍

一、Apache Kudu的介绍 1.1、背景介绍 在kudu之前,大数据主要以两种方式存储; (1)静态数据 : 以HDFS引擎作为存储,适用于高吞吐量的离线大数据分析场景。 这类存储的局限性是数据无法进行随机读写。 &…

kudu compaction操作

与hbase相同,kudu也需要定期进行compaction操作。kudu中的compaction操作有两种,一是合并delta文件。二是将一个tablet中的多个diskRowset进行重排。下面分别对这两者进行介绍。 之前在kudu的update操作中讲到,update操作的数据会先写入delt…

Apache Kudo: 1.0版和未来 [session]

Strata Data Conference北京站大会还有一个月即将召开, 有需求的同学还请抓紧时间, 点击二维码即可登录会议官网报名。 Apache Kudo: 1.0版和未来 讲师:Hao Hao (Cloudera) 14:50–15:30 Friday, 2017-07-14 数据工程和架构 (Data engin…

kudu架构

课程链接: http://edu.51cto.com/course/15174.html 特点: High availability(高可用性)。Tablet server 和 Master 使用 Raft Consensus Algorithm 来保证节点的高可用,确保只要有一半以上的副本可用,该 …

Apache Kudu

前言    在Kudu出现前,由于传统存储系统的局限性,对于数据的快速输入和分析还没有一个完美的解决方案,要么以缓慢的数据输入为代价实现快速分析,要么以缓慢的分析为代价实现数据快速输入。随着快速输入和分析场景越来越多&…

Kudu的介绍及使用

前文: 过往采用Hive的离线处理时效性低,计算任务过于集中,查询效率低。SparkStreamingHive的数据清洗线使得多套数据流过于复杂。未来的数据仓库场景越来越趋向于实时数仓。 一、引入 二、架构图 2、架构及数据量 3、文件结构 4、目录结构 5…

Kudu简单使用

环境版本:CDH 6.3.2 | Impala 3.2.0 | Hive 2.1.1 | Hue 4.2.0 | kudu 1.10.0 # 创建kudu表,需指定主键、分区 CREATE TABLE kudu_table (id BIGINT,name STRING,PRIMARY KEY(id) ) PARTITION BY HASH PARTITIONS 16 STORED AS KUDU;# 创建impala外部表映…

Kurento

java相关代码:https://codeload.github.com/Kurento/kurento-tutorial-java/zip/refs/heads/master node相关代码:https://github.com/Kurento/kurento-tutorial-node WebRTC之Kurento:直播、视频通话、视频会议我都行! 前言 前段时间做rtsp无插件网页…

kudu介绍

kudu介绍 Kudu是运行在hadoop平台上的列式存储系统,拥有Hadoop生态系统应用的常见技术特性,运行在一般的商用硬件上,支持水平扩展,高可用。 kudu的优势 1)一个table由多个tablet组成,对分区查看、扩容和数据高可用支持非常好 2…

KUDU 介绍

前言 近两年,KUDU 在大数据平台的应用越来越广泛。在阿里、小米、网易等公司的大数据架构中,KUDU 都有着不可替代的地位。本文通过分析 KUDU 的设计, 试图解释为什么 KUDU 会被广泛应用于大数据领域,因为还没有研究过 KUDU 的代码…

KUDU(一)kudu概述

文章目录 概述使用场景对比其他存储Kudu基本架构Kudu中的相关概念和机制 概述 Kudu是一个分布式列式存储引擎/系统,由Cloudera开源后捐献给Apache基金会很快成为顶级项目。用于对大规模数据快速读写的同时进行快速分析 官网 https://kudu.apache.org/ Kudu运行在…

Kudu概述

Kudu是一个分布式的,具有可扩展性的列式存储管理器,可以对快速变化的数据进行快速分析。 使用场景 近实时计算场景时间序列数据的场景预测建模与存量数据共存既有随机读写/访问,又有批量扫描分析的场景(OLAP)HTAP混合事务分析处理场景Kudu作为持久层与Impala紧密集成的…

Kudo介绍 + Spark\Python\Scala开发Kudu应用程序

前半部分文章摘自:http://blog.csdn.net/a1043498776/article/details/72681890 Kudu的背景 Hadoop中有很多组件,为了实现复杂的功能通常都是使用混合架构, Hbase:实现快速插入和修改,对大量的小规模查询也很迅速HDF…

adb remount 挂载失败

打开cmd ,输入adb remount 挂载设备的时候失败,提示如下: 按照提示,输入adb root 再输入adb remount ,成功。

adb remount overlayfs的说明

在android R项目中执行adb remount的时候,能看到"Using overlayfs for xxx"的打印,类似如下: #adb root restarting adbd as root#adb remount Disabling verity for /system Using overlayfs for /system Disabling verity for /…