|
|
|
|
|
для: sim5
(29.09.2010 в 10:48)
| | Еще раз спасибо, все что не нужно убрала | |
|
|
|
|
|
|
|
для: Trianon
(29.09.2010 в 10:46)
| | Ничего он не сделал, это у меня так пример, начания header('Content-type: text/html; charset=utf-8');, а все в 1251... Думаю леди это поняла. ;-) | |
|
|
|
|
|
|
|
для: selma
(29.09.2010 в 10:31)
| | >передаются и загадываются на латинице (поэтому даже iconv не требуется:)),
А чего же вы тогда мадам в изначальном коде своем применяте функции для работы с мультибайными строками, если у вас и слово латиница ну и соответсвенно буквы угадываемые? | |
|
|
|
|
|
|
|
для: sim5
(29.09.2010 в 10:06)
| | зачем Вы человека накормили двойным iconv'ом?
Что он Вам сделал? | |
|
|
|
|
|
|
|
для: sim5
(29.09.2010 в 10:29)
| | я добавила проверку на существование букв в сессии, чтобы не дублировались, а буквы у меня передаются и загадываются на латинице (поэтому даже iconv не требуется:)), а потом транлитируются для пользователя
+ выводится алфавит, и если букву нажали, то эта буква из алфавита убирается, так что сейчас игра вполне закончена:) | |
|
|
|
|
|
|
|
для: selma
(29.09.2010 в 10:16)
| | Добавьте перевод получаемых букв в нижний регистр. | |
|
|
|
|
|
|
|
для: sim5
(29.09.2010 в 10:06)
| | УРА! Теперь все работает, спасибо вам огромное!!! немного доработаю, и будет отлично. спасибо | |
|
|
|
|
|
|
|
для: selma
(29.09.2010 в 09:56)
| | Правильно, не там надо проверять и не так. )
<?
$_SESSION['word'] = "слово";
$_SESSION['word'] = iconv("UTF-8","windows-1251",$_SESSION['word']);
$max = 10; //число попыток
if(!isset($_SESSION['liter'])) $_SESSION['liter'] = array();
if(!isset($_SESSION['error'])) $_SESSION['error'] = $max;
$word = &$_SESSION['word'];
$liter = &$_SESSION['liter'];
$_GET['liter'] = isset($_GET['liter']) ? iconv("UTF-8","windows-1251",trim($_GET['liter'])) : "";
if($_SESSION['error']) {
if($_GET['liter']) $liter[] = $_GET['liter'];
if($_GET['liter'] && !stristr($word, $_GET['liter'])) $_SESSION['error']--;
for($i=0, $k=0; $i<strlen($word); $i++) {
if(in_array($word[$i], $liter)) {
echo iconv("windows-1251","UTF-8",$word[$i]);
$k++;
} else echo "*";
}
echo $k == strlen($word) ? iconv("windows-1251","UTF-8", "<br>Угадали!") : ($liter ?
iconv("windows-1251","UTF-8", "<br>Названы буквы: " . implode(",", $liter)) : null);
} else {
echo iconv("windows-1251","UTF-8", "<br>Приехали...");
$_SESSION['error'] = $max; //заново
}
|
| |
|
|
|
|
|
|
|
для: sim5
(29.09.2010 в 09:12)
| | не работает так: проверяем
echo "Попыток ".$_SESSION['error']." из 11";
|
при любой, даже угаданой букве Внимание! сразу показывает 5 попыток (слово "слово" состоит из 5 букв) | |
|
|
|
|
|
|
|
для: selma
(29.09.2010 в 08:39)
| | Ну можно добавить в сессию счетчик, например, $_SESSION['error'], изначально равный ноль (при начале игры), который инкрементировать при неугадывании:
<?
//.....
if(in_array($word[$i], $liter)) {
echo iconv("windows-1251","UTF-8",$word[$i]);
$k++;
} else {
echo "*";
if($_SESSION['error'] < $max) $_SESSION['error']++;
}
//.....
//проверка $_SESSION['error'] и решение
//иначе при прерывании цикла (как сперва было предложено)
//не все слово может быть выведено
|
| |
|
|
|
|