LoginSignup
15
15

More than 5 years have passed since last update.

プログラミング言語Javaでカップ焼きそばの作り方を書いてみた

Last updated at Posted at 2016-05-28

Java 8の練習がてら書いてみました。

元ネタ

もしも村上春樹が『算数の問題』や『カップ焼きそばの説明』を書いたら→文体の絶妙なウザさが笑えると好評 - Togetterまとめ
http://togetter.com/li/975455

ソース

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.パック入り);
        }
    }
}

実行結果

注意:実際に実行するときはタイマーがウザいので、Thread.sleep()の数字を適当に小さくしてください。

 $ 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
手元にあるもの:

動作環境

Java 8で動作確認。コンパイルも成功しました。

$ 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

補足

  • 細かいネタを入れたかったですが、力尽きました。
  • バグがあればコメント欄かプルリクで。
  • ネタ的なツッコミがあったら、各自修正して書いてください。
  • 他言語でのネタ歓迎。

以上です。

15
15
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
15