We’ve decided to gather the Drag and Drop games into a “peerage” of web applications so that one central supervisory web application can point the user into the correct direction to find them, or one of them, as per the PHP glob and “clone” based …
<?php
// experimental_peers_drag_and_drop.php
// RJM Programming
// November, 2025
// Make peers of all the experimental drag and drop logic based web applications
$sofar="";
$listis='';
foreach (glob(dirname(__FILE__) . DIRECTORY_SEPARATOR . '*.php') as $filename) {
$contis=file_get_contents($filename);
if (strpos($contis, "templa" . "tegame=file_get_contents('./experimental_drag_and_drop.htm") !== false) {
if (strpos($filename, "_new_") === false && strpos($sofar, str_replace('_','',str_replace($_SERVER['DOCUMENT_ROOT'], '', $filename))) === false) {
if ($listis == '') {
$listis.=str_replace($_SERVER['DOCUMENT_ROOT'], '', $filename);
} else {
$listis.=',' . str_replace($_SERVER['DOCUMENT_ROOT'], '', $filename);
}
$sofar.=str_replace('_','',str_replace($_SERVER['DOCUMENT_ROOT'], '', $filename));
}
}
}
$larris=explode(',', $listis);
$htmlis='<html><head><title>Experimental Drag and Drop Peers - RJM Programming - November, 2025</title></head><body><h1>Experimental Drag and Drop Peers</h1><h3>RJM Programming - November, 2025</h3><select onchange="if (this.value.length != 0) { window.open(this.value,' . "'_blank','top=120,left=510,width=940,height=660'" . '); }" id=mysel size=' . (3 + sizeof($larris)) . '><option value="">Optionally select an Experimental Drag and Drop web application, to try, below ...</option><option value="/HTMLCSS/chess_game.php">Chess game</option><option value="/HTMLCSS/gradual_reveal_country_game.htm">Reveal country game</option></select></body></html>';
if ($listis != '') {
for ($i=0; $i<sizeof($larris); $i++) {
$htmlis=str_replace('</select>', '<option value="' . $larris[$i] . '">' . strtoupper(substr(str_replace('_',' ',explode('.', basename($larris[$i]))[0]),0,1)) . substr(str_replace('_',' ',explode('.', basename($larris[$i]))[0]),1) . "</option></select>", $htmlis);
}
echo $htmlis;
}
?>
… as a proof of concept Drag and Drop supervisor web application you can also try below …
If this was interesting you may be interested in this too.



What I find most interesting here is how honestly the post names the hard part: getting focus to work with [element].click() and [element].blur() is the kind of detail that looks trivial until you actually try to drive a page this way. The single-row table that deliberately overflows to the right also makes sense as a design choice, since a radio playlist needs to be scrolled through rather than squeezed into one screen. And the payoff β clicking one song link and having the songs play in sequence and loop back through the list β is a neat reward for all that plumbing with the audio-only YouTube player.