Arm - Mouth - Zygote
Veröffentlicht am 30.07.2020
In der achten Folge der sechsten Staffel von Taskmaster wird ein Spiel gespielt, das erstaunlich schwierig ist, dafür, dass es so simpel ist. Der Spielleiter sagt die Namen von drei Körperteilen und die Spielenden müssen dann ein Post-It möglichst schnell auf das Körperteil kleben, dass alphabetisch in der Mitte steht. Das Video und ein kleines Programm, dass Listen von Triplets von Körperteilen ausgibt, gibt’s unten.
Ich habe ein kleines Programm geschrieben. Es ist nicht sehr hochentwickelt, es werden einfach drei Körperteile aus der List zufällig gewählt, was bedeutet, dass Körperteile in der Mitte der alphabetischen Sortierung häufiger die Lösung sind, es wird auch nicht geprüft, ob Körperteile überlappen.
package de.sebastiantschmidt.armmouthzygote;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Stream;
public class Main {
private static int nRounds = 100;
public static void main(String[] args) {
List<String> bodyparts = getEnglishBodyParts();
System.out.println(bodyparts.size() + " entries, " + bodyparts.stream().distinct().count() + " distinct entries");
for(int round = 0; round < nRounds; round++) {
Collections.shuffle(bodyparts);
String middle = getMiddleEntry(bodyparts.get(0), bodyparts.get(1), bodyparts.get(2));
System.out.println(String.format("%3d", round+1)
+ String.format("%-16s", (bodyparts.get(0).equals(middle) ? ">" + bodyparts.get(0) + "<" : " " + bodyparts.get(0) + " "))
+ String.format("%-16s", (bodyparts.get(1).equals(middle) ? ">" + bodyparts.get(1) + "<" : " " + bodyparts.get(1) + " "))
+ String.format("%-16s", (bodyparts.get(2).equals(middle) ? ">" + bodyparts.get(2) + "<" : " " + bodyparts.get(2) + " ")) );
}
}
private static String getMiddleEntry(String string1, String string2, String string3) {
return Stream.of(string1, string2, string3).sorted().skip(1).findFirst().orElseThrow();
}
private static List<String> getEnglishBodyParts() {
ArrayList<String> bodyparts = new ArrayList<String>();
bodyparts.add("arm");
bodyparts.add("mouth");
bodyparts.add("knee");
bodyparts.add("knee cap");
bodyparts.add("eye");
bodyparts.add("foot");
bodyparts.add("leg");
bodyparts.add("fingernails");
bodyparts.add("hand");
bodyparts.add("stomach");
bodyparts.add("toes");
bodyparts.add("shoulders");
bodyparts.add("tongue");
bodyparts.add("nose");
bodyparts.add("hair");
bodyparts.add("thumb");
bodyparts.add("index finger");
bodyparts.add("middle finger");
bodyparts.add("ring finger");
bodyparts.add("lips");
bodyparts.add("head");
bodyparts.add("ear");
bodyparts.add("eyebrow");
bodyparts.add("forearm");
bodyparts.add("elbow");
bodyparts.add("heel");
bodyparts.add("calf");
bodyparts.add("neck");
bodyparts.add("palm");
bodyparts.add("wrist");
bodyparts.add("chin");
bodyparts.add("ankle");
bodyparts.add("shin");
bodyparts.add("armpit");
bodyparts.add("biceps");
bodyparts.add("spine");
bodyparts.add("sternum");
bodyparts.add("forehead");
bodyparts.add("toenail");
bodyparts.add("belly button");
bodyparts.add("thigh");
bodyparts.add("umbilicus");
bodyparts.add("navel");
bodyparts.add("pinky finger");
bodyparts.add("pinky toe");
bodyparts.add("sole");
bodyparts.add("abdomen");
return bodyparts;
}
}
Eine Beispielhafte Ausgabe von 100 Runden wäre dann
1 knee sternum >shin<
2 toes >nose< forearm
3>leg< tongue forehead
4 foot >palm< shin
5>hair< toes arm
6>sternum< palm toes
7>forehead< palm eye
8 umbilicus >shin< ankle
9>elbow< hand abdomen
10 toes heel >nose<
11>heel< thigh calf
12 hand middle finger >index finger<
13>tongue< umbilicus mouth
14 umbilicus armpit >ear<
15 neck wrist >tongue<
16 foot wrist >nose<
17 thumb >palm< knee
18 middle finger >ear< armpit
19>heel< toes eye
20 toenail >pinky finger< hand
21 knee cap eyebrow >index finger<
22 knee cap >knee< eye
23 toenail navel >sole<
24 abdomen >eye< shin
25 index finger arm >hair<
26 wrist >shoulders< biceps
27 toenail >shin< forehead
28 sole >middle finger< heel
29 eyebrow shoulders >pinky toe<
30>leg< ear lips
31 tongue hand >pinky finger<
32 fingernails shoulders >hair<
33>elbow< arm heel
34 forehead tongue >toenail<
35>shoulders< belly button sternum
36 umbilicus >index finger< eyebrow
37 nose >head< armpit
38 tongue eye >forehead<
39 eye nose >forehead<
40 ankle umbilicus >neck<
41>mouth< umbilicus eye
42 forehead umbilicus >shin<
43 arm >eye< eyebrow
44>heel< hand shin
45 eyebrow >hair< pinky toe
46 toes >foot< biceps
47 neck biceps >heel<
48 middle finger stomach >navel<
49 lips >hand< elbow
50 fingernails thumb >stomach<
51 ankle >shin< thigh
52>toes< tongue knee
53>knee cap< eyebrow palm
54 arm >middle finger< pinky finger
55>foot< mouth biceps
56 navel elbow >fingernails<
57 palm >ring finger< stomach
58 chin >head< index finger
59>shoulders< sternum elbow
60>ear< pinky toe biceps
61 calf >spine< stomach
62>head< index finger chin
63 leg >index finger< hair
64 tongue >spine< elbow
65>sole< stomach middle finger
66 thigh >palm< knee
67 mouth >forehead< abdomen
68>biceps< abdomen forehead
69 wrist belly button >palm<
70>knee< heel knee cap
71 toenail forehead >nose<
72>ring finger< thumb index finger
73>navel< ankle spine
74>navel< wrist calf
75>middle finger< wrist index finger
76>shoulders< umbilicus heel
77 biceps >knee< navel
78>sole< toenail pinky finger
79 tongue >toes< shin
80 spine ear >knee<
81 toenail >lips< forehead
82 shin toenail >thumb<
83 ankle >elbow< heel
84 tongue fingernails >thigh<
85>lips< leg sole
86>eye< knee elbow
87 middle finger >belly button< arm
88 knee cap wrist >stomach<
89 wrist >toenail< knee cap
90>heel< belly button tongue
91 umbilicus >spine< knee cap
92>navel< stomach elbow
93>ear< umbilicus arm
94 pinky finger >head< elbow
95>forearm< biceps nose
96 calf >spine< umbilicus
97 thumb abdomen >neck<
98 head >leg< umbilicus
99 toenail >pinky toe< forearm
100 elbow thigh >mouth<
Zygote ist übrigens eine Zelle, die bei der Vereinigung einer Eizelle und eines Spermiums entsteht. Zum Glück so weit hinten im Alphabet, dass sie nie die Lösung ist.