$filename = 'gh_mastermind.php';
require("./global.php");
$lang->load("GHMASTERMIND");
if(!$wbbuserdata['userid'] || !$wbbuserdata['can_ghmastermind_play']) {
access_error();
}
if(isset($_REQUEST['action'])){
$action = $_REQUEST['action'];
} else {
$action = 'none';
}
/* Version */
$version = "Mastermind v1.0 by Lasall";
/* Konfiguration laden */
$mm_config = $db->query_first("SELECT * FROM bb".$n."_gh_mastermind_config WHERE id = '1'");
/* Deactiviert? */
if(!$mm_config['onoff'] && !$wbbuserdata['a_can_ghmastermind_admin']) {
error($lang->get('LANG_GHMASTERMIND_GLOBAL_ERROR_ONOFF'));
}
/* Userdaten laden */
$spieler = $db->query_first("SELECT * FROM bb".$n."_gh_mastermind_users WHERE userid = '".$wbbuserdata['userid']."'");
function spielreihe_generieren($reihe_no, $fuer=1){
global $lang,$n,$db,$mm_config,$wbbuserdata,$spieler,$spielreihe_raw, $spielreihe_daten, $spielreihe_loesung,$stein_k0,$stein_k1,$stein_k2,$SID_ARG_2ND_UN;
$stein_k0 = "";
$stein_k1 = "";
$stein_k2 = "";
$stein_g0 = "";
$stein_g1 = "";
$stein_g2 = "";
$stein_g3 = "";
$stein_g4 = "";
$stein_g5 = "";
if($fuer == 1){
# Ermitteln welche Steine gesetzt sind S
$count_weiss = 0;
$count_schwarz = 0;
$count_nix = 0;
$count_alle = 1;
if($spielreihe_daten[0] == $spielreihe_loesung[0]){
$count_weiss++;
} elseif(in_array($spielreihe_daten[0],$spielreihe_loesung)) {
$count_schwarz++;
} else {
$count_nix++;
}
if($spielreihe_daten[1] == $spielreihe_loesung[1]){
$count_weiss++;
} elseif(in_array($spielreihe_daten[1],$spielreihe_loesung)) {
$count_schwarz++;
} else {
$count_nix++;
}
if($spielreihe_daten[2] == $spielreihe_loesung[2]){
$count_weiss++;
} elseif(in_array($spielreihe_daten[2],$spielreihe_loesung)) {
$count_schwarz++;
} else {
$count_nix++;
}
if($spielreihe_daten[3] == $spielreihe_loesung[3]){
$count_weiss++;
} elseif(in_array($spielreihe_daten[3],$spielreihe_loesung)) {
$count_schwarz++;
} else {
$count_nix++;
}
// User hat verloren S
if($spieler['ist_reihe'] == 9 && $spieler['zeit'] > 1 && $count_weiss != 4 && $reihe_no == 8) {
$db->query("UPDATE bb".$n."_gh_mastermind_users SET zeit = '0' WHERE userid = '".$wbbuserdata['userid']."'");
header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN);
exit();
}
// User hat verloren E
if($reihe_no != $spieler['ist_reihe']){
// User hat gewonnen S
if($count_weiss == 4 && $spieler['zeit'] > 1) {
$db->query("UPDATE bb".$n."_gh_mastermind_users SET zeit = '1' WHERE userid = '".$wbbuserdata['userid']."'");
if($mm_config['gut_spielen']) {
$guthaben_plus = ($mm_config['gut_spielen'] * 5) / (($spieler['ist_reihe'] > 1) ? ($spieler['ist_reihe'] - 1) : (1));
$db->query("UPDATE bb".$n."_users SET guthaben=guthaben+$guthaben_plus WHERE userid='".$wbbuserdata['userid']."'");
$db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$wbbuserdata['userid']."','".time()."','".$lang->get('LANG_GHMASTERMIND_GLOBAL_KAUZ_ZU')."','".$guthaben_plus."','plus')");
}
header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN);
exit();
}
// User hat gewonnen E
for($x1=1;$x1<=$count_weiss;$x1++){
$mm_k_name = 'mm_k' . $count_alle;
$$mm_k_name = $stein_k2;
$count_alle++;
}
for($x2=1;$x2<=$count_schwarz;$x2++){
$mm_k_name = 'mm_k' . $count_alle;
$$mm_k_name = $stein_k1;
$count_alle++;
}
for($x3=1;$x3<=$count_nix;$x3++){
$mm_k_name = 'mm_k' . $count_alle;
$$mm_k_name = $stein_k0;
$count_alle++;
}
} else {
$count_nix = 4;
for($x3=1;$x3<=$count_nix;$x3++){
$mm_k_name = 'mm_k' . $count_alle;
$$mm_k_name = $stein_k0;
$count_alle++;
}
}
$stein_gx = 'stein_g' . $spielreihe_daten[0];
$mm_g1 = $$stein_gx;
$stein_gx = 'stein_g' . $spielreihe_daten[1];
$mm_g2 = $$stein_gx;
$stein_gx = 'stein_g' . $spielreihe_daten[2];
$mm_g3 = $$stein_gx;
$stein_gx = 'stein_g' . $spielreihe_daten[3];
$mm_g4 = $$stein_gx;
# Ermitteln welche Steine gesetzt sind E
}
if($fuer == 0){
$mm_k1 = $stein_k0;
$mm_k2 = $stein_k0;
$mm_k3 = $stein_k0;
$mm_k4 = $stein_k0;
$mm_g1 = $stein_g0;
$mm_g2 = $stein_g0;
$mm_g3 = $stein_g0;
$mm_g4 = $stein_g0;
}
$spielreihe_raw = "
$mm_k1 |
$mm_k2 |
$mm_g1 |
$mm_g2 |
$mm_g3 |
$mm_g4 |
$mm_k3 |
$mm_k4 |
|
";
return $spielreihe_raw;
}
/* Uebersicht */
if($action == 'none'){
$sel_anaus[$mm_config['onoff']] = "checked=\"checked\"";
$lang->items['LANG_GHMASTERMIND_START_ADMIN_ANAUS'] = $lang->get('LANG_GHMASTERMIND_START_ADMIN_ANAUS', array('$sel_anaus[0]' => $sel_anaus[0],'$sel_anaus[1]' => $sel_anaus[1]));
eval ("\$tpl->output(\"".$tpl->get("gh_mastermind_start")."\");");
exit();
}
/* Neues Spiel erstellen. */
if($action == 'neues_spiel'){
if($mm_config['gut_spielen']) {
if($wbbuserdata['guthaben'] < $mm_config['gut_spielen']) {
error($lang->get('LANG_GHMASTERMIND_GLOBAL_ERROR_KEINGUT'));
}
}
$wuerfel = array();
$neues_spiel = '';
$hol_vier = 0;
$test = 0;
for($y=0;$hol_vier<4;$y++){
$test++;
$wuerfeln = rand(1,5);
if(!in_array($wuerfeln,$wuerfel)){
array_push($wuerfel,$wuerfeln);
$neues_spiel .= $wuerfeln . '|';
$hol_vier++;
}
if($neues_spiel == '1|2|3|4|'){
$neues_spiel = '';
$hol_vier = 0;
}
}
if($spieler['userid']) {
$db->query("UPDATE bb".$n."_gh_mastermind_users SET zeit = '".time()."', loesung = '".$neues_spiel."', ist_reihe = '1', reihe_1 = '',reihe_2 = '',reihe_3 = '',reihe_4 = '',reihe_5 = '',reihe_6 = '',reihe_7 = '',reihe_8 = '' WHERE userid = '".$wbbuserdata['userid']."'");
} else {
$db->query("INSERT INTO bb".$n."_gh_mastermind_users (userid,zeit,loesung,ist_reihe) VALUES ('".$wbbuserdata['userid']."','".time()."','".$neues_spiel."','1')");
}
if($mm_config['gut_spielen']) {
$db->query("UPDATE bb".$n."_users SET guthaben=guthaben-$mm_config[gut_spielen] WHERE userid='".$wbbuserdata['userid']."'");
$db->query("INSERT INTO bb".$n."_kontoauszug VALUES ('','".$wbbuserdata['userid']."','".time()."','".$lang->get('LANG_GHMASTERMIND_GLOBAL_KAUZ_AB')."','".$mm_config['gut_spielen']."','minus')");
}
header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN);
exit();
}
/* Spiel abbrechen */
if($action == 'abbrechen'){
$db->query("DELETE FROM bb".$n."_gh_mastermind_users WHERE userid = '".$wbbuserdata['userid']."'");
header("Location: gh_mastermind.php" . $SID_ARG_1ST);
exit();
}
/* loesen */
if($action == 'loesen'){
if($spieler['zeit'] < 2) {
header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN);
exit();
}
# Pruefen, ob die Reihe voll ist ... S
$spielreihe_suchen = 'reihe_' . $spieler['ist_reihe'];
$spielreihe_testen = explode('|',$spieler[$spielreihe_suchen]);
$getestet = 0;
for($x=0;$x<4;$x++) {
if($spielreihe_testen[$x] == 0) {
$getestet = 1;
}
}
if($getestet) {
header("Location: gh_mastermind.php?action=spielen&fehler=1" . $SID_ARG_2ND_UN);
exit();
}
# Pruefen, ob die Reihe voll ist ... E
$db->query("UPDATE bb".$n."_gh_mastermind_users SET ist_reihe=ist_reihe+1 WHERE userid = '".$wbbuserdata['userid']."'");
header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN);
exit();
}
/* Stein setzen */
if($action == 'setzen'){
if($spieler['zeit'] < 2) {
header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN);
exit();
}
$spielreihe_suchen = 'reihe_' . $spieler['ist_reihe'];
if($spieler[$spielreihe_suchen] == ''){
$spieler[$spielreihe_suchen] = '0|0|0|0';
}
$spielreihe = explode('|',$spieler[$spielreihe_suchen]);
$neue_spielreihe = '';
$neu_count = 1;
for($x=0;$x<=3;$x++){
$value = $spielreihe[$x];
if($neu_count == $_GET['position']){
$neue_spielreihe[$neu_count] = $_GET['stein'];
} else {
if($value == $_GET['stein']){
$neue_spielreihe[$neu_count] = '0';
} else {
$neue_spielreihe[$neu_count] = $value;
}
}
$neu_count++;
}
$neuer_string = implode('|',$neue_spielreihe);
$db->query("UPDATE bb".$n."_gh_mastermind_users SET $spielreihe_suchen = '$neuer_string' WHERE userid = '".$wbbuserdata['userid']."'");
header("Location: gh_mastermind.php?action=spielen" . $SID_ARG_2ND_UN);
exit();
}
/* Spielen */
if($action == 'spielen'){
if(!$spieler['userid']) {
header("Location: gh_mastermind.php" . $SID_ARG_1ST);
exit();
}
if($spieler['zeit'] < 2){
$loesungs_steine = explode('|',$spieler['loesung']);
$verloren_s1 = "";
$verloren_s2 = "";
$verloren_s3 = "";
$verloren_s4 = "";
}
/* Guthabenbetrag wenn Spieler gewonnen hat */
if($mm_config['gut_spielen']) {
$gewinn_betrag = intval((($mm_config['gut_spielen'] * 5) / (($spieler['ist_reihe'] > 1) ? ($spieler['ist_reihe'] - 1) : (1))));
$gewinn_1 = intval((($mm_config['gut_spielen'] * 5) / (1)));
$gewinn_2 = intval((($mm_config['gut_spielen'] * 5) / (2)));
$gewinn_3 = intval((($mm_config['gut_spielen'] * 5) / (3)));
$gewinn_4 = intval((($mm_config['gut_spielen'] * 5) / (4)));
$gewinn_5 = intval((($mm_config['gut_spielen'] * 5) / (5)));
$gewinn_6 = intval((($mm_config['gut_spielen'] * 5) / (6)));
$gewinn_7 = intval((($mm_config['gut_spielen'] * 5) / (7)));
$gewinn_8 = intval((($mm_config['gut_spielen'] * 5) / (8)));
$guthaben['waehrung'] = htmlconverter($guthaben['waehrung']);
$gewinn_liste = "
" . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_FUER') . ":
";
if($spieler['ist_reihe'] == 1) $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 1 = $gewinn_1 $guthaben[waehrung]
";
else $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 1 = $gewinn_1 $guthaben[waehrung]
";
if($spieler['ist_reihe'] == 2) $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 2 = $gewinn_2 $guthaben[waehrung]
";
else $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 2 = $gewinn_2 $guthaben[waehrung]
";
if($spieler['ist_reihe'] == 3) $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 3 = $gewinn_3 $guthaben[waehrung]
";
else $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 3 = $gewinn_3 $guthaben[waehrung]
";
if($spieler['ist_reihe'] == 4) $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 4 = $gewinn_4 $guthaben[waehrung]
";
else $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 4 = $gewinn_4 $guthaben[waehrung]
";
if($spieler['ist_reihe'] == 5) $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 5 = $gewinn_5 $guthaben[waehrung]
";
else $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 5 = $gewinn_5 $guthaben[waehrung]
";
if($spieler['ist_reihe'] == 6) $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 6 = $gewinn_6 $guthaben[waehrung]
";
else $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 6 = $gewinn_6 $guthaben[waehrung]
";
if($spieler['ist_reihe'] == 7) $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 7 = $gewinn_7 $guthaben[waehrung]
";
else $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 7 = $gewinn_7 $guthaben[waehrung]
";
if($spieler['ist_reihe'] == 8) $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 8 = $gewinn_8 $guthaben[waehrung]
";
else $gewinn_liste .= " » " . $lang->get('LANG_GHMASTERMIND_SPIELEN_GL_REIHE') . " 8 = $gewinn_8 $guthaben[waehrung]
";
$gewinn_liste .= "
";
} else {
// Statt der Liste 7 Leerzeilen, damit die Knoepfe getrennt sind
$gewinn_liste = "
";
}
// Generieren der Spielreihen S
$spielreihen = '';
$spielreihe_loesung = explode('|',$spieler['loesung']);
if($spieler['reihe_1'] != '') {
$spielreihe_daten = explode('|',$spieler['reihe_1']);
$spielreihen .= spielreihe_generieren(1);
} else {
$spielreihen .= spielreihe_generieren(1,0);
}
if($spieler['reihe_2'] != '') {
$spielreihe_daten = explode('|',$spieler['reihe_2']);
$spielreihen .= spielreihe_generieren(2);
} else {
$spielreihen .= spielreihe_generieren(2,0);
}
if($spieler['reihe_3'] != '') {
$spielreihe_daten = explode('|',$spieler['reihe_3']);
$spielreihen .= spielreihe_generieren(3);
} else {
$spielreihen .= spielreihe_generieren(3,0);
}
if($spieler['reihe_4'] != '') {
$spielreihe_daten = explode('|',$spieler['reihe_4']);
$spielreihen .= spielreihe_generieren(4);
} else {
$spielreihen .= spielreihe_generieren(4,0);
}
if($spieler['reihe_5'] != '') {
$spielreihe_daten = explode('|',$spieler['reihe_5']);
$spielreihen .= spielreihe_generieren(5);
} else {
$spielreihen .= spielreihe_generieren(5,0);
}
if($spieler['reihe_6'] != '') {
$spielreihe_daten = explode('|',$spieler['reihe_6']);
$spielreihen .= spielreihe_generieren(6);
} else {
$spielreihen .= spielreihe_generieren(6,0);
}
if($spieler['reihe_7'] != '') {
$spielreihe_daten = explode('|',$spieler['reihe_7']);
$spielreihen .= spielreihe_generieren(7);
} else {
$spielreihen .= spielreihe_generieren(7,0);
}
if($spieler['reihe_8'] != '') {
$spielreihe_daten = explode('|',$spieler['reihe_8']);
$spielreihen .= spielreihe_generieren(8);
} else {
$spielreihen .= spielreihe_generieren(8,0);
}
// Generieren der Spielreihen E
if(isset($_GET['fehler'])) {
$fehler = $_GET['fehler'];
} else {
$fehler = 0;
}
eval ("\$tpl->output(\"".$tpl->get("gh_mastermind_spielen")."\");");
exit();
}
/* Anleitung */
if($action == 'anleitung') {
$lang->items['LANG_GHMASTERMIND_ANLEITUNG_TEXT'] = $lang->get('LANG_GHMASTERMIND_ANLEITUNG_TEXT', array('$SID_ARG_1ST' => $SID_ARG_1ST));
eval ("\$tpl->output(\"".$tpl->get("gh_mastermind_anleitung")."\");");
exit();
}
/* Admin speichern */
if($action == 'admin_speichern' && $wbbuserdata['a_can_ghmastermind_admin']) {
$db->query("UPDATE bb".$n."_gh_mastermind_config SET onoff = '".$_POST['onoff']."', gut_spielen = '".$_POST['gut_spielen']."' WHERE id = '1'");
header("Location: gh_mastermind.php" . $SID_ARG_1ST);
exit();
}
?>