1

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

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

这是我被赋予的任务,必须完成。我可以只创建简单的函数,因为所有游戏都有一些相似的特性,winAmount 的计算等,而且通常 OOP 更结构化,我想在 Matlab 中尝试它(OOP)。

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

你会如何设计这门课?

4

1 回答 1

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 文件中,那么恐怕您不走运……但这似乎是一个愚蠢的限制。

于 2012-11-21T22:04:41.240 回答