
作者:七月冰儿
一直这么讲下去难免有些枯燥乏味,还是来点实战轻松一下吧。
下面介绍一下赌牌游戏myFourUp的编写方法。
实例7:赌牌游戏myFourUp
myFourUp程序很像一个扑克机,它的原版是Stephen D. Gilbert的Visual C++ 6编程蓝皮书中的一个实例(FourUp),我认为这个程序用于Mel也同样很能说明问题,就擅自把它移植了过来,不过我在界面和算法部分都作了较大改动。
说到打赌,myFourUp程序与拉斯韦加斯和亚特兰大城中赌场工作人员特别喜爱的扑克游戏相似。但myFourUp更简单,因此你可以集中精力学习程序设计和界面编写方法。
myFourUp并非技巧游戏。当游戏开始时,给玩者1000美元。每一轮(需花一定赌注,比如2美元)玩者接到4张牌。牌值无关紧要-我们关心的只是花色。如果玩者得到两对(例如,两张红心和两张方片),将得4美元。如果玩者得到三个单张,将得到6美元。如果发牌者摆出四张同一花色,将得8美元。
当然,游戏并非使用真钱。如果你想编写程序以便能拨入玩者的银行帐户来取出赢利(或弥补亏空),那是你自己的事。
在我们编写代码之前,让我们先花一点时间来计划一下程序的外观以及它将如何工作。最好是用纸和笔画出该布局,毕竟修订一个计划比改变一个完成的程序要容易。

现在可以根据草图来编写代码,不过编写代码之前最好先讲一下什么是全局变量。
全局变量(Global Variable)
我们以前用到的变量都是局部变量。局部变量只能在函数里面用,当函数运行时局部变量被创建,函数运行结束后,局部变量就被删除了。
如果用户需要在一个函数中创建的变量,其它的函数也可用,则用户可以通过全局变量来实现。如果你创建了一个全局变量,你可以通过函数,也可以通过命令行不断修改它的值。全局变量将一直保留在内存中,直到你退出Maya时才会被删除。
在变量声明前加上"global"表示为全局变量。(在命令行声明全局变量可以不写"global")
例如: global float $counter;
跟椐Maya帮助文档的说法应当尽量少用全局变量,否则很容易会因为粗心而出错。比如你声明了一个全局变量$counter,而Maya中却碰巧已经有了一个全局变量$counter,此时你对$counter变量值所作的任何修改都将影响以前就存在的全局变量$counter,这将会产生错误。
为避免碰巧同名变量的存在,请用较为独特的名称来命名全局变量。Maya中的全局变量都是以小写字母"g"开头(例如$gMainWindow),你可以用除"g"以外的你喜欢的字母开头,本教程中用到的全局变量一般都以"mg"开头。
下面开始我们的程序。程序虽然简单,但这个是一个完善的游戏程序,对于某些初学者来说可能有些难度,如果你实在看不懂,就索性照抄一遍,借此体验一个编程的感觉。
在myFourUp程序中,用一个全局变量$mgMoneyRemaining来记录你拥有的总钱数,当你赢钱时总钱数会增加,反之则会减少。 //global proc myFourUp(){以下的代码写在括号中} // 初始化总钱数为1000美元 global int $mgMoneyRemaining; $mgMoneyRemaining = 1000;
评论加载中…