当前位置: 首页>>代码示例>>PHP>>正文


PHP CR3DCQuery::MoveNotification方法代码示例

本文整理汇总了PHP中CR3DCQuery::MoveNotification方法的典型用法代码示例。如果您正苦于以下问题:PHP CR3DCQuery::MoveNotification方法的具体用法?PHP CR3DCQuery::MoveNotification怎么用?PHP CR3DCQuery::MoveNotification使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CR3DCQuery的用法示例。


在下文中一共展示了CR3DCQuery::MoveNotification方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: die


//.........这里部分代码省略.........
                $timing_mode = (int) mysql_result($return, 0, "time_mode");
                $m1 = (int) @mysql_result($return, $i, 'moves1');
                $m2 = (int) @mysql_result($return, $i, 'moves2');
                $t1 = (int) @mysql_result($return, $i, 'time1') * 60;
                $t2 = (int) @mysql_result($return, $i, 'time2') * 60;
                //$timing_type = mysql_result($return, 0, "o_timetype");
                $game_update = array();
                if ($timing_mode == 1) {
                    $now = time();
                    //$timetype = substr(trim(strtolower($timing_type)), 2);
                    // If time controls are used, get the number of moves to work out which time control
                    // applies. If a time control has been reached, remove the required time to the player's
                    // 'used' time.
                    if ($m1) {
                        $query = "SELECT count(*) as `count` FROM move_history WHERE game_id = '{$gid}' AND player_id = {$player_id}";
                        $return = mysql_query($query) or die(mysql_error());
                        $move_cnt = mysql_result($return, 0, 'count');
                        if ($move_cnt == $m1) {
                            if ($next_color == 'b') {
                                $w_time_used -= $t1;
                            } elseif ($next_color == 'w') {
                                $b_time_used -= $t1;
                            }
                        } elseif ($move_cnt > $m1) {
                            if (($move_cnt - $m1) % $m2 == 0) {
                                if ($next_color == 'b') {
                                    $w_time_used -= $t2;
                                } elseif ($next_color == 'w') {
                                    $b_time_used -= $t2;
                                }
                            }
                        }
                    }
                    // Get the 2nd last move's time. Subtract the move's time from the current time to work
                    // out how long it took the player to make this move. The first move made doesn't
                    // attract any time usage.
                    $query = "SELECT `time` FROM move_history WHERE game_id = '{$gid}' ORDER BY `time` DESC LIMIT 1,1";
                    $return = mysql_query($query) or die(mysql_error());
                    $num = mysql_numrows($return);
                    if ($num != 0) {
                        $last_move_time = (int) trim(mysql_result($return, 0, "time"));
                    } else {
                        $last_move_time = $now;
                        $game_update[] = "start_time = {$now}";
                    }
                    $diff = $now - $last_move_time;
                    if ($next_color == 'w') {
                        $game_update[] = "b_time_used=" . ($b_time_used + $diff);
                    } else {
                        $game_update[] = "w_time_used=" . ($w_time_used + $diff);
                    }
                }
                $game_update[] = "next_move='{$next_color}'";
                $game_update = implode(', ', $game_update);
                $st = "UPDATE game SET {$game_update} WHERE game_id='" . $gid . "'";
                //echo "run $st";
                //exit();
                mysql_query($st) or die(mysql_error());
                $st = "INSERT INTO message_queue(player_id, message, posted) VALUES(" . $other_player . ",'" . $this->add_header("M", $move_stat . $this->zero_pad($player_id, 8) . $gid . $move, "0") . "'," . time() . ")";
                mysql_query($st) or die(mysql_error());
                //////////////////////////////////////////////
                //Instantiate theCR3DCQuery Class
                $oR3DCQuery = new CR3DCQuery($this->ChessCFGFileLocation);
                $isblack = $oR3DCQuery->IsPlayerBlack($this->ChessCFGFileLocation, $gid, $other_player);
                $isrealtime = $oR3DCQuery->IsRequestRealTime($this->ChessCFGFileLocation, $gid, $isblack);
                if ($oR3DCQuery->MoveNotification($other_player) == true && $isrealtime != "IDS_REAL_TIME") {
                    $requestorname = $oR3DCQuery->GetUserIDByPlayerID($this->ChessCFGFileLocation, $player_id);
                    $otherguysname = $oR3DCQuery->GetUserIDByPlayerID($this->ChessCFGFileLocation, $other_player);
                    $otheremail = $oR3DCQuery->GetEmailByPlayerID($this->ChessCFGFileLocation, $other_player);
                    $subject = $this->GetStringFromStringTable("IDS_CR3DCQUERY_EMAIL_TVST_17", $ConfigFile);
                    $aTags1 = array("['otherguysname']", "['requestorname']", "['gid']", "['move']", "['siteurl']", "['sitename']");
                    $aReplaceTags1 = array($otherguysname, $requestorname, $gid, $move, $this->TrimRSlash($conf['site_url']), $conf['site_name']);
                    $bodyp1 = str_replace($aTags1, $aReplaceTags1, $this->GetStringFromStringTable("IDS_CR3DCQUERY_EMAIL_TVST_18", $ConfigFile));
                    $this->SendEmail($otheremail, $conf['registration_email'], $conf['site_name'], $subject, $bodyp1);
                }
                unset($oR3DCQuery);
                //////////////////////////////////////////////
                //////////////////////////////////////////////
                //Check if the king was killed
                //////////////////////////////////////////////
                $FEN = $this->request_FEN($this->ChessCFGFileLocation, $gid);
                $Moves = "";
                $RestOfSentence = "";
                list($Moves, $RestOfSentence) = preg_split("/ /", $FEN);
                $nwhitek = strpos($Moves, 'k');
                if ($nwhitek === false) {
                    $st = "UPDATE game SET status='C', completion_status='B' WHERE game_id='" . $gid . "'";
                    mysql_query($st) or die(mysql_error());
                }
                $nblackk = strpos($Moves, 'K');
                if ($nblackk === false) {
                    $st = "UPDATE game SET status='C', completion_status='W' WHERE game_id='" . $gid . "'";
                    mysql_query($st) or die(mysql_error());
                }
                //////////////////////////////////////////////
                $move_stat = "S";
            }
        }
        return $move_stat . $this->zero_pad($player_id, 8) . $gid . $move;
    }
开发者ID:robertohernando,项目名称:phpchess,代码行数:101,代码来源:CChess.php


注:本文中的CR3DCQuery::MoveNotification方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。