PHP выбирает сторону, в которой умирает? - PullRequest
2 голосов
/ 10 октября 2009

php-раздел моего кода не выполняет правильных операций когда пользователь отправляет свой номер, например, если пользователь отправляет 5, я хочу, чтобы функция rand случайным образом выводила 5 как выбранное число; однако мой код иногда работает, а иногда не работает.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">


<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>
choose a die number
</title>
</head>
<center>
<body>
<h1>Choose a die number</h1>
<form method = "post" action="choosedie.php"/>
<!--If the user selects a number of sides the die is suppose to have
rand should go through and pick the number randomly, and echo out the 
number that was entered by the user-->

Please choose how many sides a die should have from 1 through 6:
<br/>
<input type = "text" name = "roll"/>
<?php


//Roll a random dice from 1 through 6:
$roll = rand(1,6);
// Add random variable to do comparison on.

Есть ли способ для меня просто сравнить rand здесь без необходимости создания другой переменной?

$random  = rand(1,6);

// If $roll is equal to $random echo the output out to the user.
If ($roll == $random)
{
echo "<br/>Here is the random $roll with the appropriate maximum value $random\n";

Если пользователь выбирает 5, я хочу, чтобы это выводилось 5, но я получаю другие значения?

}


?>


</body>
</center>
</html>

Ответы [ 3 ]

6 голосов
/ 10 октября 2009

Поскольку rand(n,m) возвращает целочисленное значение, вы должны иметь возможность сделать следующее:

if(rand(1,6) == $guess){
    echo "Congratulations - your guess of $guess was right!";
}
else{
    echo "No dice - better luck next time.";
}
1 голос
/ 10 октября 2009

I думаю, что вы пытаетесь сделать, это попросить пользователя ввести, сколько сторон у кристалла, а затем вывести, какое значение? Этот вопрос не имеет большого смысла ... но если вы пытаетесь сделать вышеуказанное, это должно сработать:

choosedie.php

<h1>Choose a die number</h1>
<form method = "post" action="choosedie.php"/> 
Please choose how many sides a die should have from 1 through 6:
<br/>
<input type="text" name="roll"/>
<input type="submit" value="Submit" />
</form>

<?php
if (isset($_POST["roll"])) {
  $roll = rand(1, $_POST["roll"]);
  printf("A %s was rolled, with a maximum roll of %s", $roll, $_POST["roll"]);
}
?>

Это позволит пользователю ввести количество сторон, которое имеет штамп, а затем распечатать то, что было свернуто вместе с количеством сторон.

1 голос
/ 10 октября 2009

Я не уверен, что ты пытаешься сделать. Каждый раз, когда эта страница загружается, она выбирает два случайных числа, $ random и $ roll, и, если они равны, печатает их.

Если вы хотите получить ввод от пользователя, вам нужно будет использовать $ _POST.

$users_dice_roll = $_POST["roll"];
$random_dice_roll = rand(1,6);
if($random_dice_roll == $users_dice_roll){
    echo "You rolled: $users_guess";
}

Кроме того, вам не нужна кнопка отправки?

...