function update_oko_ans($glob, $name, $ans) { $last_waiting_ans = find_last_waiting_ans($glob); if ($name == "ok") { $glob['list_action'][$last_waiting_ans]['waiting_answer'] = 1; $glob['time_c'] += 7; $glob['bouff_c'] -= 7; if ($glob['list_action'][$last_waiting_ans]['nom_action'] == 'send_fork') { $glob['time_c'] += 35; $glob['bouff_c'] -= 35; $arr_f = array("next" => $glob['time_c'] + 601, "done" => 0); array_push($glob['time_to_fork'], $arr_f); } } else { if ($name == "ko") { $glob['list_action'][$last_waiting_ans]['waiting_answer'] = 2; $glob['list_action'][$last_waiting_ans]['pb'] = 1; $glob['time_c'] += 7; $glob['bouff_c'] -= 7; if ($glob['list_action'][$last_waiting_ans]['nom_action'] == 'send_fork') { $glob['time_c'] += 35; $glob['bouff_c'] -= 35; } } else { aff_error_code("reponse impossible"); } } return $glob; }
function set_last_waiting_ans($glob, $name, $ans) { $last_waiting_ans = find_last_waiting_ans($glob); $name_action_await = name_awaiting_ans($glob); if ($name == "ok" || $name == "ko") { $glob = update_oko_ans($glob, $name, $ans); } else { if ($name_action_await == $name) { if ($name == "inventaire") { $glob['time_c'] += 1; $glob['bouff_c']--; } else { if ($name == "incantation") { $glob['time_c'] += 300; $glob['bouff_c'] -= 300; } else { if ($name == "voir") { $glob['time_c'] += +7; $glob['bouff_c'] -= 7; } else { aff_error_code("message recu incomprhenssible: : " . $name); } } } $glob['list_action'][$last_waiting_ans]['waiting_answer'] = 1; } else { aff_error_code("Decalage entre message serveur attente client"); } } return $glob; }
function do_action($glob) { for ($i = 0; $glob['list_action'][$i]; $i++) { if ($glob['list_action'][$i]['done'] == 0) { $action_name = $glob['list_action'][$i]['nom_action']; if (substr($action_name, 0, 2) == "b_") { $glob['list_action'][$i]['done'] = 1; $glob['list_action'][$i]['waiting_answer'] = 1; $glob = call_user_func($action_name, $glob); $glob['big'] = 1; $glob = update_actions($glob); return $glob; } else { $glob['list_action'][$i]['done'] = 1; $glob['list_action'][$i]['waiting_answer'] = 0; $glob = call_user_func($action_name, $glob); $glob['big'] = 0; $glob = update_actions($glob); return $glob; } } } print_r($glob); test("action end " . $glob['total_action']); // Devrait jamais arrive la aff_error_code("end done"); return $glob; }
function init_pars($argv, $glob) { if (count($argv) == 7 && $argv[1] == "-n" && $argv[3] == '-p' && $argv[5] == '-h') { $glob['equipe'] = $argv[2]; $glob['port'] = $argv[4]; $glob['host'] = $argv[6]; return $glob; } else { aff_error_code("usage : ./client.php -n nom -p port -h host"); exit; } }
function find_action_where_add($glob, $name_action) { /* Trouve l'endroit ou je dois ajouter ce que je dois ajouter */ $cur_list_action = $glob['list_action']; for ($i = 0; $cur_list_action[$i]; $i++) { if ($cur_list_action[$i]['nom_action'] == $name_action && $cur_list_action[$i]['done'] == 1 && $cur_list_action[$i + 1]['done'] == 0) { return $i; } } // print_r($glob['list_action']); test("La c la merde : name action : " . $name_action . "-"); aff_error_code("A pas trouve ou add l action dans la liste "); return $i; }
function b_go_sibur($glob) { $case_to_go = find_shorter_way($glob['vision'], "sibur", $glob['lvl']); if ($case_to_go > 0) { $glob = build_way_to_go($glob, $case_to_go, "b_go_sibur"); return $glob; } else { if ($case_to_go == 0) { return $glob; } else { $glob = error_to_go($glob, 'b_sg_sibur'); return $glob; } } aff_error_code("Out of go stone"); }
function b_go_bouf($glob) { /* 1 cherche le plus cours chemi 2 Build path vers bouf */ $case_to_go = find_shorter_way($glob['vision'], "nourriture", $glob['lvl']); if ($case_to_go > 0) { // on vas chercher le chemin pour aller manger $glob = build_way_to_go($glob, $case_to_go, "b_go_bouf"); return $glob; } else { if ($case_to_go == 0) { //On est sur la bonne case aff_client("Il y a de la nourriture sur ma case !"); return $glob; } else { $glob = error_to_go($glob, 'b_bouff_20'); // il n y a pas de bouf sur la case return $glob; } } aff_error_code("Out of go bouf"); }