MATLAB 简易版 你画我猜小游戏

文章目录

    • 一,设置GUI界面
        • 1.游戏的开始界面
        • 2.游戏页面
    • 二,界面的动态效果
        • 1.开始游戏
        • 2.游戏中的效果
    • 三,游戏的主程序
    • 四,源代码
        • 1. 主程序
        • 2.开始页面
        • 3.游戏页面

一,设置GUI界面

1.游戏的开始界面

1). 选择图形用户界面
在这里插入图片描述
2). 选择第一个选项
MATLAB 简易版 你画我猜小游戏_第1张图片
3).设计如此页面
MATLAB 简易版 你画我猜小游戏_第2张图片
4). 将文件保存文.fig格式,会自动生成相应的函数文件
在这里插入图片描述

2.游戏页面

1).设计如下界面
MATLAB 简易版 你画我猜小游戏_第3张图片

二,界面的动态效果

1.开始游戏

axes(handles.axes1);
img=imread('sjj/background.jpg');
image(img);
set(handles.pushbutton1,'String','start game');
set(handles.text1,'String','guess the idiom');

1). 效果如下
MATLAB 简易版 你画我猜小游戏_第4张图片
2). 点击开始游戏按钮,切换页面

close('old');   %关掉原有的页面
run('game');    %打开一个新的页面

2.游戏中的效果

1). 初始页面(第一题)
MATLAB 简易版 你画我猜小游戏_第5张图片
ensure按钮,提交本题答案,答对加一分,答错不得分,然后自动切换下一题。
next按钮,跳过本题,但不可再回头重做此题。
score按钮,计算分数,无论题目是否全部做完,直接结算分数,然后退出。

2). 回答正确,弹出提示框,分数加一
MATLAB 简易版 你画我猜小游戏_第6张图片
3). 回答错误,弹出提示框,切换下一题
MATLAB 简易版 你画我猜小游戏_第7张图片
4). 结束时,结算分数
MATLAB 简易版 你画我猜小游戏_第8张图片

三,游戏的主程序

主程序调用开始页面的函数文件,而开始页面控制游戏开始的页面。
主页面即run(‘old’); 一句。

四,源代码

1. 主程序

run('old');

2.开始页面

function varargout = old(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @old_OpeningFcn, ...
                   'gui_OutputFcn',  @old_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



function old_OpeningFcn(hObject, eventdata, handles, varargin)

axes(handles.axes1);
img=imread('sjj/background.jpg');
image(img);
set(handles.pushbutton1,'String','start game');
set(handles.text1,'String','guess the idiom');


handles.output = hObject;

guidata(hObject, handles);



function varargout = old_OutputFcn(hObject, eventdata, handles) 

varargout{
     1} = handles.output;


function pushbutton1_Callback(hObject, eventdata, handles)

close('old');
run('game');



3.游戏页面

function varargout = game(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @game_OpeningFcn, ...
                   'gui_OutputFcn',  @game_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


function game_OpeningFcn(hObject, eventdata, handles, varargin)

global count;
count=0;
global i;
i=0;
axes(handles.axes1);
pic=imread(['sjj/',int2str(i),'.jpg']);
image(pic);
global elem;
elem=['0','drmj','1','rymf','2','zstb','3','pfqs','4','sbml','5','kkpx','6','hlyh'];

handles.output = hObject;


guidata(hObject, handles);


function varargout = game_OutputFcn(hObject, eventdata, handles) 

varargout{
     1} = handles.output;



function edit1_Callback(hObject, eventdata, handles)

function edit1_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


function pushbutton2_Callback(hObject, eventdata, handles)
    global count;
    helpdlg(['report:',int2str(count)]);
    pause(1.5);
    close('game');

    
function pushbutton1_Callback(hObject, eventdata, handles)
global i;
    global count;
    global elem;
    index=[];
    for a=1:35
        if elem(a)==int2str(i)
            for j=a+1:a+4
                index=[index,elem(j)];
            end
        end
    end
    answer=get(handles.edit1,'String');
    if answer==index
        helpdlg('CORRECT!!!');
        pause(1);
        count=count+1;
        if i<6&&i>=0
            i=i+1;
            axes(handles.axes1);
            pic=imread(['sjj/',int2str(i),'.jpg']);
            image(pic);
            set(handles.edit1,'String','');
        end
        if i==6
            helpdlg('the last');
            if(get(handles.edit1,'String')~='')
                helpdlg(['report:',int2str(count)]);
                pause(1.5);
                close('game');
            end
        end
        
    end
    if answer~=index
        error=errordlg('WRONG!!!');
        pause(1);
        close(error);
        i=i+1;
        axes(handles.axes1);
        pic=imread(['sjj/',int2str(i),'.jpg']);
        image(pic);
        set(handles.edit1,'String','');
    end

    
function pushbutton3_Callback(hObject, eventdata, handles)
global i;
    if i<6
        i=i+1;
        axes(handles.axes1);
        pic=imread(['sjj/',int2str(i),'.jpg']);
        image(pic);
        set(handles.edit1,'String','');
    end
    if i==6
        helpdlg('the last');
    end


你可能感兴趣的:(MATLAB,matlab)