anpera.net https://anpera.dyndns.org/phpbb3/ |
|
Rätsel mit 12 Münzen für das Gefängnis https://anpera.dyndns.org/phpbb3/viewtopic.php?f=43&t=4382 |
Seite 1 von 1 |
Autor: | dragonslayer [ So 09 Mär, 2008 14:43 ] |
Betreff des Beitrags: | Rätsel mit 12 Münzen für das Gefängnis |
Cebit, letzter Tag von 10 für mich...Mir ist langweilig. Hier deswegen ein kleines Codefragment zum einfügen in einen Kerker o.ä.. Es handelt sich um ein Rätsel mit zwölf Münzen, die Beschreibung der Rätsels folgt im Text. Was ihr braucht: Ihr braucht dazu noch 3 Bilddateien im Format 64*70 px (meine darf ich nicht herausgeben). Eine Datei zeigt eine unbekannte Münze, eine die 1. Seite der Münze, die dritte Datei dann noch die 2. Seite der Münze. Passt einfach den Code an. Achja, da der User damit aus dem Gefängnis freikommen würde solltet ihr das Special wenn dann zufällig einbinden und nicht ständig. Generell gilt natürlich überarbeiten, weil ich nicht weiß ob ich irgendwelche Funktionsaufrufe/Farben übersehen habe, die in "Anpera" nicht funktionieren. $this->bbcode_second_pass_code('', ' //Münzspiel von Dragonslayer für Atrahor.de - Kerker else if ($_GET['op']=="coin_game") { $str_file = basename(__FILE__); $str_img_unknown = 'bild_unknown.png'; $str_img_a = 'bild_seite_1.png'; $str_img_b = 'bild_seite_2.png'; switch($_GET['act']) { case 'play': { if(isset($_GET['submit']) == false) { output('`0Prima! Dann erkläre ich Dir kurz wie das Spiel funktioniert.`n`n Ich habe in meiner Tasche zwölf Dublonen. Ihr sagt wahrscheinlich eher Goldmünzen dazu. Sie zeigen auf der einen Seite einen Drachen und auf der anderen Seite den Namen eures Dorfes, '.getsetting('townname','Atrahor').'. Diese Münzen werde ich gut vermischt vor Euch auf den Boden werfen und in zwei Stapel mit je sechs Münzen aufteilen. Da Ihr Euch zuvor die Augen verbunden habt, werdet Ihr nicht erkennen können welche Seite bei diesen Münzen oben liegt. Ich garantiere euch aber, dass insgesamt sechs Münzen den Drachen und die restlichen sechs '.getsetting('townname','Atrahor').' zeigen. Nun verlange ich folgendes von euch:`n Wendet die Münzen derart, dass im linken Stapel ebensoviele Münzen den Drachen nach oben zeigen lassen, wie im rechten Stapel. Gelingt Euch dies mit nur einem Versuch so seid ihr frei. Und denkt daran, dies ist kein Glücksspiel!`n `n `TOk denkst du dir. Verbundene Augen, zwei Stapel à sechs Münzen, in beiden sollen am Ende die gleiche Anzahl an Drachen oben zu sehen sein und zu Beginn zeigen sechs Münzen den Drachen und sechs Münzen das Dorf...das muss doch zu schaffen sein.`n Mit einem Stück Stoff verbindest Du dir die Augen und lauschst. Als du die Münzen klingen hörst, tastest du vorsichtig danach. Nun nur noch korrekt wenden und du bist frei!`n`n (Mit der Maus die Münzen auswählen die gedreht werden sollen. Zu drehende Münzen werden hervorgehoben. Ein Klick auf den Wenden Knopf schließt das Ganze ab!)'); $arr_coins = array(); $str_coins = ''; $int_height_offset = 0; $int_max_1 = 6; $int_max_0 = 6; for($int_i = 0; $int_i<12; $int_i++) { $int_rand = mt_rand(0,1); ${'int_max_'.$int_i}--; if(${'int_max_'.$int_i} == 0) { $arr_coins[$int_i] = ($int_rand == 1?0:1); } $arr_coins[$int_i]=mt_rand(0,1); } $str_coins = ' <img src="../images/'.$str_img_unknown.'" id="coin_1" style="position:absolute; width:64px; height:70px; top:17px; left:113px;" onClick="switch_coin(1)"> <img src="../images/'.$str_img_unknown.'" id="coin_2" style="position:absolute; width:64px; height:70px; top:96px; left:132px;" onClick="switch_coin(2)"> <img src="../images/'.$str_img_unknown.'" id="coin_3" style="position:absolute; width:64px; height:70px; top:147px; left:23px;" onClick="switch_coin(3)"> <img src="../images/'.$str_img_unknown.'" id="coin_4" style="position:absolute; width:64px; height:70px; top:162px; left:100px;" onClick="switch_coin(4)"> <img src="../images/'.$str_img_unknown.'" id="coin_5" style="position:absolute; width:64px; height:70px; top:16px; left:19px;" onClick="switch_coin(5)"> <img src="../images/'.$str_img_unknown.'" id="coin_0" style="position:absolute; width:64px; height:70px; top:79px; left:67px;" onClick="switch_coin(0)"> <img src="../images/'.$str_img_unknown.'" id="coin_6" style="position:absolute; width:64px; height:70px; top:101px; left:493px;" onClick="switch_coin(6)"> <img src="../images/'.$str_img_unknown.'" id="coin_7" style="position:absolute; width:64px; height:70px; top:20px; left:459px;" onClick="switch_coin(7)"> <img src="../images/'.$str_img_unknown.'" id="coin_8" style="position:absolute; width:64px; height:70px; top:171px; left:418px;" onClick="switch_coin(8)"> <img src="../images/'.$str_img_unknown.'" id="coin_9" style="position:absolute; width:64px; height:70px; top:135px; left:330px;" onClick="switch_coin(9)"> <img src="../images/'.$str_img_unknown.'" id="coin_10" style="position:absolute; width:64px; height:70px; top:75px; left:399px;" onClick="switch_coin(10)"> <img src="../images/'.$str_img_unknown.'" id="coin_11" style="position:absolute; width:64px; height:70px; top:32px; left:346px;" onClick="switch_coin(11)"> '; $session['user']['pqtemp'] = serialize($arr_coins); rawoutput( ' <script type="text/javascript"> arr_coins_to_turn = new Array(); function switch_coin(id) { if(arr_coins_to_turn[id] === undefined || arr_coins_to_turn[id] == 0) { arr_coins_to_turn[id]=1; document.getElementById("coin_"+id).style["border"]="1px solid red"; } else { arr_coins_to_turn[id]=0; document.getElementById("coin_"+id).style["border"]="0px"; } } function save_arr_coins_to_turn() { document.getElementById("arr_coins_to_turn").value = arr_coins_to_turn; } </script> <div style="width:600px; height:300px; position:relative;">'. form_header($str_file.'?op=coin_game&act=play&submit=1','POST',true, '', 'save_arr_coins_to_turn();'). $str_coins. '<center style="position:absolute; bottom:0px; width:100%;"><input type="submit" value="Gewählte Münzen wenden !" /></center> <input type="hidden" name="arr_coins_to_turn[]" id="arr_coins_to_turn"> </div> ' ); } //Formular abgeschickt, prüfen auf Lösung else { $arr_coins_to_turn = $_POST['arr_coins_to_turn']; $arr_coins = unserialize($session['user']['pqtemp']); //Temp wieder löpschen, brauchen wir nicht mehr $session['user']['pqtemp'] = ''; //Werte des Arrays switchen wenn sie sich auch im POST Array befinden foreach ($arr_coins_to_turn as $key=>$val) { if($val == 1) { $arr_coins[$key] = ($arr_coins[$key] == 1 ? 0 : 1); } } $str_coins = ''; $arr_left = array_slice($arr_coins,0,6); $arr_right = array_slice($arr_coins,6,6); $str_coins = ' <img src="./images/'.($arr_coins[0]==1?$str_img_a:$str_img_b).'" id="coin_1" style="position:absolute; width:64px; height:70px; top:17px; left:113px;"> <img src="./images/'.($arr_coins[1]==1?$str_img_a:$str_img_b).'" id="coin_2" style="position:absolute; width:64px; height:70px; top:96px; left:132px;"> <img src="./images/'.($arr_coins[2]==1?$str_img_a:$str_img_b).'" id="coin_3" style="position:absolute; width:64px; height:70px; top:147px; left:23px;"> <img src="./images/'.($arr_coins[3]==1?$str_img_a:$str_img_b).'" id="coin_4" style="position:absolute; width:64px; height:70px; top:162px; left:100px;"> <img src="./images/'.($arr_coins[4]==1?$str_img_a:$str_img_b).'" id="coin_5" style="position:absolute; width:64px; height:70px; top:16px; left:19px;"> <img src="./images/'.($arr_coins[5]==1?$str_img_a:$str_img_b).'" id="coin_0" style="position:absolute; width:64px; height:70px; top:79px; left:67px;"> <img src="./images/'.($arr_coins[6]==1?$str_img_a:$str_img_b).'" id="coin_6" style="position:absolute; width:64px; height:70px; top:101px; left:493px;"> <img src="./images/'.($arr_coins[7]==1?$str_img_a:$str_img_b).'" id="coin_7" style="position:absolute; width:64px; height:70px; top:20px; left:459px;"> <img src="./images/'.($arr_coins[8]==1?$str_img_a:$str_img_b).'" id="coin_8" style="position:absolute; width:64px; height:70px; top:171px; left:418px;"> <img src="./images/'.($arr_coins[9]==1?$str_img_a:$str_img_b).'" id="coin_9" style="position:absolute; width:64px; height:70px; top:135px; left:330px;"> <img src="./images/'.($arr_coins[10]==1?$str_img_a:$str_img_b).'" id="coin_10" style="position:absolute; width:64px; height:70px; top:75px; left:399px;"> <img src="./images/'.($arr_coins[11]==1?$str_img_a:$str_img_b).'" id="coin_11" style="position:absolute; width:64px; height:70px; top:32px; left:346px;"> '; $arr_count_left = array_count_values($arr_left); $arr_count_right = array_count_values($arr_right); output('`0Hmm, na dann schaun wir mal ob du das Rätsel gelöst hast...`n`n'); if($arr_count_left[1] == $arr_count_right[1] || $arr_count_left[0] == $arr_count_right[0]) { output('Ich bin beeindruckt. War das Glück oder Können? Nun, in jedem Falle werde ich deine Kaution hinterlegen, so dass Du schon bald wieder frei sein wirst. Versprochen ist versprochen!`n `TMit diesen Worten steht dein Wohltäter auf, pfeifft dem Gefängniswärter zu, der auch seltsamerweise ziemlich flott angerannt kommt und flüstert diesem erneut etwas ins Ohr. Ehe du dich überhaupt noch einmal an den Namen erinnern kannst, stehst du auch schon wieder auf dem Dorfplatz und bist frei!'); addnav('Juchuu, frei!','village.php'); //Ziehen wir dem User als Belohnung 5 Kerkertage ab $session['user']['imprisoned'] = max(0,$session['user']['imprisoned']-5); debuglog('Münzen Rätsel im Gefängis gelöst und dadurch Freigang erhalten'); } else { output('Tja, da hast du dich wohl leider verschätzt. Tut mir leid, aber ich bleibe meinen Prinzipien stets treu. Rätsel nicht gelöst, keine Kaution.`n `TMit diesen Worten steht der Herr auf und ehe du dich überhaupt noch einmal an seinen Namen erinnern kannst, ist dieser auch schon wieder verschwunden.'); addnav('Mist!',$str_file); } rawoutput( ' <div style="width:600px; height:300px; position:relative;">'. $str_coins. '</div> ' ); } break; } ') |
Autor: | Harthas [ So 09 Mär, 2008 16:25 ] |
Betreff des Beitrags: | Re: Rätsel mit 12 Münzen für das Gefängnis |
Sieht hübsch aus ;-) Mir ist nur eines aufgefallen: Das Feld pqtemp gibt es in der hiesigen Version nicht (mehr). |
Autor: | dragonslayer [ So 09 Mär, 2008 23:16 ] |
Betreff des Beitrags: | Re: Rätsel mit 12 Münzen für das Gefängnis |
Bei mir wirds auch nicht mehr/kaum noch genutzt, ich dachte das sei noch vorhanden :-D Na dann eben specialmisc oder $_SESSION oder wat weiß ich :-) |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |