返回顶部
首页 > 资讯 > 精选 >如何使用Matlab制作大富翁小游戏
  • 407
分享到

如何使用Matlab制作大富翁小游戏

2023-06-29 07:06:52 407人浏览 薄情痞子
摘要

这篇文章主要介绍“如何使用Matlab制作大富翁小游戏”,在日常操作中,相信很多人在如何使用Matlab制作大富翁小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Matlab制作大富翁小游戏”的疑

这篇文章主要介绍“如何使用Matlab制作大富翁小游戏”,在日常操作中,相信很多人在如何使用Matlab制作大富翁小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Matlab制作大富翁小游戏”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    大富翁大家都玩过,走到建筑的位置可以买地,第二圈走到买过的地可以升级,别人经过后需要付过路费,每次经过起点都会获得一定资金,玩到最后还没破产的就是胜者,这里我用MATLAB制作了一款MATLAB版的大富翁小游戏:

    如何使用Matlab制作大富翁小游戏

    1.自定义头像及名称

    点击方框内加号可换头像,点击文本区域可改昵称:

    如何使用Matlab制作大富翁小游戏

    当然即使不换头像点击开始后,也会自动分配头像和名称:

    如何使用Matlab制作大富翁小游戏

    如何使用Matlab制作大富翁小游戏

    2.买地、收费、破产

    第一次走过地可以买地:

    B:收购价,T:过路费,最后一位数值是地产等级

    如何使用Matlab制作大富翁小游戏

    如何使用Matlab制作大富翁小游戏

    再次走过地可以升级:

    如何使用Matlab制作大富翁小游戏

    他人走过已被购买地产需要交过路费:

    如何使用Matlab制作大富翁小游戏

    如何使用Matlab制作大富翁小游戏

    当有玩家负债时,会清空资产并显示负债退出游戏:

    如何使用Matlab制作大富翁小游戏

    3.部分代码展示

    主要文件共10个m文件,其中 monopoly_main.m  是函数入口,运行该程序开始游戏!:

    如何使用Matlab制作大富翁小游戏

    monopoly.mlappinstall 文件是APP安装包,点击如下安装APP按钮并选中该文件,可以将其安装在APP栏:

    如何使用Matlab制作大富翁小游戏

    如何使用Matlab制作大富翁小游戏

    值得一提的是,本程序的头像预设也是用MATLAB绘制的:

    如何使用Matlab制作大富翁小游戏

    部分代码展示:

    gui_init.m

    function [monFig,monAx,diceAx,diceTool,selfTool,monMenuS]=gui_initmonFig=uifigure;monFig.Position=[10 50 1000 620];monFig.NumberTitle='off';monFig.MenuBar='none';monFig.Resize='off';monFig.Name='monopoly';monAx=uiaxes(monFig);monAx.PlotBoxAspectRatio=[1 1 1];monAx.Position=[380 10 600 600];%monAx.Box='on';monAx.XLim=[0 100];monAx.YLim=[0 100];%monAx.Color=[0.9 0.9 0.9];monAx.XColor=[0.95,0.95,0.95];monAx.YColor=[0.95,0.95,0.95];monAx.Toolbar.Visible='off';selfPl=uipanel(monFig);selfPl.Title='';selfPl.Position=[10 10 370 600];diceAx=uiaxes(selfPl);diceAx.Position=[0 450 145 145];diceAx.XLim=[0 10];diceAx.YLim=[0 10];diceAx.Color=[0.98 0.98 0.98];diceAx.XColor=[0.95,0.95,0.95];diceAx.YColor=[0.95,0.95,0.95];diceAx.Toolbar.Visible='off';hold(diceAx,'on')plot(diceAx,[2,8],[1,1],'k','LineWidth',2)plot(diceAx,[2,8],[9,9],'k','LineWidth',2)plot(diceAx,[1,1],[2,8],'k','LineWidth',2)plot(diceAx,[9,9],[2,8],'k','LineWidth',2)plot(diceAx,8+cos(0+(0:pi/(2*10):pi/2)),8+sin(0+(0:pi/(2*10):pi/2)),'k','LineWidth',2)plot(diceAx,2+cos(pi/2+(0:pi/(2*10):pi/2)),8+sin(pi/2+(0:pi/(2*10):pi/2)),'k','LineWidth',2)plot(diceAx,2+cos(pi+(0:pi/(2*10):pi/2)),2+sin(pi+(0:pi/(2*10):pi/2)),'k','LineWidth',2)plot(diceAx,8+cos(-pi/2+(0:pi/(2*10):pi/2)),2+sin(-pi/2+(0:pi/(2*10):pi/2)),'k','LineWidth',2)hold(diceAx,'off')diceTool.Btn=uibutton(monFig);diceTool.Btn.Text='摇  骰  子';diceTool.Btn.BackgroundColor=[0.31 0.58 0.80];diceTool.Btn.FontColor=[1 1 1];diceTool.Btn.FontWeight='bold';diceTool.Btn.Position=[180 480 180 40];diceTool.Btn.FontSize=18;diceTool.Lbl1=uilabel(monFig);diceTool.Lbl1.Text='剩余玩家:';diceTool.Lbl1.FontSize=18;diceTool.Lbl1.FontColor=[185 184 150]./500;diceTool.Lbl1.FontWeight='bold';diceTool.Lbl1.Position=[180 560 180 40];diceTool.Lbl2=uilabel(monFig);diceTool.Lbl2.Text='当前轮次:';diceTool.Lbl2.FontSize=18;diceTool.Lbl2.FontColor=[185 184 150]./500;diceTool.Lbl2.FontWeight='bold';diceTool.Lbl2.Position=[180 530 180 40];for i=1:4    selfTool.(['player',num2str(i)]).Img=uiimage(monFig);    selfTool.(['player',num2str(i)]).Img.Position=[30 400-(i-1)*110 60 60];    selfTool.(['player',num2str(i)]).Img.ImageSource='图片\player0.png';    selfTool.(['player',num2str(i)]).Img.UserData=i;        selfTool.(['player',num2str(i)]).Ta=uitextarea(monFig);    selfTool.(['player',num2str(i)]).Ta.Position=[100 402-(i-1)*110 70 23];    selfTool.(['player',num2str(i)]).Ta.Value='请输入昵称';    selfTool.(['player',num2str(i)]).Ta.UserData=i;        selfTool.(['player',num2str(i)]).Ta2=uitextarea(monFig);    selfTool.(['player',num2str(i)]).Ta2.Position=[180 433-(i-1)*110 180 25];    selfTool.(['player',num2str(i)]).Ta2.Value='';    selfTool.(['player',num2str(i)]).Ta2.Enable='off';        selfTool.(['player',num2str(i)]).Btn=uibutton(monFig);    selfTool.(['player',num2str(i)]).Btn.Position=[100 435-(i-1)*110 70 23];    selfTool.(['player',num2str(i)]).Btn.Text=' 购买地产 ';    selfTool.(['player',num2str(i)]).Btn.BackgroundColor=[0.31 0.58 0.80];    selfTool.(['player',num2str(i)]).Btn.FontColor=[1 1 1];    selfTool.(['player',num2str(i)]).Btn.FontWeight='bold';    selfTool.(['player',num2str(i)]).Btn.UserData=i;        selfTool.(['player',num2str(i)]).Lb=uilistbox(monFig);    selfTool.(['player',num2str(i)]).Lb.Position=[180 355-(i-1)*110 180 78];    selfTool.(['player',num2str(i)]).Lb.Items={'地产一(空)','地产二(空)','地产三(空)','... ...'};        selfTool.(['player',num2str(i)]).Txt=uilabel(monFig);    selfTool.(['player',num2str(i)]).Txt.Position=[30 370-(i-1)*110 140 30];    selfTool.(['player',num2str(i)]).Txt.Text='资金 :0 ';    selfTool.(['player',num2str(i)]).Txt.FontColor=[185 184 150]./500;    selfTool.(['player',num2str(i)]).Txt.FontWeight='bold';    selfTool.(['player',num2str(i)]).Txt.FontSize=14;endmonMenu=uimenu(monFig);monMenu.Text='开始游戏';monMenuS.m2=uimenu(monMenu);monMenuS.m2.Text='二人游戏';monMenuS.m3=uimenu(monMenu);monMenuS.m3.Text='三人游戏';monMenuS.m4=uimenu(monMenu);monMenuS.m4.Text='四人游戏';end

    self_init.m

    function self=self_init(n)for i=1:4    self.(['player',num2str(i)]).property=5000;    self.(['player',num2str(i)]).pos=0;    self.(['player',num2str(i)]).real_estate={};    self.(['player',num2str(i)]).estateNum=0;    if i>n        self.(['player',num2str(i)]).gameOver=1;    else        self.(['player',num2str(i)]).gameOver=0;    end    self.(['player',num2str(i)]).name=['玩家',num2str(i)];endend

    4.修改记录

    关于已购买多个地产升级某地产时左右矩阵大小不匹配问题,

    解决方法:将monopoly_main函数113行附近 owenerPos=owenerList(:,2)==n;

    更改为:owenerPos=owenerList(:,1)==self.([‘player’,num2str(n)]).pos;

    由网友 [不知道叫什么] 指出若版本为2021a,则uiaxes会自动显示在uipanel下方导致骰子无法显示,所做更改为将该uiaxes的父类由uifigure更换为uipanel,并更改Position属性使其显示在相应的位置,详细更改如下:

    将gui_init.m文件20-25行附近代码:

    selfPl=uipanel(monFig);selfPl.Title='';selfPl.Position=[10 10 370 600];diceAx=uiaxes(monFig);diceAx.Position=[15 460 145 145];

    改为:

    selfPl=uipanel(monFig);selfPl.Title='';selfPl.Position=[10 10 370 600];diceAx=uiaxes(selfPl);diceAx.Position=[0 450 145 145];

    由网友 [m0_57054690] 指出,打包后程序第一次生成随机数问题,为程序增添根据时间变化的随机数种子即可,该部分代码为:

    tempTime=clock();second=round(tempTime(6)+60*tempTime(5)+24*60*tempTime(4));rng(second)diceNum=randi(6);

    到此,关于“如何使用Matlab制作大富翁小游戏”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: 如何使用Matlab制作大富翁小游戏

    本文链接: https://lsjlt.com/news/323432.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • 如何使用Matlab制作大富翁小游戏
      这篇文章主要介绍“如何使用Matlab制作大富翁小游戏”,在日常操作中,相信很多人在如何使用Matlab制作大富翁小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Matlab制作大富翁小游戏”的疑...
      99+
      2023-06-29
    • 使用Matlab制作大富翁小游戏的过程详解
      目录1.自定义头像及名称2.买地、收费、破产3.部分代码展示gui_init.mself_init.m4.修改记录5.下载地址大富翁大家都玩过,走到建筑的位置可以买地,第二圈走到买过...
      99+
      2024-04-02
    • 如何用Matlab制作一款简单的龙舟小游戏
      今天小编给大家分享一下如何用Matlab制作一款简单的龙舟小游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。效果图:步骤1...
      99+
      2023-06-29
    • 利用Matlab制作一款3D版2048小游戏
      其实逻辑和2维版本完全一样,就不进行详细解说了,直接看效果: 效果: 目前界面还不咋好看,期待大家的优化 还是键盘↑↓←→操作嗷 完整代...
      99+
      2024-04-02
    • 教你用Matlab制作黄金矿工小游戏
      目录效果步骤图片准备背景构建绘制爪子让爪子转起来绘制石块点击下箭头移动爪子爪子与石头和边缘碰触判断抓取石块和显示金钱完整代码效果 步骤 图片准备 本文所使用图片在这 背景构建 f...
      99+
      2024-04-02
    • 怎么用Matlab制作黄金矿工小游戏
      本文小编为大家详细介绍“怎么用Matlab制作黄金矿工小游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Matlab制作黄金矿工小游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果步骤图片准备本文所...
      99+
      2023-06-29
    • 如何利用Matlab制作一款真正的拼图小游戏
      效果: 简单原理介绍: 1构造0,1矩阵作为每片拼图的透明度,可以构造出不规则形状的拼图(image函数有alphaData属性可以设置) jigsawMask=zeros...
      99+
      2024-04-02
    • 怎么用Matlab制作一款3D版2048小游戏
      这篇文章主要介绍了怎么用Matlab制作一款3D版2048小游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Matlab制作一款3D版2048小游戏文章都会有所收获,下面我们一起来看看吧。效果:完整代码...
      99+
      2023-06-29
    • 如何使用Java制作飞机大战游戏
      这篇文章给大家分享的是有关如何使用Java制作飞机大战游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、代码实现创建窗口首先创建一个游戏窗体类GameFrame,继承至JFrame,用来显示在屏幕上(wind...
      99+
      2023-06-15
    • 怎么使用Matlab制作一款真正的拼图小游戏
      这篇文章主要介绍怎么使用Matlab制作一款真正的拼图小游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果:简单原理介绍:1构造0,1矩阵作为每片拼图的透明度,可以构造出不规则形状的拼图(image函数有alph...
      99+
      2023-06-15
    • 如何使用Matlab制作简易版八分音符酱游戏
      这篇文章主要介绍“如何使用Matlab制作简易版八分音符酱游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Matlab制作简易版八分音符酱游戏”文章能帮助大家解决问题。效果游戏方式给电脑插...
      99+
      2023-06-29
    • 如何用JavaScript制作大转盘游戏
      今天小编给大家分享一下如何用JavaScript制作大转盘游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、开始前的准备...
      99+
      2023-07-05
    • 利用Matlab制作一款狗头翻牌子小游戏
      目录0游戏效果1fig界面和背景板2狗狗牌子与胜利标志2.1狗狗牌子绘制2.2游戏胜利标签2.3鼠标点击牌子回调3游戏难度按钮组3.1按钮绘制3.2难度选择回调4游戏刷新模块4.1刷...
      99+
      2024-04-02
    • 如何用CocosCreator制作微信小游戏
      目录1、在微信公众平台下载微信开发者工具2、cocoscreator设置3、配置构建发布4、打开小程序项目5、进入微信开发工具 6、编译7、预览8、预览成功CocosCre...
      99+
      2024-04-02
    • 基于Matlab制作一款简单的龙舟小游戏
      效果图: 没找到合适的背景就自己画了个,大家如果有更好看的可以换一下。。。 步骤 1 创建Axes及图片导入 窗口创建: Mainfig=figure('units','pixe...
      99+
      2024-04-02
    • 使用Matlab制作简易版八分音符酱游戏
      目录效果游戏方式说明工具箱主要部分代码完整代码效果 游戏方式 给电脑插上耳机后叫喊叭 ! 说明 1)使用此代码应首先安装: Audio Toolbox工具箱,博主使用的版本为: ...
      99+
      2024-04-02
    • 怎么用python制作小游戏
      这篇文章主要介绍“怎么用python制作小游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用python制作小游戏”文章能帮助大家解决问题。开发工具Python版本:3.6.4相关模块:pyg...
      99+
      2023-06-27
    • 基于Matlab制作伪3D第一视角迷宫小游戏
      目录游戏效果游戏原理说明第一代程序计算交点方法第二代程序计算交点方法距离转换为线段长度完整代码游戏效果 使用键盘上方向键↑向前移动 使用键盘左右方向键调整← ...
      99+
      2024-04-02
    • 详解如何利用Python制作24点小游戏
      目录先睹为快游戏规则(改编自维基百科)逐步实现Step1:制作24点生成器Step2:定义游戏精灵类Step3:实现游戏主循环先睹为快 24点 游戏规则(改编自维基百科) 从1~10...
      99+
      2024-04-02
    • 使用CocosCreator怎么制作一个微信小游戏
      使用CocosCreator怎么制作一个微信小游戏?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、在微信公众平台下载微信开发者工具 地址: http...
      99+
      2023-06-14
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作