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