Mô phỏng tính nhẩm nhanh một số nhân với 99

  • Code Vui
  • 03/10/2020
  • Lượt xem: 2,483

Tiếp tục trong loạt bài các phép tính nhẩm. Hôm nay tôi mô phỏng phép toán tính nhẩm nhanh một số 2 chữ số với 99. Về mặt lập trình tôi vẫn áp dụng mô hình design pattern Strategy mà mình đã giới thiệu ở bài viết Mô phỏng phép tính nhân 2 số bé hơn và gần bằng 100

Tạo ngẫu nhiên số có 2 chữ số trong phép tính nhân với 99
Mã nguồn mô phỏng phép tính bằng javascript
var ABx99 = function ()
{
    $.extend(this, new MathX());

    var number1__1, number1__1_length;
    var number1__1_1, number1__1_2;
    var n9_number1__1_1, n9_number1__1_2;        

    this.onCreateNumber = function ()
    {
        this.number1 = Core.random(100);
        while (this.number1 < 10) this.number1 = Core.random(100);
        
        this.number2 = 99;

        number1__1 = this.number1 - 1;
        number1__1_length = (number1__1 + "").length;

        number1__1_1 = (number1__1 + "").charAt(0);
        number1__1_2 = (number1__1 + "").charAt(1);

        n9_number1__1_1 = 9 - number1__1_1;
        n9_number1__1_2 = 9 - number1__1_2;
    }

    this.onCreateScripts = function (scripts)
    {            
        for (var i = 0; i <= 14; i++)
            scripts.push(this["createScript" + i]());
    }

    this.createScript0 = function ()
    {
        var $this = this; return function ()
        {
            $this.fillQuestion("data-step-1-result", number1__1);
            $this.balance(1, 3, number1__1_length);
            $this.mainForm.find("[data-step=1]").removeClass("hide");
        };
    }
    this.createScript1 = function () { var $this = this; return function () { $this.fillNumber("data-step-1-input-1", $this.number1); }; };
    this.createScript2 = function () { var $this = this; return function () { $this.fillNumber("data-step-1-input-2", 1); }; };
    this.createScript3 = function () { var $this = this; return function () { $this.fillNumber("data-step-1-result", number1__1); }; };
    this.createScript4 = function ()
    {
        var $this = this;
        return function ()
        {
            $this.fillNumber("data-result", number1__1 * 100, function (span, length, index)
            {
                switch (index)
                {
                    case 0: span.addClass("bg-crimson text-white"); break;
                    case 1: span.addClass("bg-danger text-white"); break;
                    case 2:
                    case 3: span.html("?"); break;
                }                    
            });
        };
    }
    this.createScript5 = function ()
    {
        var $this = this; return function ()
        {
            $this.fillQuestion("data-step-2-result", n9_number1__1_1);
            $this.balance(2, 2, 1);
            $this.mainForm.find("[data-step=2]").removeClass("hide");
        };
    };
    this.createScript6 = function () { var $this = this; return function () { $this.fillNumber("data-step-2-input-1", 9); }; };
    this.createScript7 = function () { var $this = this; return function () { $this.fillNumber("data-step-2-input-2", number1__1_1); }; };
    this.createScript8 = function () { var $this = this; return function () { $this.fillNumber("data-step-2-result", n9_number1__1_1); }; };
    this.createScript9 = function ()
    {
        var $this = this;
        return function ()
        {
            $this.fillNumber("data-result", number1__1 * 100 + n9_number1__1_1 * 10, function (span, length, index)
            {
                switch (index)
                {
                    case 2: span.addClass("bg-sienna text-white"); break;
                    case 3: span.html("?"); break;
                }
            });
        };
    }
    this.createScript10 = function ()
    {
        var $this = this; return function ()
        {
            $this.fillQuestion("data-step-3-result", n9_number1__1_2);
            $this.balance(3, 2, 1);
            $this.mainForm.find("[data-step=3]").removeClass("hide");
        };
    };
    this.createScript11 = function () { var $this = this; return function () { $this.fillNumber("data-step-3-input-1", 9); }; };
    this.createScript12 = function () { var $this = this; return function () { $this.fillNumber("data-step-3-input-2", number1__1_2); }; };
    this.createScript13 = function () { var $this = this; return function () { $this.fillNumber("data-step-3-result", n9_number1__1_2); }; };
    this.createScript14 = function ()
    {
        var $this = this;
        return function ()
        {
            $this.fillNumber("data-result", number1__1 * 100 + n9_number1__1_1 * 10 + n9_number1__1_2, function (span, length, index)
            {
                switch (index)
                {
                    case 3: span.addClass("bg-indianred text-white"); break;                        
                }
            });
        };
    }
};

var pageMathX = new PageMathX();
pageMathX.mathX = new ABx99();
pageMathX.start();

Sơn 20

Nếu bạn thấy nội dung chia sẻ này có ích với bạn hãy Donate để tạo động lực cho tôi viết các bài viết tiếp theo nhé. Cảm ơn nhiều !!!!

Bài viết liên quan

Mô phỏng phép tính nhân 2 số bé hơn và gần bằng 100

Phương pháp tính nhẩm siêu nhanh với 2 số bé hơn và gần bằng 100.

18/09/2020 Xem chi tiết
Mô phỏng phương pháp tính nhanh nhân 2 số có cùng hàng chục

Tính nhẩm khi nhân 2 số cùng hàng chục một cách nhanh gọn

07/09/2020 Xem chi tiết

Bài viết cùng chuyên mục

Code javascript mô phỏng 50 xe của một xí nghiệp taxi chạy online trên bản đồ

Mô phỏng hiển thị xe chạy theo thời gian thực, sử dụng thư viện bản đồ leafletjs.

15/11/2020 Xem chi tiết
Code mô phỏng lộ trình của xe taxi chạy trên bản đồ

Dùng thư viện leafletjs để thay cho google map api mô phỏng lộ trình xe chạy.

04/11/2020 Xem chi tiết
Mô phỏng cách tính nhanh từ năm dương lịch sang năm âm lịch

Tính nhanh năm âm lịch từ năm 1900 tới nay gồm 2 bước nhẩm tính Can, Chi. Tôi 1983 nhẩm nhanh là Quý Hợi

25/10/2020 Xem chi tiết
Hướng dẫn và mô phỏng thuật toán sắp xếp Selection Sort

Sắp xếp chọn là một thuật toán sắp xếp đơn giản, dựa trên việc so sánh tại chỗ.

17/10/2020 Xem chi tiết
Hướng dẫn và mô phỏng thuật toán sắp xếp Insertion Sort

Thuật toán dựa trên ý tưởng xếp bài khi lần lượt di chuyển phần tử về bên trái

06/10/2020 Xem chi tiết
Hướng dẫn và mô phỏng thuật toán sắp xếp Quick Sort

Thực hiện phân chia mảng thành 2 mảng nhỏ và sắp xếp so với một phần tử chốt.

04/10/2020 Xem chi tiết
{"nalias":"mo-phong-tinh-nham-nhanh-mot-so-nhan-voi-99","lang":"2","cattype":"0","catId":"9","UrlEngine":"UrlNewsEngine","site":"1"}