Я пытаюсь создать простую игру Rock, Paper, Scissors. Я использую стек XAMPP. Я успешно извлек пользовательский выбор камней, бумаги или ножниц и вставил их в таблицу. Я также успешно создал случайный "выбор от противника" с помощью array_rand, но я не могу вставить эту переменную/целое в таблицу ALSO в одно и то же время. Я смог в один момент вставить "выбор оппонентов", но никогда не с выбором пользователей, всегда один или другой. И, я полагаю, что я бы конвертировал оба варианта в целые числа, а затем использовал if/else для определения победителя каждой игры, но, как я ее протестировал, он не всегда дает правильный ответ. Я думаю, что есть, вероятно, какой-то ненужный код, такой как var_dump, который у меня есть, поэтому я вижу, что я успешно преобразовал выбор в целые числа, чтобы я мог сравнивать варианты, чтобы логически определить победителя, например. Спасибо за любую помощь.
<html>
<body>
<p> Make your move! Choose:</p>
<p> Paper, Rock, or Scissors</p>
<form action="rps.php" method="post" id="playform">
<select name="playermove" id="quantity">
<option value="1" selected="selected">Rock</option>
<option value="2">Paper</option>
<option value="3">Scissors</option>
</select>
</form>
<button type="submit" form="playform" value="submit">1, 2, 3....GO!
</button>
</body>
</html>
<?php
require 'connection.php';
$conn = Connect();
$pmove = $conn->real_escape_string($_POST['playermove']);
$omove = $conn->(['oppmove']);
$query = "INSERT into rpstwo.tb_rps2 (playermove) VALUES ('" . $pmove .
"')";
$success = $conn->query($query);
if (!$success) {
die("Couldn't enter data: ".$conn->error);
}
$yourvar = intval($pmove);
echo "You chose: " . $yourvar . "<br>";
var_dump($yourvar);
echo "<br>";
$oppdecision = array('rock', 'paper', 'scissors');
$oppresult = array_rand($oppdecision, 1);
echo "Your opponent chose: " . $oppresult . "<br>";
$oppsmove = $oppdecision[$oppresult];
echo $oppsmove . "<br>";
$oppvar = intval($oppresult);
var_dump($oppvar);
$sql = "INSERT into rpstwo.tb_rps2 (oppmove) VALUES ('" . $omove .
"')";
$success = $conn->query($sql);
if ($yourvar = 1 & $oppvar = 0) {
echo '<br>' . "you tie";
} elseif ($yourvar = 1 & $oppvar = 1) {
echo '<br>' . "you lose";
} elseif ($yourvar = 1 & $oppvar = 2) {
echo '<br>' . "you win";
} else {
echo '<br>' . "Good game!";
}
$conn->close();
?>
Приведенный ниже код фиксирует ваше сообщение в БД. Он не устанавливает проблем с возможностями WIN/LOSE/DRAW. Вы также должны знать, что ваш код помещает целое число для playermove и текста (камень, бумага, ножницы) для перемещения противника. У вас есть два оператора Insert, которые будут создавать две отдельные строки для каждой игры.
$pmove = $_POST['playermove'];
$yourvar = intval($pmove);
echo "You chose: " . $yourvar . "<br>";
echo "<br>";
$oppdecision = array('rock', 'paper', 'scissors');
$oppresult = array_rand($oppdecision, 1);
echo "Your opponent chose: " . $oppresult . "<br>";
$oppsmove = $oppdecision[$oppresult];
echo $oppsmove . "<br>";
$oppvar = intval($oppresult);
$sql = "INSERT into tb_rps2 (oppmove,playermove) VALUES ('$oppresult','$pmove')";
$success = $conn->query($sql);
if ($yourvar = 1 & $oppvar = 0) {
echo '<br>' . "you tie";
} elseif ($yourvar = 1 & $oppvar = 1) {
echo '<br>' . "you lose";
} elseif ($yourvar = 1 & $oppvar = 2) {
echo '<br>' . "you win";
} else {
echo '<br>' . "Good game!";
}
$conn->close();