php实现猜数字
PHP实现猜数字游戏
以下是一个简单的PHP猜数字游戏实现方式,用户可以输入猜测的数字,系统会提示猜大了或猜小了,直到猜中为止。
基础实现代码
<?php
$targetNumber = rand(1, 100); // 生成1-100的随机数
$guessCount = 0;
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$userGuess = (int)$_POST['guess'];
$guessCount = (int)$_POST['guessCount'] + 1;
if ($userGuess < $targetNumber) {
$message = "猜小了!";
} elseif ($userGuess > $targetNumber) {
$message = "猜大了!";
} else {
$message = "恭喜你猜对了!用了{$guessCount}次。";
}
} else {
$message = "猜一个1-100之间的数字";
$targetNumber = rand(1, 100);
$guessCount = 0;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>猜数字游戏</title>
</head>
<body>
<h1>猜数字游戏</h1>
<p><?php echo $message; ?></p>
<form method="post">
<input type="number" name="guess" min="1" max="100" required>
<input type="hidden" name="guessCount" value="<?php echo $guessCount; ?>">
<button type="submit">猜</button>
</form>
</body>
</html>
增强版实现
<?php
session_start();
if (!isset($_SESSION['targetNumber']) || isset($_POST['reset'])) {
$_SESSION['targetNumber'] = rand(1, 100);
$_SESSION['guessCount'] = 0;
$message = "猜一个1-100之间的数字";
} else {
$_SESSION['guessCount']++;
$userGuess = (int)$_POST['guess'];
if ($userGuess < $_SESSION['targetNumber']) {
$message = "猜小了!";
} elseif ($userGuess > $_SESSION['targetNumber']) {
$message = "猜大了!";
} else {
$message = "恭喜你猜对了!用了{$_SESSION['guessCount']}次。";
session_destroy(); // 游戏结束清除session
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>猜数字游戏</title>
</head>
<body>
<h1>猜数字游戏</h1>
<p><?php echo $message; ?></p>
<form method="post">
<input type="number" name="guess" min="1" max="100" required>
<button type="submit">猜</button>
</form>
<form method="post">
<input type="hidden" name="reset" value="1">
<button type="submit">重新开始</button>
</form>
</body>
</html>
实现说明
第一个示例使用简单的POST方式传递数据,每次刷新页面会重新生成随机数。第二个示例使用session保存游戏状态,可以保持游戏连续性。
游戏逻辑包含以下关键部分:
- 生成随机目标数字
- 获取用户输入并验证
- 比较用户猜测与目标数字
- 提供反馈信息
- 记录猜测次数
- 提供重新开始选项
可以根据需要调整数字范围或增加更多功能,如限制最大猜测次数、添加难度选择等。







