我必须创建以下函数(到Matlab中的命令行赌场):
function [wonAmount, noGuesses] = highLow(gambledAmount)
function [wonAmount, noPulls] = slotMachine(gambledAmount, betFactor)
function wonAmount = roulette(gambledAmount, typeOfBet)
这是我给出的任务的问题,必须实现。我可以创建简单的函数,因为所有游戏都有一些类似的特性,winsAmount的计算等等,并且通常OOP更结构化,我想在Matlab中尝试它(OOP)。
我可以创建一个句柄类,但我必须满足任务的要求。哪个句柄类有一个方法播放 - 我理解一个句柄类构造函数HAS返回对象本身?我正在寻找一个类,其中构造函数不一定返回构造函数 - 一种静态类/函数?
你会如何设计这门课程?
答案 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文件中,那么我担心你运气不好......但这似乎是一个愚蠢的限制。