The play No Exit by Jean-Paul Sartre is an idea of what hell is like. As their eternal punishment, three strangers are trapped in a room together forever. As Joseph Garcin, your goal is to figure out information about the other characters, and, ultimately, what their sins were and how they became your fellow residence in hell.
The showcase player uses a modified version of Processing.js in combination with jsweet to let students program their apps in Java code while still allowing for browser support.
Content created by students is scaled to fit the showcase frame while maintaining aspect ratio and cursor position. This is why some projects may appear blurry in fullscreen, or why some small details may not be visible on a small screen
<iframe width='500px' height='400px' src='https://nest.ktbyte.com/nest#5971' allowfullscreen></iframe>
// Screen 0 String url = "http://thegraphicsfairy.com/wp-content/uploads/2012/12/frenchychairSilhouette-graphicsfairy21.jpg"; PImage chair; int chairSize = 200; String url1= "http://thegraphicsfairy.com/wp-content/uploads/2012/12/frenchychairSilhouette-graphicsfairy1.jpg"; PImage chair1; int chair1Size = 200; String url2 = "https://s-media-cache-ak0.pinimg.com/564x/0d/e8/55/0de8552c310e22d5cf1f3f5d455d25c5.jpg"; PImage chair2; int chair2Size = 300; String url3 = "https://image.freepik.com/free-icon/knife-silhouette-in-diagonal-position_318-60982.png"; PImage knife; int knifeSize = 50; String url4 = "https://d30y9cdsu7xlg0.cloudfront.net/png/23227-200.png"; PImage bell; int bellSize = 50; String url5 = "http://www.clipartbest.com/cliparts/KTn/798/KTn798qTq.jpeg"; PImage Garcin; String urlInez = "http://www.clipartqueen.com/image-files/female-silhouettes-woman-with-long-hair.jpg"; PImage Serrano; int screen = 0; boolean option = false; int box = 0; String narration = "You look around. You're in a room by yourself, with no windows.\nA bell and a paper knife sit on a mantel.\nThere are three chairs in the center.\n Press the letter o to show and hide the options bar."; boolean checkBar = false; Characters Joseph = makeCharacters("Joseph Garcin", "Rio de Janeiro, Brazil", "Journalist for a pacifist newspaper", "Shot twelve times in the chest", true); Characters Inez = makeCharacters("Inez Serrano", "An apartment room on earth", "Postal worker", "Gas stove leak", false); Characters Estelle = makeCharacters("Estelle Rigault", "Paris, France", "Member of the upper class", "Pneumonia", false); Characters current = Joseph; int numb = 1; String [] options = { "check", "try the door", "pick up the knife", "ring the bell" }; void setup() { size (1300, 750); chair = loadImage(url); chair1 = loadImage(url1); chair2 = loadImage(url2); knife = loadImage(url3); bell = loadImage(url4); Garcin = loadImage(url5); Serrano = loadImage(urlInez); } void draw() { if (screen == 0) { draw0(); } if (screen == 1) { draw1(); } } void draw0() { background(0); text("One Room", 900, 400); textSize(20); text("Based off of the one-act play No Exit by Jean-Paul Sartre", 500, 450); textSize(30); } // Screen 1 void draw1() { background(255); textSize(16); fill(0); text(narration, 30, 650); image(chair, 200, 150, 150, 250); image(chair1, 800, 150, 150, 250); image(chair2, 400, 30, 350, 350); rect(1200, 100, 50, 600); fill(255); ellipse(1230, 400, 15, 15); rect(360, 450, 400, 100); image(knife, 370, 470, 60, 60); image(bell, 670, 470, 60, 60); optionBar(); characterBox(); image(Garcin, 800, 400); if (numb >= 2) { image(Serrano, 1100, 410, 80, 260); } } void characterBox() { if (option && checkBar) { fill(255); rect(360, 40, 430, 560); fill(0); textSize(15); if (current.showname) { text ("Name: " + current.name, 370, 100); } else { text("Name: ???", 370, 100); } if (current.showformer_Residency) { text ("Former Residency: " + current.former_Residency, 370, 130); } else { text("Former Residency: ???", 370, 130); } if (current.showformer_Occupation) { text ("Former Occupation: " + current.former_Occupation, 370, 160); } else { text("Former Occupation: ???", 370, 160); } if (current.showCause_Of_Death) { text ("Cause of Death: " + current.Cause_Of_Death, 370, 190); } else { text ("Cause of Death: ???", 370, 190); } } } void optionBar() { if (option) { fill (0); rect(10, 100, 150, 500); fill (255); rect(25, 120, 120, 50); fill(0); text(options[0], 70, 150); fill(255); rect(25, 240, 120, 50); fill(0); textSize(12); text(options[1], 45, 270); fill(255); rect(25, 360, 120, 50); fill(0); textSize(12); text(options[2], 31, 390); fill(255); rect(25, 480, 120, 50); fill(0); text(options[3], 43, 510); fill (0); ellipse(33, 120 * box + 145, 10, 10); } } void keyPressed() { if (screen == 0) { screen = 1; } if (key == 'o') { option = !option; box = 0; checkBar = false; } if (keyCode == DOWN) { if (box < 3) { box ++; } } else if (keyCode == UP) { if (box > 0) { box --; } } if (key == '\n') { if (box == 0) { checkBar = !checkBar; if (checkBar) { if (numb == 1) { narration = "You think. You start to remember information about your past life."; } if (numb == 2) { narration = "You try to access the woman's history, but do not have enough information yet.\nYou shall find other means to force her to confess her motives, or the consequences may be dire..."; } } } if (box == 1) { narration = "You try the door. The door is locked from the outside."; if (numb == 2) { narration = "You introduce yourself. \"My name is Joseph Garcin, Mrs...\" \nThe woman interrupts you.\n \"Don't refer to me as a Mrs. I'm unmarried. My name is Inez. Inez Serrano.\""; } } if (box == 2) { narration = "You examine the knife. The handle is made out of wood. The point is relatively sharp."; if (numb == 2) { narration = "You gesture to the chair politely. \nBefore either of you can open your mouth, however, the valet enters with \na blonde woman at the doorway."; } } if (box == 3) { narration = "The bell rings. The valet enters with a woman with short brown hair.\n \n \"Who are you?\" the woman asks harshly."; if (numb == 2) { narration = "You return to yourself and give her space."; } if (numb < 2) { numb ++; options[1] = "say hello"; options[2] = "offer her a chair"; options[3] = "ignore"; current = Inez; } } } else { checkBar = false; } } class Characters { String name; String former_Residency; String former_Occupation; String Cause_Of_Death; PImage Profile; boolean showname = false; boolean showformer_Residency = false; boolean showformer_Occupation = false; boolean showCause_Of_Death = false; } Characters makeCharacters(String name, String former_Residency, String former_Occupation, String Cause_Of_Death, boolean showinfo) { Characters c = new Characters(); c.name = name; c.former_Residency = former_Residency; c.former_Occupation = former_Occupation; c.Cause_Of_Death = Cause_Of_Death; c.showname = showinfo; c.showformer_Residency = showinfo; c.showformer_Occupation = showinfo; c.showCause_Of_Death = showinfo; return c; }