定义特定的Matlab类结构

时间:2012-11-21 21:39:20

标签: oop class matlab struct

我必须创建以下函数(到Matlab中的命令行赌场):

function [wonAmount, noGuesses] = highLow(gambledAmount)
function [wonAmount, noPulls] = slotMachine(gambledAmount, betFactor)
function wonAmount = roulette(gambledAmount, typeOfBet)

这是我给出的任务的问题,必须实现。我可以创建简单的函数,因为所有游戏都有一些类似的特性,winsAmount的计算等等,并且通常OOP更结构化,我想在Matlab中尝试它(OOP)。

我可以创建一个句柄类,但我必须满足任务的要求。哪个句柄类有一个方法播放 - 我理解一个句柄类构造函数HAS返回对象本身?我正在寻找一个类,其中构造函数不一定返回构造函数 - 一种静态类/函数?

你会如何设计这门课程?

1 个答案:

答案 0 :(得分:2)

听起来你需要程序的界面看起来像函数调用,但在内部你想要使用OO编程。是吗?

假设你需要界面看起来像:

[wonAmount, noGuesses] = highLow(gambledAmount)

您可以在执行以下操作的highLow函数中编写代码:

function [wonAmount, noGuesses] = highLow(gambledAmount)
game = highLowGame; %instantiate the game, and run it:
[wonAmount, noGuesses] = highLowGame.run(gambledAmount);

或者您可以使用静态方法:

function [wonAmount, noGuesses] = highLow(gambledAmount)
[wonAmount, noGuesses] = highLowGame.runGame(gambledAmount);

http://www.mathworks.com/help/matlab/matlab_oop/static-methods.html

我假设highLowGame.m看起来像这样:

 classdef highLowGame < casinoGame

没有充分的理由为此使用句柄类,除非你真的想要一个特定的调用语法/句柄行为......

如果由于某种原因你需要将这一切都放在一个M文件中,那么我担心你运气不好......但这似乎是一个愚蠢的限制。