zoukankan      html  css  js  c++  java
  • javascript 写农场迭代

    /**
     * 农场一头小母牛
     * 每年生头小母牛
     * 母牛五岁产母牛
     * 二十年上多少牛
     */

    划分程序,母牛只管自己的年龄能不能产牛仔,母牛是model同时也是工厂

    农场只管养牛,收获新牛。

    一年一个循环,农场养牛,牛产子

    /**
     * [Decode error - output not utf-8]
    农场有71只小母牛
    母牛0,20岁
    母牛1,14岁
    母牛2,13岁
    母牛3,12岁
    母牛4,11岁
    母牛5,10岁
    母牛6,9岁
    母牛7,8岁
    母牛8,8岁
    母牛9,7岁
    母牛10,7岁
    母牛11,7岁
    母牛12,6岁
    母牛13,6岁
    母牛14,6岁
    母牛15,6岁
    母牛16,5岁
    母牛17,5岁
    母牛18,5岁
    母牛19,5岁
    母牛20,5岁
    母牛21,4岁
    母牛22,4岁
    母牛23,4岁
    母牛24,4岁
    母牛25,4岁
    母牛26,4岁
    母牛27,3岁
    母牛28,3岁
    母牛29,3岁
    母牛30,3岁
    母牛31,3岁
    母牛32,3岁
    母牛33,3岁
    母牛34,2岁
    母牛35,2岁
    母牛36,2岁
    母牛37,2岁
    母牛38,2岁
    母牛39,2岁
    母牛40,2岁
    母牛41,2岁
    母牛42,2岁
    母牛43,1岁
    母牛44,1岁
    母牛45,1岁
    母牛46,1岁
    母牛47,1岁
    母牛48,1岁
    母牛49,1岁
    母牛50,1岁
    母牛51,1岁
    母牛52,1岁
    母牛53,1岁
    母牛54,1岁
    母牛55,0岁
    母牛56,0岁
    母牛57,0岁
    母牛58,0岁
    母牛59,0岁
    母牛60,0岁
    母牛61,0岁
    母牛62,0岁
    母牛63,0岁
    母牛64,0岁
    母牛65,0岁
    母牛66,0岁
    母牛67,0岁
    母牛68,0岁
    母牛69,0岁
    母牛70,0岁
    [Finished in 0.9s]
     */
    /**
     * 农场一头小母牛
     * 每年生头小母牛
     * 母牛五岁产母牛
     * 二十年上多少牛
     */
    
    //////////////////////////////////////////////////////////////
    /// 母牛
    var Boosy = function() {
        var self = this;
        self.age = 0;
    };
    Boosy.prototype = {};
    Boosy.prototype.constructor = Boosy;
    
    Boosy.prototype.live = function() {
        var self = this;
        self.age++;
    };
    
    Boosy.prototype.birthBaby = function() {
        var self = this;
        if (self.age >= 5) {
            return new Boosy();
        };
        return null;
    };
    
    
    //////////////////////////////////////////////////////////////
    /// 农场
    var Farm = function() {
        var self = this;
        self.boosies = [];
    };
    Farm.prototype = {};
    Farm.prototype.constructor = Farm;
    
    Farm.prototype.add = function(boosy) {
        var self = this;
        self.boosies.push(boosy);
    };
    
    Farm.prototype.runBussiness = function() {
        var self = this;
        var pool = [];
        self.boosies.forEach( function(element, index) {
            var boosyBaby = element.birthBaby();
            if(boosyBaby){
                pool.push(boosyBaby);
            };
            element.live();
        });
        
        pool.forEach( function(element, index) {
            self.boosies.push(element);
        });
        pool = [];
    };
    
    Farm.prototype.count = function() {
        var self = this;
        console.log("农场有"+self.boosies.length+"只小母牛");
        self.boosies.forEach( function(element, index) {
            console.log('母牛'+index+","+element.age+"岁");
        });
    };
    
    
    
    
    //////////////////////////////////////////////////////////////
    // 测试
    
    var farm = new Farm();
    farm.add(new Boosy());
    
    for (var i = 0; i < 20; i++) {
        farm.runBussiness();
    };
    
    farm.count();
    
    /**
     * [Decode error - output not utf-8]
    农场有71只小母牛
    母牛0,20岁
    母牛1,14岁
    母牛2,13岁
    母牛3,12岁
    母牛4,11岁
    母牛5,10岁
    母牛6,9岁
    母牛7,8岁
    母牛8,8岁
    母牛9,7岁
    母牛10,7岁
    母牛11,7岁
    母牛12,6岁
    母牛13,6岁
    母牛14,6岁
    母牛15,6岁
    母牛16,5岁
    母牛17,5岁
    母牛18,5岁
    母牛19,5岁
    母牛20,5岁
    母牛21,4岁
    母牛22,4岁
    母牛23,4岁
    母牛24,4岁
    母牛25,4岁
    母牛26,4岁
    母牛27,3岁
    母牛28,3岁
    母牛29,3岁
    母牛30,3岁
    母牛31,3岁
    母牛32,3岁
    母牛33,3岁
    母牛34,2岁
    母牛35,2岁
    母牛36,2岁
    母牛37,2岁
    母牛38,2岁
    母牛39,2岁
    母牛40,2岁
    母牛41,2岁
    母牛42,2岁
    母牛43,1岁
    母牛44,1岁
    母牛45,1岁
    母牛46,1岁
    母牛47,1岁
    母牛48,1岁
    母牛49,1岁
    母牛50,1岁
    母牛51,1岁
    母牛52,1岁
    母牛53,1岁
    母牛54,1岁
    母牛55,0岁
    母牛56,0岁
    母牛57,0岁
    母牛58,0岁
    母牛59,0岁
    母牛60,0岁
    母牛61,0岁
    母牛62,0岁
    母牛63,0岁
    母牛64,0岁
    母牛65,0岁
    母牛66,0岁
    母牛67,0岁
    母牛68,0岁
    母牛69,0岁
    母牛70,0岁
    [Finished in 0.9s]
     */
    View Code
  • 相关阅读:
    浅谈独立使用NDK编译库文件(Android)
    Ubuntu 13.04 安装使用clang
    一道TOPK问题
    exp-00091 oracle错误的解决办法
    win32多线程程序设计笔记(第四章下)
    数据库索引的实现原理 (转)
    [置顶] linux常用命令手册
    ZigBee研究之旅(二)
    java中length,length(),size()区别
    浅谈href=#与href=javascript:void(0)的区别
  • 原文地址:https://www.cnblogs.com/Again/p/5284859.html
Copyright © 2011-2022 走看看