[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите новичку
Kingcss
Вообщем есть скрипт:
<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 раз";
?>
этот не работает счетчик сбивается каждый раз. Исправьте плиз а то я не знаю как сделать

Спустя 39 минут, 43 секунды (21.06.2010 - 21:06) Night User написал(а):
win и lose в сессию, а не в переменные

про сессии читаем тут

ну или coockie еще можно ставить...

Спустя 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

Спустя 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 -- Получить содержимое файла в виде одной строки

Спустя 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 в первую строку записывались количество побед,а во вторую - поражений, а то у меня запутанно очень.

Спустя 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. Как сделать так, чтобы первые две строки не писались

Спустя 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);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.