• 投稿日:2022年02月04日 22時01分11秒
  • 更新日:2022年02月15日 16時05分21秒
「ビールは2杯まで」を守れない原因をプログラミングして考えて見た

「ビールは2杯まで」を守れない原因をプログラミングして考えて見た

突然ですが、私は大のビール好きです。何時間もひたすらビールを飲んでました。
ですが、こんな私にも変化が起きました。

次の日がきつい!!

まじで30超えてから二日酔いとか以上に体がだるいんです。
頭は回らないし、動くのきついし、ちょこちょこ『うっっ』ってなるし。

この話をすると結構「ビールばっかりだからだ」って言われるんです。
なので毎回ビールは2杯までって決めてるんですが、なぜかいつも守れません。

なぜなのか。
エンジニアらしく行動をプログラミングしてみました。

class izakaya{
    
    drinkName;
    limit;
    limit_drinkName;
    count;
    status;

    /**
     * 飲みにいくと決めたとき
     * @param {*} limit 
     * @param {*} _name 
     */
    constructor(limit = 2, name = "ビール"){
        this.limit_drinkName = name;
        this.limit = limit;
        this.status = true;
        this.count = 0;
        this.drinkName = this.limit_drinkName;
    }

    /**
     * 自分から注文する場合
     * @param {*} drink 
     * @returns 
     */
    call_salesperson(drink){

        if(drink == ""){
            alert("ご注文内容をテキストにご入力ください。");
            return;
        }

        if(this.status == true){

            if(this.limit <= this.count && this.limit_drinkName == drink){
                alert(this.limit_drinkName + "は最初の" + this.limit + "杯目までしか許可されてません。¥r¥n飲み物を変えましょう。");
                return;
            }
            this.drinkName = drink; // 飲み物を変更
        }
        return this.order(this.drinkName, 1, true); // 飲み物を頼み、飲んだ数も計上する
    }

    /**
     * 不意に定員から飲み物を聞かれたとき
     * @returns 
     */
    called_nextDrink(){
        return this.order(); // 急いで注文するので適当に注文
    }

    /**
     * 注文する
     */
    order(drink = "", addCount = 0, status = false){
        if(status == false){
            this.status = status;
        }
        if(drink != ""){
            this.drinkName = drink;
        }
        this.count = this.count + addCount;
        return this.drinkName;
    }

}

そうだ!店員さんに「お飲み物お聞きしましょうか」とか「よろしければ次の飲み物お聞きしましょうか」とか(called_nextDrink())言われると焦ってつい「それじゃ、お代わりで」って言っちゃうんです。

普通に頼む分(call_salesperson(drink))には管理できるんですけど、一回狂っちゃうともう歯止めが効かなくて、、、

タブレットで頼むような店に行けばいいのはわかってるんですけどね。
個人のお店でTHE・居酒屋って感じのお店がすっごい魅力的に感じちゃうんですよね。

みなさんはお酒とうまく付き合ってください。

WEB AR開発 A-Frame AR.js
JSアニメーション:文字の登場
画面右下固定のスクロールボタン
ajax通信でWordPressの記事情報を取得する
要素を取得・操作する
Tabulatorについて
モーダルな画面を表示をする
ある要素が画面に表示されたら処理を実行する