Skip to content

Instantly share code, notes, and snippets.

@andrejb-dev
Last active March 27, 2022 22:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrejb-dev/715e83ae816e867cf175a6507e8e98ab to your computer and use it in GitHub Desktop.
Save andrejb-dev/715e83ae816e867cf175a6507e8e98ab to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP - Hello, World!</title>
</head>
<body>
<?php
$hitPlace = [
"rameno", "stehno", "hrudník", "lýtko", "brucho", "chrbát", "tvár", "krk", "temeno", "predlaktie"
];
$templatesBase = [
"attack" => [
'$attacker sa rozhodne zaútočiť a jeho cieľ je $defender.',
'$defender postrehne, že $attacker sa ho chystá zasiahnuť.',
'$attacker sa nepríčetne zazubí a $defender by sa asi mal brániť.',
'$defender asi vôbec neregistruje, že proti nemu vyráža $attacker.',
'Nikto z prítomných nečakal, že $attacker zaútočí a jeho cieľ bude $defender.',
'Divákom bolo jasné, že $attacker má ďalšiu obeť vyhliadnutú. Je ňou $defender.'
],
"miss" => [
'$attacker predviedol rýchly výpad pred seba, ale míňa a $defender sa škodoradostne zasmeje.',
'$attacker sa snaží niečo vymyslieť, ale prekomplikoval to a v poslednej otočke sa potkne a padá na zem. $defender sa čuduje, že sa nenabodol na vlastnú zbraň.',
'$defender sa elegantne vyhol rane, ktorú vysiela $attacker',
'Úder sa nevydaril a $defender sa ubránil. $attacker zatína od zlosti zuby.',
'$defender sa len čuduje, čo sa $attacker snaží svojimi čudnými pohybmi dosiahnuť. Zásah to veru nie je.',
'$defender zbabelo behá po celej aréne a $attacker za ním nestíha. Skúša hodiť svoju zbraň, ale nezasahuje. Dav si tú nudu skracuje mexickými vlnami.',
'$attacker netrafil! Ako len mohol minúť? $defender má poriadnu dávku šťastia. Nie sú v tom nejaké čary?',
'$attacker sa zahnal, ale nikoho netrafil. $defender ani nikto iný v jeho okolí nebol a dav sa čuduje, či útočníkovi netreba okuliare.'
],
"weak_hit" => [
'Aj keď bol nasledujúci útok nebezpečný, $defender ho čiastočne vykryl a $attacker ho len jemne škrabol na $hitPlace.',
'$attacker síce zasiahol $hitPlace protivníka, ale zranenie je len nepatrné. Navyše sa $defender viac nazlostil.',
'Síce sa $attacker snaží zo všetkých síl, lenže $defender úder v poslednej chvíli tlmí a tak jeho $hitPlace len nepatrne pošteklí.',
'$defender hľadá, komu v aréne ublíži, ale kým sa rozhoduje, $attacker ho nemotorne ťapne na $hitPlace. Tá nepozornosť mala byť lepšie potrestaná.',
'$defender klesá na jedno koleno po tom, ako mu ho $attacker zľahka zasahuje. Našťastie pokračuje ďalej.',
'$defender s istotou nastavuje zbraň proti útoku, ale čo to? Je to ľstivý výpad a zásah! $attacker je samá úskočnosť.'
],
"strong_hit" => [
'$attacker to naplánoval výborne a naznačený útok v poslednej chvíli zmenil. $defender a jeho obrana nepostačujú, zbraň značne zraní jeho $hitPlace. Ďalšiu takú ranu už nemusí rozdýchať.',
'$attacker sa z celej sily rozohnal a uštedril poriadnu ranu na $hitPlace, až sa $defender zatackal.',
'$defender padá na zem pod ranou, ktorú mu zasadil $attacker. Bol to silný úder. Bude pokračovať? Postaví sa? Áno! $defender vstáva! Dav povzbudivo jasá.',
'$attacker zľava silne zasahuje $hitPlace a $defender sa zakolísa. Arénou sa rozletí empatické "Úúú". V bolestivej grimase potom $defender vypľuje krvavú slinu. Ešte že pivo netreba hrýzť.',
'$attacker sa rozbieha a $defender čaká, z ktorej strany zaútočí zbraňou. Oh! Útočník sa jednoducho rozhodol prevalcovať nepriateľa telom! Za toto by sa nemusel hambiť ani koňský záprah.',
'$attacker s neobvyklou obratnosťou udiera do nastavenej ruky obrancu, niečo v nej ale prasklo a $defender skryvil ústa v bolesti.'
],
"kill" => [
'$attacker poslední ranou prakticky likviduje soupeře. $defender klesne na kolena, zbývá v něm už jen nepatrná stopa života, ale na dnes končí.',
'$attacker doráža takého mäkkýša ako je $defender. Prítomní obdivne tlieskajú.',
'$attacker ladným pohybem své zbraně likviduje svého nepřítele. $defender leží na zemi a nejeví známky života.',
'$attacker touto ranou vyradzuje protivníka. $defender sa bude pár dní liečiť z odrenín.',
'$defender melie z posledného a $attacker je ten šťastný, ktorý úderom ukončuje túto agóniu.',
'$defender sa rozbehne v nádeji na úspešný výpad. $attacker vyčkáva a v poslednej chvíli sa mu vyhne. Zásah! $attacker nečakane opätuje útok a $defender definitívne dopadá na zem. Je vyradený a aréna sa ozýva hukotom.',
]
];
$actors = [
"Azog", "Thorin", "Legolas", "Aragorn", "Sauron"
];
/**
* Vyberie náhodnú vetu, vyplní placeholders a vetu odoberie zo zoznamu (zabránenie opakovaniu)
*/
function templatedString(&$templateArray, $vars){
$ind = rand(0, count($templateArray) -1);
return strtr(array_splice($templateArray, $ind, 1)[0], $vars);
}
/**
* Ak sa niektoré vety minuli medzi dostupnými, doplní ich z base zoznamu
*/
function consolidateTemplates(&$templates, $templatesBase){
if(count($templates["attack"]) <= 0) {
$templates["attack"] = $templatesBase["attack"];
}
if(count($templates["miss"]) <= 0) {
$templates["miss"] = $templatesBase["miss"];
}
if(count($templates["weak_hit"]) <= 0) {
$templates["weak_hit"] = $templatesBase["weak_hit"];
}
if(count($templates["strong_hit"]) <= 0) {
$templates["strong_hit"] = $templatesBase["strong_hit"];
}
if(count($templates["kill"]) <= 0) {
$templates["kill"] = $templatesBase["kill"];
}
}
function hit(&$templates, $params){
$hit_successfull = rand(0,10) > 1;
$damage_big = $hit_successfull && rand(0,1) == 1;
$killed = $hit_successfull && rand(0,10) == 1;
$continue = true;
echo templatedString($templates["attack"], $params), " ";
if(!$hit_successfull){
echo templatedString($templates["miss"], $params), " (-0ž)";
} elseif($killed){
echo templatedString($templates["kill"], $params), " (-", rand(1,25), "ž)";
$continue = false;
} elseif($damage_big){
echo templatedString($templates["strong_hit"], $params), " (-", rand(10,25), "ž)";
} elseif(!$damage_big){
echo templatedString($templates["weak_hit"], $params), " (-", rand(1,10), "ž)";
}
return $continue;
}
$templatesCopy = $templatesBase;
print "Zápis zo zápasu.<br/>";
for ($x = 1; $x <= 20; $x++) {
$params = [];
$params['$attacker'] = $actors[rand(0, count($actors) -1)]; // náhodný aktér
$params['$defender'] = array_values(array_diff($actors, [$params['$attacker']]))[rand(0, count($actors) -2)]; //druhý náhodný aktér, nie ten istý čo prvý
$params['$hitPlace'] = $hitPlace[rand(0, count($hitPlace) -1)]; // náhodné miesto zásahu
echo "#", $x, ": ";
if (!hit($templatesCopy, $params)){
break;
}
consolidateTemplates($templatesCopy, $templatesBase);
echo "<br/>";
}
?>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment