一个小试验,骰子游戏,没有UI

游戏规则:参加游戏的玩家,每个人掷两次骰子.两次之和谁大的,谁就是赢家.
主要是试一下用UML的方法来做游戏,但总觉得Actor只有一个玩家,顶多也就是多个Timer.这个游比较简单也看不出来什么,不过熟悉一下做游戏的这道流程也是一种收获.

class Player
{
        private var name:String;
        private var score:Number;
        function Player(name:String)
        {
                this.name = name;
        }
        public function play(die1:Die, die2:Die):Void
        {
                die1.roll();
                die2.roll();
                score = die1.getFaceValue()+die2.getFaceValue();
        }
        public function getName():String
        {
                return name;
        }
        public function getScore():Number
        {
                return score;
        }
}

class Die
{
        private var faceValue:Number;
        public function getFaceValue():Number
        {
                return faceValue;
        }
        public function roll():Void
        {
                faceValue = int(Math.random() * 6 + 1);
        }
}

class DiceGame
{
        private var die1, die2:Die;
        private var player1,player2:Player;
        
        public function DiceGame(name1:String,name2:String)
        {
                player1 = new Player(name1);
                player2 = new Player(name2);
                die1 = new Die();
                die2 = new Die();
        }
        public function play():Void
        {
                player1.play(die1, die2);
                player2.play(die1, die2);
        }
        public function getWinner():Player
        {
                var score1:Number = player1.getScore();
                var score2:Number = player2.getScore();
                trace(score1+":"+score2);
                if (score1== score2)
                {
                        return null;
                }
                else
                {
                        return (score1> score2)?player1:player2;
                }
        }
        
        //程序入口
        public static function main():Void
        {
                var game:DiceGame = new DiceGame("小强","张立");
                game.play();
                var winner:Player =game.getWinner();
                if(winner!=null)
                trace(winner.getName()+"胜!");
        }
}
//main.fla
DiceGame.main();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值