Forked from neoeno/gist:68a199005ef189d83a19b862682e68eb
Created
November 6, 2024 23:11
-
-
Save stjordanis/e7fe4574b1409a9b9af399b0ea879950 to your computer and use it in GitHub Desktop.
Basic PHP strachey love letter algorithm extracted from https://github.com/gingerbeardman/loveletter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$sals1 = array("Beloved", "Darling", "Dear", "Dearest", "Fanciful", "Honey"); | |
$sals2 = array("Chickpea", "Dear", "Duck", "Jewel", "Love", "Moppet", "Sweetheart"); | |
$adjs = array("affectionate", "amorous", "anxious", "avid", "beautiful", "breathless", "burning", "covetous", "craving", "curious", "eager", "fervent", "fondest", "loveable", "lovesick", "loving", "passionate", "precious", "seductive", "sweet", "sympathetic", "tender", "unsatisfied", "winning", "wistful"); | |
$nouns = array("adoration", "affection", "ambition", "appetite", "ardour", "being", "burning", "charm", "craving", "desire", "devotion", "eagerness", "enchantment", "enthusiasm", "fancy", "fellow feeling", "fervour", "fondness", "heart", "hunger", "infatuation", "little liking", "longing", "love", "lust", "passion", "rapture", "sympathy", "thirst", "wish", "yearning"); | |
$advs = array("affectionately", "ardently", "anxiously", "beautifully", "burningly", "covetously", "curiously", "eagerly", "fervently", "fondly", "impatiently", "keenly", "lovingly", "passionately", "seductively", "tenderly", "wistfully"); | |
$verbs = array("adores", "attracts", "clings to", "holds dear", "hopes for", "hungers for", "likes", "longs for", "loves", "lusts after", "pants for", "pines for", "sighs for", "tempts", "thirsts for", "treasures", "yearns for", "woos"); | |
define(SHORT, 1); | |
define(LONG, 2); | |
$last = NULL; | |
$ll = sprintf("%s %s,\n ", rel($sals1), rel($sals2)); | |
for($i=0; $i<5; $i++) { | |
if (mt_rand(0,9) < 5) { | |
//LONG | |
$optadj1 = (mt_rand(0,9) < 5) ? '' : rel($adjs); | |
$noun1 = rel($nouns); | |
$optadv = (mt_rand(0,9) < 5) ? '' : rel($advs); | |
$verb = rel($verbs); | |
$optadj2 = (mt_rand(0,9) < 5) ? '' : rel($adjs); | |
$noun2 = rel($nouns); | |
if ($last != NULL || $last == LONG) { | |
$concat = ". "; | |
} | |
$ll .= sprintf("%s My %s %s %s %s your %s %s", $concat, $optadj1, $noun1, $optadv, $verb, $optadj2, $noun2); | |
$last = LONG; | |
} else { | |
//SHORT | |
$adj = rel($adjs); | |
$noun = rel($nouns); | |
if ($last == SHORT) { | |
$concat = ", "; | |
} elseif ($last == LONG) { | |
$concat = ". You are"; | |
} else { | |
$concat = "You are "; | |
} | |
$ll .= sprintf("%s my %s %s", $concat, $adj, $noun); | |
$last = SHORT; | |
} | |
} | |
$adv = rel($advs); | |
$ll .= sprintf(".\n Yours %s,\n M.U.C.\n", $adv); | |
echo "<em>"; | |
echo str_replace(' ', ' ', $ll); | |
echo "</em>"; | |
//returns random value from array | |
function rel($arr) { | |
return $arr[array_rand($arr)]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment