91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2022-02-25 11:32:37 來源:億速云 閱讀:319 作者:iii 欄目:開發技術

這篇文章主要介紹“如何使用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_init
    monFig=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;
    end
    
    monMenu=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)];
    end
    end

    4.修改記錄

    1.關于已購買多個地產升級某地產時左右矩陣大小不匹配問題,

    解決方法:將monopoly_main函數113行附近 owenerPos=owenerList(:,2)==n;

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

    2.由網友 [不知道叫什么] 指出若版本為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];

    3.由網友 [m0_57054690] 指出,打包后程序第一次生成隨機數問題,為程序增添根據時間變化的隨機數種子即可,該部分代碼為:

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

    到此,關于“如何使用Matlab制作大富翁小游戲”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    齐河县| 河东区| 平果县| 利津县| 都昌县| 延吉市| 龙南县| 久治县| 松原市| 襄垣县| 安达市| 始兴县| 永年县| 靖江市| 乌苏市| 太和县| 遂平县| 略阳县| 五家渠市| 隆林| 磐石市| 卢龙县| 疏勒县| 鲁甸县| 钟祥市| 延寿县| 铜川市| 珠海市| 明溪县| 平湖市| 怀来县| 定州市| 武城县| 腾冲县| 太康县| 舒兰市| 洞口县| 五峰| 如皋市| 宣汉县| 内丘县|