見出し画像

時間芸術としての天丼(190228)

本日の日報記です。

8時:
起床。
前日に「6時に起きるぞ!」って言って6時に起きたのにこれだから、もう不可能なんだと思う。この愛おしい起床後の睡魔を抱きしめながら、俺は生きていく。

10時:
出社。
某社のとこに検証行く前にシステムの修正。結局よくわからなくなる。
数時間かけてシステムの挙動を予想して修正してという流れだけど、散々悩んだ末に結局設定やコードを数行変えるだけだったりするだけで済むことが多いので、流れを把握するまで下手にいじらない方がいいなぁ、という学び。(余計なことしてわからなくなって一部バグってしまったので反省...)

13時:
現地到着。
環境の違いでわけわからんトラブルが続出。
USBデバイスをPCに繋ぎすぎたりするとViveがおかしくなるという症状にエンカウント。「USBのリソースが足りません」みたいなエラー、初めて見た。

21時:
帰宅。
どろろを見る。

23時:
ベースを引っ叩く。
近いうちにオーディオインターフェース買って録音するぞ。

24時:
C#のお勉強。自販機プログラムを設計してみることにした。

1.自販機に在庫を補充する。
2.人間がお金を入れる。
3.自販機が購入可能な品物をリストアップする。
4.人間がボタンを押す。
5.自販機が飲み物を出す。

みたいな流れを作る。
考えられる要件と拡張ポイントとかを箇条書きすると、
- コカ・コーラとかアサヒとか、複数種類の自販機が存在するはず。
- それぞれ、何を何種類売ってるかは自販機による。
- お金を受け取った時、「その金額と在庫数」で買えるやつが違う。
- 自社製の飲み物しか売らない。
- 「消費者クラス」が「自販機クラス」から購入するとき、そいつは自販機の実装クラスに依存しちゃいけない。(そいつは自販機以外でも買い物するはずだから。消費者の購入メソッドは「対象に金を払って、その対象から物を受け取る」流れのみを表さなきゃいけないはず)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class VendingMachineSample : MonoBehaviour
{

	
}

abstract class VendingMachine : IReceiveMoney
{
    public abstract Beverage VendBeverage(string name);

    public abstract void ReceiveMoney(int money);
}

class CocaColaVendingMachine : VendingMachine
{
    private int _money;

    public override Beverage VendBeverage(string name)
    {
        return new CocaColaBeverage(name);
    }
}

abstract class Beverage
{
    string _name;

    public Beverage(string name)
    {
        _name = name;
    }

    public abstract void Open();
}

class CocaColaBeverage : Beverage
{
    public CocaColaBeverage(string n) : base(n)
    {

    }

    public override void Open()
    {
        
    }
}

abstract class Consumer
{

}

public interface IReceiveMoney
{
    void ReceiveMoney(int money);
}

時間切れで今日はここまで。正直試行錯誤しながらって感じなので数日は迷走しそう。おやすみなさい。

この記事が気に入ったらサポートをしてみませんか?