//First words -- source pronouns String[] startPronoun = // First word of trigram {"I","We","You"}; //Bigrams String[][] Bigrams = { // Second word of bigram for I {"have","am","was","do","can","think","would","will"}, // Second word of bigram for We {"have","are","can","will","do","were","had","need"}, // Second word of bigram for You {"can","are","have","will","do","want","need","know"} }; // All Trigrams // 3D Array String[][][] Trigrams = { { // Third word of trigram for I have {"a","to","not","seen","the","never","had","found"}, // Third word of trigram for I am {"not","a","sure","the","going","looking","very","in"}, // Third word of trigram for I was {"not","a","in","going","just","able","very","so"}, // Third word of trigram for I do {"not","have","know","think","believe","it","this","like"}, // Third word of trigram for I can {"not","see","do","tell","say","only","be","find"}, // Third word of trigram for I think {"it","that","I","the","you","we","they","he"}, // Third word of trigram for I would {"like","not","have","be","say","love","recommend","also"} }, { // Third word of trigram for We have {"to","a","the","been","not","no","seen","had"}, // Third word of trigram for We are {"not","going","in","all","able","to","the","a"}, // Third word of trigram for We can {"not","do","help","get","see","make","be","use"}, // Third word of trigram for We will {"be","not","have","alert","see","send","search","do"}, // Third word of trigram for We do {"not","have","it","this","to","know","with","in"}, // Third word of trigram for We were {"not","able","in","going","to","all","told","there"}, // Third word of trigram for We had {"a","to","the","not","been","no","an","some"}, // Third word of trigram for We need {"to","a","the","is","more","your","not","some"} } }; // BEGIN NAPLES SPECIFIC ARRAYS //PLACE NAMES //Names for places String[][] placeAr = { // Place 0 Areas related to Naples or nearby {"Naples","Napoli","Neapolis","Italy","Italia","Campania","Milan","Lazio","Abruzzo","Basilicata","Molise","Calabria","Capodichino Airport","Rome","Sardinia","Sicily","Cagliari","Sardinia","Pompeii","Herculaneum","Vesuvius","Montesanto","the Amalfi Coast","the Bay of Naples","Capri","the Phlegraean Fields","Sorrento"}, // Place 1 Museums in Naples add the {"National Archeological Museum of Naples","Monastary of San Martino","Capodimonte Museum and National Galleries","Museo Archeologico Nazionale di Napoli","Certosa di San Martino","Museo e le Gallerie Nazionali di Capodimonte","Santa Chiara Monastery and Museum","San Severo Chapel Museu","Museo Cappella San Severo","excavations under the Church of San Lorenzo Maggiore","Museum of San Lorenzo Maggiore","Naples Duomo","Basilica Santa Restituta"}, // Place 2 Street names in Naples use Via plus {"San Biago","Tribunali","Duomo","Benedetto Croce","San Gregorio Armeno","Toledo","Tribunali","Sapienza","Poerio","Calabritto","dei Mille","Filangeri","Giulio Cesare"}, // Place 3 Piazza names in Naples use Piazza plus {"San Domenico Maggiore","del Gesu Nuovo","del Plebiscito","della Borsa","Garibaldi","Dante","dei Martiri"} }; //PEOPLE NAMES //Array of Array names for people String[][] peopleAr = { //0 Historical Naples people {"Parthenope","Gennaro","Pulcinella","Nero","Charles I","Giuseppe Garibaldi","Claudius","the Duchess of Malfi","Silvio Berlusconi","Giordano Bruno"}, //1 Historical Naples artists {"Homer","Epicurius","Lucretius","Artemesia Gentileschi","Dante","Virgil","Boccaccio","Petrarch","Giotto","Caravaggio","Salvator Rosa","Bernini","Enrico Caruso"} }; //FOOD AND BEVERAGE //Array of Array names for food and drink String[][] foodAr = { //0 Dishes {"risotto","risotto alla pescatora","gnocchi","polenta","pizza Margherita","pizza di scarole","ragu napoletano","tagliatelle","spaghetti","bucatini","ziti","lasagne","braciole","spaghetti alle vongole","impepata di cozze","spaghetti alla puttanesca","pasta fagioli","paccheri con la zuppa di pesce","pasta con i calamari","parmigiana di melanzane","baccala pizzaiola","rigatoni","manicotti","fettucini primavera","osso buco","saltimbocca alla Romana","casatiello","zeppole","sfogliatelle","struffoli","spumoni","cannoli"}, //1 Drinks served in a glass {"Limoncello","Fragolino","Maraschino","Nochino","Martini","Aperol","Campari","Prosecco","Moscato d'Asti","Bellini","Grappa","Genepi","stregga","Chianti","Pinot Grigio","Aglianico","Valpolicella","Amarone","Nero d'Avola","Taurasis","Barolo","Brunello di Montalcino","Greco di Tufo","Barbera d'Alba","Fiano di Avellino","Greco di Tufo","Lacryma Christi del Vesuvio","Primitivo","Sangiovese","Montepulciano d'Abruzzo","Rosso","Bianco","Asti spumante"}, //2 Coffee drink {"caffè lungo","caffè ristretto","caffè con panna","caffè con zucchero","caffè macchiato","caffè latte","latte macchiato","cappuccino"} }; //VERBS //Verbs that could end a sentence String[] endVerb = {"speak","run","talk","love","wander","mumble","give in","eat","drink","dine","sleep","whine","decide","walk","hide","lose","regret","hope","pray","fail","succeed","travel","forget","forgive","recover"}; //ADJECTIVES //Arrays of adjectives String[][] adjAr = { //0 adjectives used to describe attactions {"peaceful","beautiful","hectic","recommended","quiet","noisy","historical","storied","legendary","banal","mysterious","haunted","romantic","dangerous","whimsical","complex","crowded","empty","run-down","glamourous","overrated","predictable","gorgeous","primitive","elemental","cultured","violent"}, //1 adjectives used to describe people {"happy","sad","forlorn","lonely","frustrated","dissatisfied","lost","anxious","nervous","confused","mysterious","naive","romantic","threatened","angry","contented","foolish","troubled","fed up","hungry","thirsty","swarthy","sexy","unusual","normal","oversexed","excitable","dangerous","intrigued","bored"} }; //CONDITIONS //Arrays of Conditions String[][] conAr = { //Condition 0 humans have a {"yearning","hunger","desire","need","secret","certain sadness","hope","wish","history","passion","kind of lust","hotel room key","list","choice","letter","stroll"}, //Condition 1 humans have to {"eat","see","leave","go to the toilet","make love","drink","get drunk","understand","escape","go","wander","learn","fulfill a prophecy","speak","remain silent","pray","sleep","know","get out","get on with this","say something"}, //Condition 2 humans have not or has not {"eaten","seen such things","departed","been fulfilled","forgotten","been redeemed","understood the mysteries","drunk my fill","been to the musuem","understood","escaped","gone","confessed","learned","seen the miracles","learned Italian","learned to remain quiet","gone native","slept","been away for so long","seen the liquefecation of the blood","recovered"}, //Condition have seen go to place area //Condition 3 humans have the {"time","indigestion","desire","will","general idea","jetlag","sense of history","ennui","vertigo","fire in the belly","thirst","need to learn","map","sense of being very small","guidebook","menu","need to be fulfilled","feeling we are in danger","letter you wrote me"}, //Condition have had should go to food or drink //Condition 4 have found go to place or {"a calling","poverty","great wealth","sublime things","indescribable ecstasy","my soul","nothing","everything here","a wonderful place to sit","a great restaurant","horrible things","popes and princesses","riots in the streets","bodies","cyphers","some clues","hope"}, //Condition 5 to be or not be {"feeling older","happy","satisfied","alone","isolated","foreign","native","nothing","imaginary","real","only this","in love","wandering","free","content","confused","here","just a thought","trapped","scientific","creative","full","searching for something","jealous","fallen","uplifted","only language","dust in the wind","like the birds","infinite","under the mulberry trees","only an echo","misunderstood","unable to understand","sad","lonely","comfortable","alive","still breathing","dead","unknown","anonymous","famous"}, //Condition 6 to be a {"lost soul","judge","waiter","diner","student","teacher","foreigner","street artist","pigeon","collection of thoughts","set of memories","stream of words","lover","wanderer","tourist","notion","seeker","pilgrim","scientist","lost child","fan","troublemaker","criminal","speck of dust","poet","lost child","fallen angel","part of the crowd","gourmand","part of the crowd","sound","whisper on the street","cog in a machine","spy","worker","saint","priest","cypher"}, //Condition 7 to be in {"purgatory","torment","jail","trouble","the library","a café","search of something","the Pallazo","the theater","the cinema","a restaurant","the Castle Nuovo","the Castle Sant'Elmo","the funicular","the Spanish District","Piazza del Plebiscito","Piazza Dante", "Piazza Trieste e Trento","the Cathedral","Gesu Nuovo","Santa Chiaria","San Lorenzo","Pompeii","the Castle of the Egg","love","the brothel","the procession"}, //Condition 8 Person going go "to" place or {"too fast","too slow","mad","insane","hungry","to propose","away","to be found out","somewhere new","to keep going","to lie","to tell the truth","to continue","to make it stop","to end it all","to reveal intimacies","to feast","to get drunk","to be reborn","to live","to die","to confess","to reveal a secret","to walk among the ruins","to the funeral"}, //Condition WasJust should go to AdjPeople //Condition 9 BeAble add "to" plus {"stop","keep going","eat more","get away","discover something","rest","fail","revisit memories","feel the past","read the map","see where things are going","end it","admit certain frailties","feast","get drunk","sober up","start again","remain anonymous","remember","forget","move on"}, //Condition BeSo go to AdjPeople //Condition DoNot go to HaveTo //Condition DoHave go to HaveA and insert "a" //Condition 10 know or do know {"a bit","a few things","some Italians","a few facts","my history","her","her name","a few stories","something was lost","it could have been different","there was violence","a few restaurants","how to pray","a few dishes","a bit about wine","how to keep quiet","how to start again","something","a little","how to forget","how to move on","how you must feel"}, //Condition 11 think {"a bit","it too cold","about art","about politics","about the past","about philosophy","about the violence","about the food","about her","about the family","with feeling","about music","about all that happened here","about mortality","a bit about wine","about mortality","about time","something","a little","about memory","it sad"}, //Condition 12 to believe {"in God","in miracles","that evil exists","in human fraility","in epicurianism","in nothing","in change","in progress","in hunger","in the afterlife","you are wrong","in music","in joy","in education","in enjoying life","in mortality","in doubt","in something","a little","in memory","in the persistence of sadness"}, //Condition 13 to do it or do this {"for you","for her","for God","alone","in the dark","in the morning","in the restaurant","in private","for myself","in your memory","in spite of myself","with her","now","later","anyway","for no reason","for money","for love","to learn","in contempt","because I am here"}, //Condition like add place, person, food, or drink //Condition can not go to be and add "be" //Condition 14 can see {"birds","tourists","the police","your point of view","this through","what this means for us","you don't understand","right through you","the paintings","the fountains","I should go","the light","the end is near","trash all over the streets","we have some challenges","the ships in the harbor","it is over now"}, //Condition 15 can do {"pasta","pizza","the crime","a round of drinks","this thing","nothing","anything","what you ask","this for her","this for myself","this in your memory","with more money","with more food","with a rest"}, //Condition 16 can tell {"you don't believe me","you are hungry","you want something","that you are lonely","you something","nothing of this","you a story","what you want","you have your doubts","you want me","it hurts","you are a clever one","some tales"}, //Condition 17 can say {"nothing","your name","you did it","I love you","I saw something","a few words","I need the bill","the word","your time is up","you will swim with the fishes","I am just a tourist","that I forgive you","the names"}, //Condition can only go to HaveTo //Condition can be go to Be //Condition can find go to place //Condition 18 think it {"too warm","too cold","is exquisite","time for a change","is trapped in the past","wrong","has shown its true face","is all about the money","means nothing","means something","is in the blood","is in the bones","will pass","will never fade","is too much","is all lost","in sorrow","could have been more","is like a cry in the night","will be remembered","will be forgotten","is in the DNA"}, //Condition 19 think that {"this well end poorly","we need to eat","we can only watch","time heals all wounds","I saw something","time destroys us all","I need the bill","I must go","your time is up","you will swim with the fishes","I have been blind","I can forgive you","we have a history","you are beautiful"}, //Condition think I add am plus adjPeople //Condition 20 think the {"time is right","food is great here","knives are coming out","jealousy is showing","order has been miscommunicated","time has come","wrong man is in charge","family is important","police are on their way","wine is better here","security guard is coming over","words are wrong","cats are hungry","dress looks great on you"}, //Condition think you add are plus adjPeople //Condition think we use can plus BeAble //Condition think they use are plus adjPeople //Condition think he use is plus adjPeople //Condition would like use like //Condition would not use endVerb //Condition would have use itemFood //Condition would be use Be //Condition would say use CanSay //Condition 21 would love {"to get to know you","to get inside your head","to go to bed","to learn more","to end this charade","dessert","something sweet","another glass of wine","her","to tell you my secrets","to do it over again","another chance","a coffee","to hear your opinion","to live La Dolce Vita"} //Condition would recommend use food or drink //Condition would also use endVerb }; //Questions String[] Questions = {"What do you think of","What can you tell me about","Have you heard of","You know of","Surely you know the story of","Why does this remind me of"}; int xpos = 10; int ypos = 0; int time = 0; int con = 0; void setup() { size (1100, 600); background(0); fill(255); PFont font; font =loadFont("AmericanTypewriter-28.vlw"); textFont(font); frameRate(.4); } void draw () { ypos = (ypos + 48); if (ypos > 576){ ypos = 48; background(0);} if (time < 12) { writeIntroduction();} else if(time < 24){ writeParthenope(); } else if(time < 36){ writeTransOne(); } else { assignItexts();} time = time + 1; if (time == 120) {time = 0;} } //Routine to assign the I texts void assignItexts() { int xa = 0; int xb = int(random(7)); int xc = int(random(8)); int xspacer = int(random(4)); int selectorofTwo = int(random(1)); int selectorofFour = int(random(3)); if (xspacer == 3) { text(" ", 10, ypos); } else if ((xb == 0) && (xc == 0)) { con = 0; writeCon(0, 0, 0, 0); } else if ((xb == 0) && (xc == 1)) { con = 1; writeCon(0, 0, 1, 1); } else if ((xb == 0) && (xc == 2)) { con = 2; writeCon(0, 0, 2, 2); }else if ((xb == 0) && (xc == 3)) { if (selectorofTwo < 1) { con = 0; writePlace(0, 0, 3, 0); } else { con = 2; writePlaceThe(0, 0, 3, 2); } }else if ((xb == 0) && (xc == 4)) { con = 3; writeCon(0, 0, 4, 3); }else if ((xb == 0) && (xc == 5)) { con = 2; writeCon(0, 0, 5, 2); }else if ((xb == 0) && (xc == 6)) { if (selectorofTwo < 1) { con = 0; writeFood(0, 0, 6, 0); } else { con = 1; writeDrink(0, 0, 6, 1); } }else if ((xb == 0) && (xc == 7)) { if (selectorofTwo == 1) { con = 3; writePlacePiazza(0, 0, 7, 3); } else { con = 4; writeCon(0, 0, 7, 4); }} else if ((xb == 1) && (xc == 0)) { con = 5; writeCon(0, 1, 0, 5); } else if ((xb == 1) && (xc == 1)) { con = 6; writeCon(0, 1, 1, 6); }else if ((xb == 1) && (xc == 2)) { con = 5; writeCon(0, 1, 2, 5); }else if ((xb == 1) && (xc == 3)) { con = 6; writeCon(0, 1, 3, 6); }else if ((xb == 1) && (xc == 4)) { if (selectorofFour == 0) { con = 8; writeCon(0, 1, 4, 8); } else if (selectorofFour == 1) { con = 2; writePlaceToVia(0, 1, 4, 2); } else if (selectorofFour == 2) { con = 1; writePlaceToThe(0, 1, 4, 1); } else if (selectorofFour == 3) { con = 0; writePlaceTo(0, 1, 4, 0); } } else if ((xb == 1) && (xc == 5)) { if (selectorofTwo < 1) { con = 1; writeAdj(0, 1, 5, 1); } else { con = 2; writePlaceToVia(0, 1, 5, 2); } } else if ((xb == 1) && (xc == 6)) { con = 1; writeAdj(0, 1, 6, 1); }else if ((xb == 1) && (xc == 7)) { con = 7; writeCon(0, 1, 7, 7); }else if ((xb == 2) && (xc == 0)) { con = 5; writeCon(0, 2, 0, 5); }else if ((xb == 2) && (xc == 1)) { con = 6; writeCon(0, 2, 1, 6); }else if ((xb == 2) && (xc == 2)) { con = 7; writeCon(0, 2, 2, 7); }else if ((xb == 2) && (xc == 3)) { if (selectorofFour == 0) { con = 8; writeCon(0, 2, 3, 8); } else if (selectorofFour == 1) { con = 2; writePlaceToVia(0, 2, 3, 2); } else if (selectorofFour == 2) { con = 1; writePlaceToThe(0, 2, 3, 1); } else if (selectorofFour == 3) { con = 0; writePlaceTo(0, 2, 3, 0); } }else if ((xb == 2) && (xc == 4)) { con = 1; writeAdj(0, 2, 4, 1); }else if ((xb == 2) && (xc == 5)) { con = 9; writeConTo(0, 2, 5, 9); }else if ((xb == 2) && (xc == 6)) { con = 1; writeAdj(0, 2, 6, 1); }else if ((xb == 2) && (xc == 7)) { con = 1; writeAdj(0, 2, 7, 1); }else if ((xb == 3) && (xc == 0)) { con = 1; writeCon(0, 3, 0, 1); }else if ((xb == 3) && (xc == 1)) { con = 0; writeConA(0, 3, 1, 0); }else if ((xb == 3) && (xc == 2)) { con = 10; writeCon(0, 3, 2, 10); }else if ((xb == 3) && (xc == 3)) { con = 11; writeCon(0, 3, 3, 11); }else if ((xb == 3) && (xc == 4)) { con = 12; writeCon(0, 3, 4, 12); }else if ((xb == 3) && (xc == 5)) { con = 13; writeCon(0, 3, 5, 13); }else if ((xb == 3) && (xc == 6)) { con = 13; writeCon(0, 3, 6, 13); }else if ((xb == 3) && (xc == 7)) { if (selectorofFour == 0) { con = 0; writePerson(0, 3, 7, 0); } else if (selectorofFour == 1) { con = 1; writePerson(0, 3, 7, 1); } else if (selectorofFour == 2) { con = 0; writeFood(0, 3, 7, 0); } else if (selectorofFour == 3) { con = 1; writeFood(0, 3, 7, 1); } } else if ((xb == 4) && (xc == 0)) { con = 5; writeConBeNoSpace(0, 4, 0, 5); } else if ((xb == 4) && (xc == 1)) { con = 14; writeCon(0, 4, 1, 14); } else if ((xb == 4) && (xc == 2)) { con = 15; writeCon(0, 4, 2, 15); } else if ((xb == 4) && (xc == 3)) { con = 16; writeCon(0, 4, 3, 16); } else if ((xb == 4) && (xc == 4)) { con = 17; writeCon(0, 4, 4, 17); } else if ((xb == 4) && (xc == 5)) { con = 1; writeCon(0, 4, 5, 1); } else if ((xb == 4) && (xc == 6)) { con = 5; writeCon(0, 4, 6, 5); } else if ((xb == 4) && (xc == 7)) { con = 3; writePlacePiazza(0, 4, 7, 3); } else if ((xb == 5) && (xc == 0)) { con = 18; writeCon(0, 5, 0, 18); } else if ((xb == 5) && (xc == 1)) { con = 19; writeCon(0, 5, 1, 19); } else if ((xb == 5) && (xc == 2)) { con = 1; writeAdjAm(0, 5, 2, 1); }else if ((xb == 5) && (xc == 3)) { con = 20; writeCon(0, 5, 3, 20); }else if ((xb == 5) && (xc == 4)) { con = 1; writeAdjAre(0, 5, 4, 1); }else if ((xb == 5) && (xc == 5)) { con = 9; writeConCan(0, 5, 5, 9); }else if ((xb == 5) && (xc == 6)) { con = 1; writeAdjAre(0, 5, 6, 1); }else if ((xb == 5) && (xc == 7)) { con = 6; writeConIsA(0, 5, 7, 6); } else if ((xb == 6) && (xc == 0)) { writeDrinkandFood(0, 6, 0); }else if ((xb == 6) && (xc == 1)) { writeVerb(0, 6, 1); } else if ((xb == 6) && (xc == 2)) { con = 0; writeFood(0, 6, 2, 0); } else if ((xb == 6) && (xc == 3)) { con = 5; writeCon(0, 6, 3, 5); } else if ((xb == 6) && (xc == 4)) { con = 17; writeCon(0, 6, 4, 17); } else if ((xb == 6) && (xc == 5)) { con = 21; writeCon(0, 6, 5, 21); } else if ((xb == 6) && (xc == 6)) { if (selectorofTwo < 1) { con = 0; writeFood(0, 6, 6, 0); } else { con = 1; writeDrink(0, 6, 6, 1);} } else if ((xb == 6) && (xc == 7)) { writeVerb(0, 6, 7); }} void writePlace(int xa, int xb, int xc, int con) { String endLine = placeAr[con][int(random(placeAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writePlaceThe(int xa, int xb, int xc, int con) { String endLine = "the " + placeAr[con][int(random(placeAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writePlaceTo(int xa, int xb, int xc, int con) { String endLine = "to " + placeAr[con][int(random(placeAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writePlaceToThe(int xa, int xb, int xc, int con) { String endLine = "to the " + placeAr[con][int(random(placeAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writePlaceToVia(int xa, int xb, int xc, int con) { String endLine = "to Via " + placeAr[con][int(random(placeAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writePlacePiazza(int xa, int xb, int xc, int con) { String endLine = "Piazza " + placeAr[con][int(random(placeAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writePerson(int xa, int xb, int xc, int con) { String endLine = peopleAr[con][int(random(peopleAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeFood(int xa, int xb, int xc, int con) { String endLine = foodAr[con][int(random(foodAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeDrink(int xa, int xb, int xc, int con) { String endLine = "a glass of " + foodAr[con][int(random(foodAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeDrinkandFood(int xa, int xb, int xc) { String endLine = "a glass of " + foodAr[1][int(random(foodAr[1].length))] + " and " + foodAr[0][int(random(foodAr[0].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeAdj(int xa, int xb, int xc, int con) { String endLine = adjAr[con][int(random(adjAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeAdjAm(int xa, int xb, int xc, int con) { String endLine = "am " + adjAr[con][int(random(adjAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeAdjAre(int xa, int xb, int xc, int con) { String endLine = "are " + adjAr[con][int(random(adjAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeVerb(int xa, int xb, int xc) { String endLine = endVerb[int(random(endVerb.length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeCon(int xa, int xb, int xc, int con) { String endLine = conAr[con][int(random(conAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeConBeNoSpace(int xa, int xb, int xc, int con) { String endLine = "be " + conAr[con][int(random(conAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeConA(int xa, int xb, int xc, int con) { String endLine = "a " + conAr[con][int(random(conAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeConBe(int xa, int xb, int xc, int con) { String endLine = "be " + conAr[con][int(random(conAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeConCan(int xa, int xb, int xc, int con) { String endLine = "can " + conAr[con][int(random(conAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeConIsA(int xa, int xb, int xc, int con) { String endLine = "is a " + conAr[con][int(random(conAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeConTo(int xa, int xb, int xc, int con) { String endLine = "to " + conAr[con][int(random(conAr[con].length))] + "."; String wholeLine = (startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc] + " " + endLine); println(wholeLine); text((wholeLine), 10, ypos); } void writeIntroduction() { //Intro scene String[] Looking = {"into each other's eyes","across the table at each other","at the menu","for something more","for a way to begin the dance","for a way to begin","for words"}; String[] DoWeHave = {"in common","to say to one another","to talk about","for one another","but time","but bodies with needs","in store for us","between will and fate"}; String[] AmJust = {"a visitor","a stranger here","passing through","here on business","another tourist","seeking a new perspective","filling time"}; String[] ThereIs = {"a spark","heat","an air","something","a table","a mystery","a possibility","a history","some tension","an unfinished story waiting"}; String[] DontKnow = {"this place","Naples","Napoli","the local customs","much","how I got here","where we are going","where to begin","if I should tell her the truth"}; String[] TellIf = {"we will go on","we will stop at coffee","this is more than a conversation","this is a game or a seduction","she is just passing the time with me","we will wake together again"}; String[] HerAttribute = {"lips are full of promises","eyes catch the spark of the sun","laughter is light and warming","smile bewitches me","past is as mysterious as our future","speech is quick and sharp"}; String[] Introduction = {"I met her just after dawn at a caffetteria on Via " + placeAr[2][int(random(placeAr[2].length))] + ".", "This is how I remember her.", "We are looking " + Looking[int(random(Looking.length))] + ".", "What do we have " + DoWeHave[int(random(DoWeHave.length))] + "?", "She is from " + placeAr[0][int(random(placeAr[0].length))] + ". I am just " + AmJust[int(random(AmJust.length))] + ".", "I order a " + foodAr[2][int(random(foodAr[2].length))] + ". She orders a " + foodAr[2][int(random(foodAr[2].length))] + ".", "There is " + ThereIs[int(random(ThereIs.length))] + " between us.", "I do not know " + DontKnow[int(random(DontKnow.length))] + ".", "I cannot tell if " + TellIf[int(random(TellIf.length))] + ".", "Her " + HerAttribute[int(random(HerAttribute.length))] + ".", "Now we are discussing the history of Naples.", "She asks me if I know the story of Parthenope."}; text((Introduction[time]), 10, ypos); } void writeParthenope() { String[] Parthenope = {"Parthenope was the founder of this city","One of the Sirens who tried to lure Odysseus","She was once a beautiful mermaid","She was punished by the gods for a transgression","She was given the body and talons of a bird","Parthenope, once so alluring, was made grotesque","She fell from the sky into the sea","She washed up on the shore at Santa Lucia, drowned","And Naples was born of this violent death","She is remembered both for her powers of seduction and her hideous end","I imagine I can hear her song","Or perhaps her cry of torment"}; text((Parthenope[(time-12)] +"."), 10, ypos); } void writeTransOne() { String[] TransOne = {" ","Memories escape me now.", " ", " ", "I wish I could remember more of our conversations.", " " , " " ,"Time is cruel as the sea.", " ", "Only fragments remain.", " ", " "}; text((TransOne[(time-24)]), 10, ypos); } //Questions about people in Naples //text(Questions[int(random(Questions.length))] + " " + peopleHistorical[int(random(peopleHistorical.length))] + "?", 10, 500); // //to print all end words of trigrams //println(Trigrams[xa][xb][xc]); //xc=xc+1; //if(xc > 7){xc=0; xb=xb+1;}; //if(xb >= 7){xb=0; xa=xa+1;}; // to print all lines // println(startPronoun[xa] + " " + Bigrams[xa][xb] + " " + Trigrams[xa][xb][xc]); // xc=xc+1; // if(xc > 7){xc=0; xb=xb+1;}; // if(xb >= 7){xb=0; xa=xa+1;};