matlab 版 数独小游戏 GUI界面设计

近期,由于各种原因,接触到了matlab版的数独小游戏,需要做GUI界面。由于之前本科的时候自己也做过简单的界面涉及,就以为很简单,结果,piapia打脸。数独中的数字是在table中显示的,为了将题目数字,作答数字、答案数字和解答数字区分开,需要设置不同的颜色,但是网上相关资料太少,所以这个界面设计过程很痛苦,现将个人经验分享于此。

首先是数独游戏的解法,这个网上一搜一大堆,本文所用程序与如下网址中所述一致。

https://www.bilibili.com/video/BV1Yx411V7tE

数独生成部分没使用算法自动生成,而是根据网上资料手动输入了30组数独题,放到了data.txt中,30*81,其中一行为一个数独题目,使用时将其中一行reshape成9*9矩阵即可。将数独题目分成简单、一般、困难三种模式,根据slider的值进行判断,slider的值在0-1之间,0-0.33时,对应简单模式,0.33-0.66对应一般模式,0.66-1对应困难模式。生成数独时,根据slider的值找到对应模式,然后在对应模式中随机抽取题目即可。

然后就是比较关心的不同字号显示问题了,这里用到了html,举一个栗子~

CurCell{row,col}=['<html><table><tr><td width=100 bgcolor="white" text-align:center>','<FONT face="Times New Roman"size="25"color=green">',num2str(CurMat(row,col)), '</table></html>

CurCell是cell类型的数据,用于在table中显示,row和col分别对应其行数和列数,bgcolor="white" 用来设置背景颜色,text-align:center设置居中显示,FONT face="Times New Roman"设置新罗马字体,size="25",设置显示的字号为25,color=green"用来显示字体颜色为绿色,这里是手动输入的字体颜色。

其实懂了就很简单了,但是由于网上资料较少,所以找了很久也没有找到,所以,就想分享给有需要的人们呦。

代码如下,因为涉及到UI界面的tag等,所以如果想直接运行也可直接下载我的matlab程序哦

https://download.csdn.net/download/Huihui_Lv/12578477

%主程序,用来运行:

function varargout = ShuduLJY(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @ShuduLJY_OpeningFcn, ...
                   'gui_OutputFcn',  @ShuduLJY_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end

 

fnction ShuduLJY_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;guidata(hObject, handles);

 

function varargout = ShuduLJY_OutputFcn(hObject, eventdata, handles) 
varargout{1} = handles.output;

%slider滑窗程序
function Slider_Callback(hObject, e

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值