实现 24点 出题。

PHP 核心代码

当用户输入“24”时连接数据库,获取随机ID中的4个数字,再打乱顺序(题库中是从小到大)。

if ($keyword == "24") {
    $link = mysql_connect("XXX.aliyuncs.com","rtXXX","XXXXXXX");
    mysql_select_db("rtXXX", $link);
    mysql_set_charset("utf8");
 
    $rand_id = rand(1, 564);
    $sql = mysql_query("SELECT num1,num2,num3,num4 FROM 24dian WHERE  id=$rand_id");
    $num = mysql_fetch_array($sql);
 
    shuffle($num);  //数组重排
 
    $content = $num[0] . " " . $num[1] . " " . $num[2] . " " . $num[3];
    mysql_close($link);
}

MySQL 题库导入

24d

SQL 创建表:

CREATE TABLE `24dian` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `num1` VARCHAR(32) NULL,
    `num2` VARCHAR(32) NULL,
    `num3` VARCHAR(32) NULL,
    `num4` VARCHAR(32) NULL,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci;

SQL 导入题库:

INSERT `24dian`(`num1`,`num2`,`num3`,`num4`) VALUES ('1','1','1','8'), ('1','1','2','6'), ('1','1','2','7'), ('1','1','2','8'), ('1','1','2','9'), ('1','1','2','10'), ('1','1','3','4'), ('1','1','3','5'), ('1','1','3','6'), ('1','1','3','7'), ('1','1','3','8'), ('1','1','3','9'), ('1','1','3','10'), ('1','1','4','4'), ('1','1','4','5'), ('1','1','4','6'), ('1','1','4','7'), ('1','1','4','8'), ('1','1','4','9'), ('1','1','4','10'), ('1','1','5','5'), ('1','1','5','6'), ('1','1','5','7'), ('1','1','5','8'), ('1','1','6','6'), ('1','1','6','8'), ('1','1','6','9'), ('1','1','7','10'), ('1','1','8','8'), ('1','2','2','4'), ('1','2','2','5'), ('1','2','2','6'), ('1','2','2','7'), ('1','2','2','8'), ('1','2','2','9'), ('1','2','2','10'), ('1','2','3','3'), ('1','2','3','4'), ('1','2','3','5'), ('1','2','3','6'), ('1','2','3','7'), ('1','2','3','8'), ('1','2','3','9'), ('1','2','3','10'), ('1','2','4','4'), ('1','2','4','5'), ('1','2','4','6'), ('1','2','4','7'), ('1','2','4','8'), ('1','2','4','9'), ('1','2','4','10'), ('1','2','5','5'), ('1','2','5','6'), ('1','2','5','7'), ('1','2','5','8'), ('1','2','5','9'), ('1','2','5','10'), ('1','2','6','6'), ('1','2','6','7'), ('1','2','6','8'), ('1','2','6','9'), ('1','2','6','10'), ('1','2','7','7'), ('1','2','7','8'), ('1','2','7','9'), ('1','2','7','10'), ('1','2','8','8'), ('1','2','8','9'), ('1','2','8','10'), ('1','3','3','3'), ('1','3','3','4'), ('1','3','3','5'), ('1','3','3','6'), ('1','3','3','7'), ('1','3','3','8'), ('1','3','3','9'), ('1','3','3','10'), ('1','3','4','4'), ('1','3','4','5'), ('1','3','4','6'), ('1','3','4','7'), ('1','3','4','8'), ('1','3','4','9'), ('1','3','4','10'), ('1','3','5','6'), ('1','3','5','7'), ('1','3','5','8'), ('1','3','5','9'), ('1','3','5','10'), ('1','3','6','6'), ('1','3','6','7'), ('1','3','6','8'), ('1','3','6','9'), ('1','3','6','10'), ('1','3','7','7'), ('1','3','7','8'), ('1','3','7','9'), ('1','3','7','10'), ('1','3','8','8'), ('1','3','8','9'), ('1','3','8','10'), ('1','3','9','9'), ('1','3','9','10'), ('1','3','10','10'), ('1','4','4','4'), ('1','4','4','5'), ('1','4','4','6'), ('1','4','4','7'), ('1','4','4','8'), ('1','4','4','9'), ('1','4','4','10'), ('1','4','5','5'), ('1','4','5','6'), ('1','4','5','7'), ('1','4','5','8'), ('1','4','5','9'), ('1','4','5','10'), ('1','4','6','6'), ('1','4','6','7'), ('1','4','6','8'), ('1','4','6','9'), ('1','4','6','10'), ('1','4','7','7'), ('1','4','7','8'), ('1','4','7','9'), ('1','4','8','8'), ('1','4','8','9'), ('1','4','10','10'), ('1','5','5','5'), ('1','5','5','6'), ('1','5','5','9'), ('1','5','5','10'), ('1','5','6','6'), ('1','5','6','7'), ('1','5','6','8'), ('1','5','6','9'), ('1','5','6','10'), ('1','5','7','8'), ('1','5','7','9'), ('1','5','7','10'), ('1','5','8','8'), ('1','5','8','9'), ('1','5','8','10'), ('1','5','9','9'), ('1','5','9','10'), ('1','5','10','10'), ('1','6','6','6'), ('1','6','6','8'), ('1','6','6','9'), ('1','6','6','10'), ('1','6','7','9'), ('1','6','7','10'), ('1','6','8','8'), ('1','6','8','9'), ('1','6','8','10'), ('1','6','9','9'), ('1','6','9','10'), ('1','7','7','9'), ('1','7','7','10'), ('1','7','8','8'), ('1','7','8','9'), ('1','7','8','10'), ('1','7','9','9'), ('1','7','9','10'), ('1','8','8','8'), ('1','8','8','9'), ('1','8','8','10'), ('2','2','2','3'), ('2','2','2','4'), ('2','2','2','5'), ('2','2','2','7'), ('2','2','2','8'), ('2','2','2','9'), ('2','2','2','10'), ('2','2','3','3'), ('2','2','3','4'), ('2','2','3','5'), ('2','2','3','6'), ('2','2','3','7'), ('2','2','3','8'), ('2','2','3','9'), ('2','2','3','10'), ('2','2','4','4'), ('2','2','4','5'), ('2','2','4','6'), ('2','2','4','7'), ('2','2','4','8'), ('2','2','4','9'), ('2','2','4','10'), ('2','2','5','5'), ('2','2','5','6'), ('2','2','5','7'), ('2','2','5','8'), ('2','2','5','9'), ('2','2','5','10'), ('2','2','6','6'), ('2','2','6','7'), ('2','2','6','8'), ('2','2','6','9'), ('2','2','6','10'), ('2','2','7','7'), ('2','2','7','8'), ('2','2','7','10'), ('2','2','8','8'), ('2','2','8','9'), ('2','2','8','10'), ('2','2','9','10'), ('2','2','10','10'), ('2','3','3','3'), ('2','3','3','5'), ('2','3','3','6'), ('2','3','3','7'), ('2','3','3','8'), ('2','3','3','9'), ('2','3','3','10'), ('2','3','4','4'), ('2','3','4','5'), ('2','3','4','6'), ('2','3','4','7'), ('2','3','4','8'), ('2','3','4','9'), ('2','3','4','10'), ('2','3','5','5'), ('2','3','5','6'), ('2','3','5','7'), ('2','3','5','8'), ('2','3','5','9'), ('2','3','5','10'), ('2','3','6','6'), ('2','3','6','7'), ('2','3','6','8'), ('2','3','6','9'), ('2','3','6','10'), ('2','3','7','7'), ('2','3','7','8'), ('2','3','7','9'), ('2','3','7','10'), ('2','3','8','8'), ('2','3','8','9'), ('2','3','8','10'), ('2','3','9','9'), ('2','3','9','10'), ('2','3','10','10'), ('2','4','4','4'), ('2','4','4','5'), ('2','4','4','6'), ('2','4','4','7'), ('2','4','4','8'), ('2','4','4','9'), ('2','4','4','10'), ('2','4','5','5'), ('2','4','5','6'), ('2','4','5','7'), ('2','4','5','8'), ('2','4','5','9'), ('2','4','5','10'), ('2','4','6','6'), ('2','4','6','7'), ('2','4','6','8'), ('2','4','6','9'), ('2','4','6','10'), ('2','4','7','7'), ('2','4','7','8'), ('2','4','7','9'), ('2','4','7','10'), ('2','4','8','8'), ('2','4','8','9'), ('2','4','8','10'), ('2','4','9','9'), ('2','4','9','10'), ('2','4','10','10'), ('2','5','5','7'), ('2','5','5','8'), ('2','5','5','9'), ('2','5','5','10'), ('2','5','6','6'), ('2','5','6','7'), ('2','5','6','8'), ('2','5','6','9'), ('2','5','6','10'), ('2','5','7','7'), ('2','5','7','8'), ('2','5','7','9'), ('2','5','7','10'), ('2','5','8','8'), ('2','5','8','9'), ('2','5','8','10'), ('2','5','9','10'), ('2','5','10','10'), ('2','6','6','6'), ('2','6','6','7'), ('2','6','6','8'), ('2','6','6','9'), ('2','6','6','10'), ('2','6','7','8'), ('2','6','7','9'), ('2','6','7','10'), ('2','6','8','8'), ('2','6','8','9'), ('2','6','8','10'), ('2','6','9','9'), ('2','6','9','10'), ('2','6','10','10'), ('2','7','7','8'), ('2','7','7','10'), ('2','7','8','8'), ('2','7','8','9'), ('2','7','9','10'), ('2','7','10','10'), ('2','8','8','8'), ('2','8','8','9'), ('2','8','8','10'), ('2','8','9','9'), ('2','8','9','10'), ('2','8','10','10'), ('2','9','10','10'), ('3','3','3','3'), ('3','3','3','4'), ('3','3','3','5'), ('3','3','3','6'), ('3','3','3','7'), ('3','3','3','8'), ('3','3','3','9'), ('3','3','3','10'), ('3','3','4','4'), ('3','3','4','5'), ('3','3','4','6'), ('3','3','4','7'), ('3','3','4','8'), ('3','3','4','9'), ('3','3','5','5'), ('3','3','5','6'), ('3','3','5','7'), ('3','3','5','9'), ('3','3','5','10'), ('3','3','6','6'), ('3','3','6','7'), ('3','3','6','8'), ('3','3','6','9'), ('3','3','6','10'), ('3','3','7','7'), ('3','3','7','8'), ('3','3','7','9'), ('3','3','8','8'), ('3','3','8','9'), ('3','3','9','9'), ('3','3','9','10'), ('3','4','4','4'), ('3','4','4','5'), ('3','4','4','6'), ('3','4','4','7'), ('3','4','4','8'), ('3','4','4','9'), ('3','4','4','10'), ('3','4','5','5'), ('3','4','5','6'), ('3','4','5','7'), ('3','4','5','8'), ('3','4','5','9'), ('3','4','5','10'), ('3','4','6','6'), ('3','4','6','8'), ('3','4','6','9'), ('3','4','6','10'), ('3','4','7','7'), ('3','4','7','8'), ('3','4','7','9'), ('3','4','7','10'), ('3','4','8','9'), ('3','4','8','10'), ('3','4','9','9'), ('3','4','10','10'), ('3','5','5','6'), ('3','5','5','7'), ('3','5','5','8'), ('3','5','5','9'), ('3','5','6','6'), ('3','5','6','7'), ('3','5','6','8'), ('3','5','6','9'), ('3','5','6','10'), ('3','5','7','8'), ('3','5','7','9'), ('3','5','7','10'), ('3','5','8','8'), ('3','5','8','9'), ('3','5','9','9'), ('3','5','9','10'), ('3','5','10','10'), ('3','6','6','6'), ('3','6','6','7'), ('3','6','6','8'), ('3','6','6','9'), ('3','6','6','10'), ('3','6','7','7'), ('3','6','7','8'), ('3','6','7','9'), ('3','6','7','10'), ('3','6','8','8'), ('3','6','8','9'), ('3','6','8','10'), ('3','6','9','9'), ('3','6','9','10'), ('3','6','10','10'), ('3','7','7','7'), ('3','7','7','8'), ('3','7','7','9'), ('3','7','7','10'), ('3','7','8','8'), ('3','7','8','9'), ('3','7','9','9'), ('3','7','9','10'), ('3','7','10','10'), ('3','8','8','8'), ('3','8','8','9'), ('3','8','8','10'), ('3','8','9','9'), ('3','8','9','10'), ('3','8','10','10'), ('3','9','9','9'), ('3','9','9','10'), ('3','9','10','10'), ('4','4','4','4'), ('4','4','4','5'), ('4','4','4','6'), ('4','4','4','7'), ('4','4','4','8'), ('4','4','4','9'), ('4','4','4','10'), ('4','4','5','5'), ('4','4','5','6'), ('4','4','5','7'), ('4','4','5','8'), ('4','4','5','10'), ('4','4','6','8'), ('4','4','6','9'), ('4','4','6','10'), ('4','4','7','7'), ('4','4','7','8'), ('4','4','7','9'), ('4','4','7','10'), ('4','4','8','8'), ('4','4','8','9'), ('4','4','8','10'), ('4','4','10','10'), ('4','5','5','5'), ('4','5','5','6'), ('4','5','5','7'), ('4','5','5','8'), ('4','5','5','9'), ('4','5','5','10'), ('4','5','6','6'), ('4','5','6','7'), ('4','5','6','8'), ('4','5','6','9'), ('4','5','6','10'), ('4','5','7','7'), ('4','5','7','8'), ('4','5','7','9'), ('4','5','7','10'), ('4','5','8','8'), ('4','5','8','9'), ('4','5','8','10'), ('4','5','9','9'), ('4','5','9','10'), ('4','5','10','10'), ('4','6','6','6'), ('4','6','6','7'), ('4','6','6','8'), ('4','6','6','9'), ('4','6','6','10'), ('4','6','7','7'), ('4','6','7','8'), ('4','6','7','9'), ('4','6','7','10'), ('4','6','8','8'), ('4','6','8','9'), ('4','6','8','10'), ('4','6','9','9'), ('4','6','9','10'), ('4','6','10','10'), ('4','7','7','7'), ('4','7','7','8'), ('4','7','7','11'), ('4','7','8','8'), ('4','7','8','9'), ('4','7','8','10'), ('4','7','9','9'), ('4','7','9','10'), ('4','7','10','10'), ('4','8','8','8'), ('4','8','8','9'), ('4','8','8','10'), ('4','8','9','9'), ('4','8','9','10'), ('4','8','10','10'), ('4','9','9','10'), ('5','5','5','5'), ('5','5','5','6'), ('5','5','5','9'), ('5','5','6','6'), ('5','5','6','7'), ('5','5','6','8'), ('5','5','7','7'), ('5','5','7','8'), ('5','5','7','10'), ('5','5','8','8'), ('5','5','8','9'), ('5','5','8','10'), ('5','5','9','9'), ('5','5','9','10'), ('5','5','10','10'), ('5','6','6','6'), ('5','6','6','7'), ('5','6','6','8'), ('5','6','6','9'), ('5','6','6','10'), ('5','6','7','7'), ('5','6','7','8'), ('5','6','7','9'), ('5','6','8','8'), ('5','6','8','9'), ('5','6','8','10'), ('5','6','9','9'), ('5','6','9','10'), ('5','6','10','10'), ('5','7','7','9'), ('5','7','7','10'), ('5','7','8','8'), ('5','7','8','9'), ('5','7','8','10'), ('5','7','9','10'), ('5','7','10','10'), ('5','8','8','8'), ('5','8','8','9'), ('5','8','8','10'), ('5','9','10','10'), ('6','6','6','6'), ('6','6','6','8'), ('6','6','6','9'), ('6','6','6','10'), ('6','6','7','9'), ('6','6','7','10'), ('6','6','8','8'), ('6','6','8','9'), ('6','6','8','10'), ('6','6','9','10'), ('6','7','7','10'), ('6','7','8','9'), ('6','7','8','10'), ('6','7','9','9'), ('6','7','10','10'), ('6','8','8','8'), ('6','8','8','9'), ('6','8','8','10'), ('6','8','9','9'), ('6','8','9','10'), ('6','9','9','10'), ('6','10','10','10'), ('7','7','9','10'), ('7','8','8','9'), ('7','8','8','10'), ('7','8','10','10'), ('8','8','8','10');

END

核心代码来源:http://www.php100.com/html/php/api/2013/0908/6073.html

原作设计思路绕死,结果惊天BUG,出题和解答是没验证的,等于说每次出题后,直接输入 24,就对。因为程序只是计算结果是否 24点。