<html><body>
<form method="post">
<select size="2" name="number">
<option value="number1">1</option>
<option value="number2">2</option>
<option value="number3">3</option>
<option value="number4">4</option>
<option value="number5">5</option>
</select>
<br><input type="submit" value="Старт">
</form>
<?php
$gn=rand(1,5);
$vn=$_POST[number];
if ($gn=$vn) { echo "Вы выйграли"; }
elseif (!isset($vn)) { echo "Выберите число"; }
elseif ($gn!=$vn) { echo "Вы проиграли"; }
?>
</body></html>
Вообщем вот такой скрипт. Он должен генерировать случайное число от 1 до 5, и если вы угадали вам пишется вы выйграли если нет то вы проиграли или выберите число, если ничего не выбрано скрипт работает правильно, но во всех остальных случаях пишется вы угадали . почему так?
Спустя 15 минут, 24 секунды (14.06.2010 - 19:53) Unlikely написал(а):
Думаю так
<?php
$gn = rand(1,5);
if(isset($_POST['number'])) {
$vn = $_POST['number'];
if ($vn == $gn) {
echo "Вы выйграли";
}
else {
if($vn != $gn) { echo "Вы проиграли"; }
}
}
else {
echo "Выберите число";
}
?>
Спустя 20 минут, 32 секунды (14.06.2010 - 20:13) Kingcss написал(а):
в любом случает проиграли пишется
Спустя 16 минут, 28 секунд (14.06.2010 - 20:30) tomash написал(а):
так может ты угадать не можешь? )))) Переменная то меняеться
Спустя 1 час, 6 минут, 23 секунды (14.06.2010 - 21:36) Rand написал(а):
У тебя в option value прописаны number1-number5, а надо числа. И лучше использовать mt_rand:
<form method="post">
<select size="2" name="number">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br><input type="submit" value="Старт">
</form>
<?php
$gn = mt_rand(1,5);
if(isset($_POST['number'])) {
$vn = $_POST['number'];
if ($vn == $gn) echo "Вы выйграли! Загаданное число: ".$gn;
else if($vn != $gn) echo "Вы проиграли! Загаданное число: ".$gn;
}
else echo "Выберите число!";
?>
Спустя 1 час, 6 минут, 48 секунд (14.06.2010 - 22:43) FatCat написал(а):
Афигеть...
<script type="text/javascript">Действующий образец:
var num = 5; // Количество кнопок
function may(i){
s = parseInt(num*Math.random());
if(i==s)alert('Вы выиграли! Загаданное число: '+(s+1));
else alert('Вы проиграли! Загаданное число: '+(s+1));
}
document.write('<form action="javascript:;">');
for(i=0;i<num;i++)document.write('<input type="reset" value="'+(i+1)+'" onclick="javascript:may('+i+')">');
document.write('</form>');
</script>
Спустя 6 дней, 21 час, 43 минуты, 45 секунд (21.06.2010 - 20:27) Kingcss написал(а):
вот гляньте еще скриптик:Это счетчик побед и поражений.
<?php
$win=0;
$lose=0;
$gn = mt_rand(1,2);
if(isset($_POST['number']))
{ $vn=$_POST['number'];
if ($vn == $gn) { echo "<img src=images\win.jpg><br>Вы выйграли! Загаданное число:".$gn;
$win=$win+1; }
elseif ($vn != $gn) { echo "<img src=images\lose.jpg><br>Вы проиграли! Загаданное число:".$gn;
$lose=$lose+1; }
}else { echo "Выберите число"; }
echo "<br>Вы выйграли $win раз";
echo "<br>Вы проиграли $lose раз";
?>
этот не работает счетчик сбивается каждый раз. Исправьте плиз а то я не знаю как сделать
<?php
$win=0;
$lose=0;
$gn = mt_rand(1,2);
if(isset($_POST['number']))
{ $vn=$_POST['number'];
if ($vn == $gn) { echo "<img src=images\win.jpg><br>Вы выйграли! Загаданное число:".$gn;
$win=$win+1; }
elseif ($vn != $gn) { echo "<img src=images\lose.jpg><br>Вы проиграли! Загаданное число:".$gn;
$lose=$lose+1; }
}else { echo "Выберите число"; }
echo "<br>Вы выйграли $win раз";
echo "<br>Вы проиграли $lose раз";
?>
этот не работает счетчик сбивается каждый раз. Исправьте плиз а то я не знаю как сделать
Спустя 39 минут, 43 секунды (21.06.2010 - 21:06) Night User написал(а):
Спустя 22 минуты, 39 секунд (21.06.2010 - 21:29) Kingcss написал(а):
ладно. можете поправить скрипт чтобы он открывал файл stat.dat и в первую строку записывал победы а во вторую поражения.
Спустя 7 минут, 53 секунды (21.06.2010 - 21:37) tomash написал(а):
<?php
session_start();
$gn = mt_rand(1,2);
if(isset($_POST['number']))
{ $vn=$_POST['number'];
if ($vn == $gn) { echo "<img src=images\win.jpg><br>Вы выйграли! Загаданное число:".$gn;
$win = $_SESSION['win'] = (!isset($_SESSION['win']))?1:$_SESSION['win']+1; }
elseif ($vn != $gn) { echo "<img src=images\lose.jpg><br>Вы проиграли! Загаданное число:".$gn;
$lose = $_SESSION['lose'] = (!isset($_SESSION['lose']))?1:$_SESSION['lose']+11; }
}else { echo "Выберите число"; }
echo "<br>Вы выйграли $win раз";
echo "<br>Вы проиграли $lose раз";
?>
Спустя 12 минут, 49 секунд (21.06.2010 - 21:50) Kingcss написал(а):
это понятно, но как записывать это в текстовый файл:1строка - победв,2строка- поражения
Спустя 3 минуты, 15 секунд (21.06.2010 - 21:53) tomash написал(а):
Kingcss
Если то что выше понятно, то какие проблемы записать в файл?
http://i-vd.org.ru/books/php/files.shtml
Если то что выше понятно, то какие проблемы записать в файл?
http://i-vd.org.ru/books/php/files.shtml
Спустя 15 минут, 48 секунд (21.06.2010 - 22:09) Kingcss написал(а):
записывать в файл я умею но не понимаю как читать 2строку , первую читаю: fread или fgets а как 2и 3
Спустя 6 минут, 42 секунды (21.06.2010 - 22:16) tomash написал(а):
file() возвращает содержимое прочитанного файла в виде массива. Каждый элемент возвращенного массива содержит соответствующую строку с символами конца строки.
file_get_contents -- Получить содержимое файла в виде одной строки
file_get_contents -- Получить содержимое файла в виде одной строки
Спустя 1 час, 35 минут, 47 секунд (21.06.2010 - 23:51) denlam написал(а):
вот здесь ошибку заметил
= это оператор присваивания, а сравнение это ==, то есть правильнее будет
if ($gn=$vn) { echo "Вы выйграли"; }
= это оператор присваивания, а сравнение это ==, то есть правильнее будет
if ($gn==$vn) { echo "Вы выйграли"; }
Спустя 4 минуты, 8 секунд (21.06.2010 - 23:55) denlam написал(а):
упс, я че-то поздновато оставил сообщение
Спустя 23 часа, 23 минуты, 31 секунда (22.06.2010 - 23:19) Kingcss написал(а):
Вообщем вот переделал немног кодик, но чет я запутался, капитально и ошибок дофига.
<?php
$fil= fopen("stat.txt", "r");
$tex= file("stat.txt");
fclose($fil);
$gn = mt_rand(1,2);
if(isset($_POST['number']))
{ $vn=$_POST['number'];
if ($vn == $gn) { echo "<img src=images\win.jpg><br>Вы выйграли! Загаданное число:".$gn;
$texta=$tex[0]+1; }
elseif ($vn != $gn) { echo "<img src=images\lose.jpg><br>Вы проиграли! Загаданное число:".$gn;
$textb=$tex[1]+1; }
}else { echo "Выберите число"; }
$file = fopen("stat.txt",'w');
fwrite($file, str_replace('$tex[0]','$texta','$tex'));
fwrite($file, "\n");
fwrite($file, str_replace('$tex[1]','$textb','$tex'));
fclose($file);
?>
Можете как нить помочь оптимизировать код: мне нужно чтобы в файл stat.txt в первую строку записывались количество побед,а во вторую - поражений, а то у меня запутанно очень.
<?php
$fil= fopen("stat.txt", "r");
$tex= file("stat.txt");
fclose($fil);
$gn = mt_rand(1,2);
if(isset($_POST['number']))
{ $vn=$_POST['number'];
if ($vn == $gn) { echo "<img src=images\win.jpg><br>Вы выйграли! Загаданное число:".$gn;
$texta=$tex[0]+1; }
elseif ($vn != $gn) { echo "<img src=images\lose.jpg><br>Вы проиграли! Загаданное число:".$gn;
$textb=$tex[1]+1; }
}else { echo "Выберите число"; }
$file = fopen("stat.txt",'w');
fwrite($file, str_replace('$tex[0]','$texta','$tex'));
fwrite($file, "\n");
fwrite($file, str_replace('$tex[1]','$textb','$tex'));
fclose($file);
?>
Можете как нить помочь оптимизировать код: мне нужно чтобы в файл stat.txt в первую строку записывались количество побед,а во вторую - поражений, а то у меня запутанно очень.
Спустя 34 минуты, 2 секунды (22.06.2010 - 23:53) Night User написал(а):
<?php
$tex = file('stat.txt');
$win = intval($tex['0']) ? intval($tex['0']) : 0;
$lose = intval($tex['1']) ? intval($tex['1']) : 0;
if ( isset($_POST['number']) )
{
$gn = mt_rand(1,5);
$vn = intval($_POST['number']);
if ( $vn == $gn )
{
echo '<img src=images/win.jpg><br/>Вы выиграли! Загаданное число: '.$gn;
$win++;
}
else
{
echo '<img src=images/lose.jpg><br/>Вы проиграли! Загаданное число: '.$gn;
$lose++;
}
}
else
{
echo 'Выберите число';
}
file_put_contents('stat.txt', $win."\n".$lose);
echo '<form method="post" action="">
<select name="number">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br/>
<input type="submit" name="submit" value="Старт"/>
</form>
<br/>
Побед: '.$win.'. Поражений: '.$lose.'.';
Спустя 12 часов, 7 минут, 48 секунд (23.06.2010 - 12:01) Kingcss написал(а):
Спасиб всем кто помогал. И вопрос один:
file_put_contents('stat.txt', $win."\n".$lose); \\тут мы записываем $win , пропускаем строку, и записываем $lose. И еще вопрос: Допустим делаем мы стату для 10цифр и мне нужно чтобы победы и поражения писались на 3 и 4 строку этого файла stat.txt. Как сделать так, чтобы первые две строки не писались
file_put_contents('stat.txt', $win."\n".$lose); \\тут мы записываем $win , пропускаем строку, и записываем $lose. И еще вопрос: Допустим делаем мы стату для 10цифр и мне нужно чтобы победы и поражения писались на 3 и 4 строку этого файла stat.txt. Как сделать так, чтобы первые две строки не писались
Спустя 40 минут, 52 секунды (23.06.2010 - 12:42) Ice написал(а):
Цитата (Kingcss @ 23.06.2010 - 13:01) |
Спасиб всем кто помогал. И вопрос один: file_put_contents('stat.txt', $win."\n".$lose); \\тут мы записываем $win , пропускаем строку, и записываем $lose. И еще вопрос: Допустим делаем мы стату для 10цифр и мне нужно чтобы победы и поражения писались на 3 и 4 строку этого файла stat.txt. Как сделать так, чтобы первые две строки не писались |
чтоб файл рос?
file_put_contents('stat.txt', "{$win}\n{$lose}", FILE_APPEND);