sky-y
5/28/2016 - 5:50 AM

プログラミング言語Javaでカップ焼きそばの作り方を書いてみた ref: http://qiita.com/sky_y/items/0567f9888c31b04ba6d4

プログラミング言語Javaでカップ焼きそばの作り方を書いてみた ref: http://qiita.com/sky_y/items/0567f9888c31b04ba6d4

$ java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
$ javac -version
javac 1.8.0_45
 $ java CupYakisoba
【作る前】
容器の中身:
ソース, true
ふりかけ, true
かやく, true
スパイス, true
麺, false
手元にあるもの:

【①ソース、ふりかけ、スパイスを取り出しておき、かやくを麺の上にあけ熱湯を注ぐ。】
容器の中身:
麺, false
かやく, false
お湯, false
手元にあるもの:
ソース, true
ふりかけ, true
スパイス, true

【②3分たったら両手でフタを押さえ、湯出口よりお湯を捨てる。】
容器の中身:
麺, false
かやく, false
手元にあるもの:
ソース, true
ふりかけ, true
スパイス, true

【作った後】
容器の中身:
麺, false
かやく, false
ソース, false
ふりかけ, false
ソース, false
スパイス, false
手元にあるもの:
import java.util.*;

class PackedContent {
    public String 中身;
    public boolean パック入り;

    PackedContent(String 中身, boolean パック入り) {
        this.中身 = 中身;
        this.パック入り = パック入り;
    }
}

public class CupYakisoba {
    static List<PackedContent> 容器;
    static List<PackedContent> 手元;

    static PackedContent ソース;
    static PackedContent ふりかけ;
    static PackedContent かやく;
    static PackedContent スパイス;
    static PackedContent 麺;
    static PackedContent お湯;

    public static void main(String[] args){

        ソース = new PackedContent("ソース", true);
        ふりかけ = new PackedContent("ふりかけ", true);
        かやく = new PackedContent("かやく", true);
        スパイス = new PackedContent("スパイス", true);
        麺 = new PackedContent("麺", false);
        お湯 = null;

        容器 = new ArrayList<PackedContent>();
        容器.add(ソース);
        容器.add(ふりかけ);
        容器.add(かやく);
        容器.add(スパイス);
        容器.add(麺);
        手元 = new ArrayList<PackedContent>();

        // チェック
        System.out.println("【作る前】");
        System.out.println("容器の中身:");
        for(PackedContent e : 容器) {
            System.out.println(e.中身 + ", " + e.パック入り);
        }
        System.out.println("手元にあるもの:");
        for(PackedContent e : 手元) {
            System.out.println(e.中身 + ", " + e.パック入り);
        }
        System.out.println("");

        // ①ソース、ふりかけ、スパイスを取り出しておき、かやくを麺の上にあけ熱湯を注ぐ。
        容器.remove(ソース);
        手元.add(ソース);
        容器.remove(ふりかけ);
        手元.add(ふりかけ);
        容器.remove(スパイス);
        手元.add(スパイス);

        容器.remove(かやく);
        かやく.パック入り = false;
        容器.add(かやく);

        お湯 = new PackedContent("お湯", false);
        容器.add(お湯);

        // チェック
        System.out.println("【①ソース、ふりかけ、スパイスを取り出しておき、かやくを麺の上にあけ熱湯を注ぐ。】");
        System.out.println("容器の中身:");
        for(PackedContent e : 容器) {
            System.out.println(e.中身 + ", " + e.パック入り);
        }
        System.out.println("手元にあるもの:");
        for(PackedContent e : 手元) {
            System.out.println(e.中身 + ", " + e.パック入り);
        }
        System.out.println("");

        // ②3分たったら両手でフタを押さえ、湯出口よりお湯を捨てる。
        try{
            Thread.sleep(180000); // 3分 = 60 * 3 * 1000 ミリ秒
            容器.remove(お湯);
        } catch(Exception e) {}

        // チェック
        System.out.println("【②3分たったら両手でフタを押さえ、湯出口よりお湯を捨てる。】");
        System.out.println("容器の中身:");
        for(PackedContent e : 容器) {
            System.out.println(e.中身 + ", " + e.パック入り);
        }
        System.out.println("手元にあるもの:");
        for(PackedContent e : 手元) {
            System.out.println(e.中身 + ", " + e.パック入り);
        }
        System.out.println("");

        // ③ソースを麺によく混ぜ合わせ、ふりかけ・スパイスをふりかけて出来上がり。
        手元.remove(ソース);
        ソース.パック入り = false;
        容器.add(ソース);
        // TODO 混ぜるメソッドは面倒なので省略。誰か書いて。

        手元.remove(ふりかけ);
        ふりかけ.パック入り = false;
        容器.add(ふりかけ);

        手元.remove(ソース);
        ソース.パック入り = false;
        容器.add(ソース);

        手元.remove(スパイス);
        スパイス.パック入り = false;
        容器.add(スパイス);

        // チェック
        System.out.println("【作った後】");
        System.out.println("容器の中身:");
        for(PackedContent e : 容器) {
            System.out.println(e.中身 + ", " + e.パック入り);
        }
        System.out.println("手元にあるもの:");
        for(PackedContent e : 手元) {
            System.out.println(e.中身 + ", " + e.パック入り);
        }
    }
}