За последние 24 часа нас посетили 17820 программистов и 1646 роботов. Сейчас ищет 861 программист ...

Задачка - программа - психологический тест

Тема в разделе "PHP для новичков", создана пользователем maxmimko, 31 июл 2011.

  1. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Задача:
    Программа - психологический тест.
    Есть 12 выражений. Программа должна выдавать их пользователю в сравнении c друг другом. Еще было бы хорошо что бы сравнение было рамндомным (то-есть не 1 или 2, 2 или 3, а 5 - 1, 11 -7, и так далее), но это не столь важно. По окончании сравнений друг с другом происходят вычисления коэффициентов, небольшие расчеты и выдается текстовый результат.

    Что не получается:Сделать то самое сравнение и желательно на одной странице.
    Что сделано:
    Максимум что у меня получилось, это создания двух страниц. На первой:
    делается выбор - результат в текст бокс и пост на вторую страницу.
    Вторая получает все как нужно.
    Первая страница
    PHP:
    1.  
    2. <body>
    3. <?php
    4.     echo "Что для вас важнее?<br>";
    5.     $a1 = "Активная, деятельная жизнь";
    6.         $a2 = "Здоровье (физическое и психическое здоровье);";
    7.     echo "<br> 1.";
    8.     echo $a1;
    9.     echo "<br> 2.";
    10.     echo $a2;
    11. ?>
    12.    <form name="form1" method="post" action="2.php">
    13.               <label for="textbox">Введите результат</label>
    14.               <p>Введите 1 или 2
    15.                           <input type="text" name="result" id="textbox" size="10"></p>
    16.                           <p><input type="submit" name="submit_button" value="Перейти дальше"></p>
    17. </body>
    18.  
    Вторая страница
    PHP:
    1.  
    2. <?php
    3.     $a1 = "Активная, деятельная жизнь";
    4.         $a2 = "Здоровье (физическое и психическое здоровье)";
    5. $result = $_POST['result'];
    6. if ($result == 1 || $result == 2)
    7. {
    8.     if ($result == 1)
    9.     {
    10.         $b1++;
    11.         echo "Вы ввели 1<br>";
    12.         echo $a1.":".$b1;
    13.     }
    14.     else
    15.    {
    16.    $b2++;
    17.    echo "Вы ввели 2<br>";
    18.    echo $a2.":".$b2;
    19.     }
    20. }
    21. else
    22.     {
    23.    echo "Вы ввели неверный символ! <br>";
    24.    echo "<a href= 'index.php'>Вернуться и попробовать заново</a>";
    25.     }
    26. ?>
    27.  
    Вопрос: Как продолжить дальнейшие запросы и при этом сохранять данные от предыдущих (что бы работали счетчики)? Желательно каким-либо методом попроще, так как это первая моя программа.
     
  2. rainarr

    rainarr Активный пользователь

    С нами с:
    20 ноя 2010
    Сообщения:
    276
    Симпатии:
    0
    сохранять нужно это все или что? хранить в сессии массив норм вариант
     
  3. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Да, нужно сохранить выбор с каждого сравнения. (то-есть a или б? - б. б или с? - по итогу: б. а=0, б=2, с=0)
    Мне нужно почитать про сессии, я правильно понял?
    ps. Спасибо за ответ
     
  4. rainarr

    rainarr Активный пользователь

    С нами с:
    20 ноя 2010
    Сообщения:
    276
    Симпатии:
    0
    да, База данных правда надежнее для новичка, но это помоему не очень сложно чтобы организовать и с помощю сессий.

    для начала, сами вопросы должны хранится в массиве и иметь свой идентификатор, а также место для записи не был ли уже ответ на этот вопрос.

    массив смешиваешь функцией shuffle()
     
  5. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    То-есть можно реализовать и через mysql, если я с сессиями не разберусь? Я с ним знаком.
    Мне тогда стоит создать таблицу, где есть эти выражения, и ввести столбец где будет записываться сколько раз выражение выбрали?
    Тогда при выборе какого то значения, просто обновлять эти столбцы через update?
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    maxmimko
    в сессии хранят текущие данные между страницами
     
  7. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Да! Спасибо большое! Прочитал. Сейчас уже пробую.
     
  8. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Всем спасибо за объяснения. Сессия - это то что мне было нужно, а я уже намучился с GET, глобальными переменными и т.д.
    Я в первом файле открыл сессию, ввел переменные:
    PHP:
    1.  
    2. <?php
    3.   $_SESSION['a1_active_life'] = "0";
    4.     $_SESSION['a2_healt'] = "0";
    5.     $_SESSION['a3_work'] = "0";
    6.   ........
    7.     $_SESSION['a12_art'] = "0";
    8.  
    9.     $_SESSION['$a1'] = "Активная, деятельная жизнь";
    10.     $_SESSION['$a2'] = "Здоровье (физическое и психическое здоровье);";
    11.     $_SESSION['$a3'] = "Интересная работа;";
    12.  ...........
    13.     $_SESSION['$a12] = "Творчество (возможность творческой деятельности";
    14. ?>
    15.  
    На второй и третей странице уже обращался к переменным через $_SESSION
    PHP:
    1.  
    2. ....
    3.  $_SESSION['a1_active_life']++;
    4.         echo "Вы ввели 1<br>";
    5.         echo $_SESSION['$a1'].":".$_SESSION['a1_active_life'];
    6. ....
    7.  
    Все заработало как нужно. Вот только мне таких сравнений нужно сделать больше сотни. По выбранному мною методу, получается, что нужно сделать более сотни пхп файлов.
    Вопрос: По компактней можно как-то сделать ?
     
  9. rainarr

    rainarr Активный пользователь

    С нами с:
    20 ноя 2010
    Сообщения:
    276
    Симпатии:
    0
    2-дименсиональные массивы, наверное. Но в них нужно хранить динамические данные - тоесть ответы, ваши вопросы это - статические.

    PHP:
    1. $questions = array (
    2. "question"  => array (1, 2, 3, 4. 'итд'),
    3. "answer" => array (0, 0, 0, 0, 'итд'),
    4. );
    5.  
    6. $_SESSION['all_info'] = $questions;
    7.  
    8.  
    тестами, я, никогда не занимался, и даже стало интересно как их организовать используя базы данных..
     
  10. rainarr

    rainarr Активный пользователь

    С нами с:
    20 ноя 2010
    Сообщения:
    276
    Симпатии:
    0
    <form name="form1" method="post" action="">

    дальше думайте как это организовать в один файл :)
     
  11. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Если в action ничего не писать, тогда данные не передаются на другую страницу, и не осуществляется переход на нее?
    Значит все можно организовать на одной странице?
    Выдачу вопросов я так понимаю нужно делать через цикл. Сейчас что - то попробую.
    Спасибо за ответы!
     
  12. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Думаю мне подойдет что то похожее как в данном примере:
    PHP:
    1.  
    2. //Создается новый массив, содержащий 5 значений цвета
    3. $colors = array('red', 'green', 'blue', 'yellow','white');
    4.  
    5. // Цикл for используется для итераций по массиву и вывода каждого элемента
    6.  
    7. for ($i = 0; $i < sizeof($colors); $i++)
    8. {
    9.  echo "Значением элемента массива $i+1 является $colors[$i].";
    10. }
    11. ?>
    12.  
     
  13. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Заранее прошу прощения за огромный пост. Огромная благодарность тому, кто его осилит. Еще больше тому, кто задумается о проблеме, и великий поклон тому, кто подскажет что - либо!

    Я сделал цикл через for.
    Проверку результата изначально сделал через if, но так как мне нужно проверять одну переменную на 12 значений, начал путаться во множественных вложениях и затем нашел оператор switch. Вроде бы разобрался как он работает, переписал под него, итог: программа не работает, выдает:

    Что для вас важнее?

    1. Активная, деятельная жизнь
    2. Здоровье (физическое и психическое здоровье)
    Введите цифру



    1
    Что для вас важнее?

    2. Здоровье (физическое и психическое здоровье)
    3. Интересная работа;
    Введите цифру



    2
    Что для вас важнее?

    3. Интересная работа;
    4. Красота природы и искусства;
    Введите цифру



    3

    и т.д. (пробелы соблюдены, видимо срабатывают <br>)

    Собственно код
    PHP:
    1.  
    2. <?php
    3.     //Стартую сессию
    4.    // Завожу необходимые переменные в сессию
    5.     $_SESSION['active_life'] = "0";
    6.     $_SESSION['healt'] = "0";
    7.     $_SESSION['work'] = "0";
    8.     $_SESSION['beaty'] = "0";
    9.     $_SESSION['love'] = "0";
    10.     $_SESSION['money'] = "0";
    11.     $_SESSION['friends'] ="0";
    12.     $_SESSION['assertiveness'] ="0";
    13.     $_SESSION['education'] = "0";
    14.     $_SESSION['freedom'] = "0";
    15.     $_SESSION['family'] = "0";
    16.     $_SESSION['art'] = "0";
    17.     //Заношу вопросы в массив
    18.     $questions = array(
    19.                 '1. Активная, деятельная жизнь',
    20.                 '2. Здоровье (физическое и психическое здоровье)',
    21.                 '3. Интересная работа;',
    22.                 '4. Красота природы и искусства;',
    23.                 '5. Любовь (духовная и физическая близость с любимым человеком)',
    24.                 '6. Материально-обеспеченная жизнь (отсутствие материальных затруднений)',
    25.                 '7. Наличие хороших и верных друзей',
    26.                 '8. Уверенность в себе (свобода от внутренних противоречий, сомнений)',
    27.                 '9. Познание (возможность расширения своего образования, кругозора, общей культуры, а также интеллектуальное развитие)',
    28.                 '10. Свобода как независимость в поступках и действиях',
    29.                 '11. Счастливая семейная жизнь',
    30.                 '12. Творчество (возможность творческой деятельности)');
    31.     //Создаю цикл, пока что только для 11 сравнений, где первое сравнивается с остальными 11            
    32. for ($i = 0; $i < 12; $i++)
    33.  {
    34.   $o=$i+1;
    35.   echo "<p><b>Что для вас важнее?</b><br></p>";
    36.   echo $questions[$i];
    37.   echo "<br>";
    38.   echo $questions[$o];
    39.   echo "<br>";
    40.   echo '<form name="form1" method="post" action="">';
    41.   echo '<label for="textbox">Введите цифру</label>';
    42.   echo '<input type="text" name="result" id="textbox" size="10">';
    43.   echo '<p><input type="submit" name="submit_button" value="Ввести"></p>';
    44.   $result = $_POST['result'];
    45.    //Используя switch суммирую количество баллов выбранных предложений
    46.   switch ($result)
    47.   {
    48.     case ($result==1):
    49.                 $_SESSION['active_life']++;
    50.                 echo "<br>".$_SESSION['active_life']; //Эта строка для проверки на время отладки
    51.                 break;
    52.     case ($result==2):
    53.                 $_SESSION['work']++;
    54.                 echo "<br>".$_SESSION['work']; //Эта строка для проверки на время отладки
    55.                 break;    
    56.     case ($result==3):
    57.                 $_SESSION['healt']++;
    58.                 echo "<br>".$_SESSION['healt']; //Эта строка для проверки на время отладки
    59.                 break;
    60.     case ($result==4):
    61.                 $_SESSION['beaty']++;
    62.                 echo "<br>".$_SESSION['beaty']; //Эта строка для проверки на время отладки
    63.                 break;
    64.     case ($result==5):
    65.                 $_SESSION['love']++;
    66.                 echo "<br>".$_SESSION['love']; //Эта строка для проверки на время отладки
    67.                 break;
    68.     case ($result==6):
    69.                 $_SESSION['money']++;
    70.                 echo "<br>".$_SESSION['money']; //Эта строка для проверки на время отладки
    71.                 break;
    72.     case ($result==7):
    73.                 $_SESSION['friends']++;
    74.                 echo "<br>".$_SESSION['friends']; //Эта строка для проверки на время отладки
    75.                 break;
    76.     case ($result==8):
    77.                 $_SESSION['assertiveness']++;
    78.                 echo "<br>".$_SESSION['assertiveness']; //Эта строка для проверки на время отладки
    79.                 break;
    80.     case ($result==9):
    81.                 $_SESSION['education']++;
    82.                 echo "<br>".$_SESSION['education']; //Эта строка для проверки на время отладки
    83.                 break;
    84.     case ($result==10):
    85.                 $_SESSION['freedom']++;
    86.                 echo "<br>".$_SESSION['freedom']; //Эта строка для проверки на время отладки
    87.                 break;
    88.     case ($result==11):
    89.                 $_SESSION['family']++;
    90.                 echo "<br>".$_SESSION['family']; //Эта строка для проверки на время отладки
    91.                 break;
    92.     case ($result==12):
    93.                 $_SESSION['art']++;
    94.                 echo "<br>".$_SESSION['art']; //Эта строка для проверки на время отладки
    95.                 break;                                              
    96.    //На случай если введена цифра вне диапазона 1-12
    97.    default:
    98.             echo "Вы ввели не верный символ";
    99.  }
    100. }
    101. ?>
    102.  
     
  14. rainarr

    rainarr Активный пользователь

    С нами с:
    20 ноя 2010
    Сообщения:
    276
    Симпатии:
    0
    может можно ссылку на такой тест в инете, чтобы разобратся как он должен работать, т.е. что отображать в итоге?
     
  15. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Что должно выводится на экран?
    Или сама методика?
    Просто с методикой вряд ли кому то будет интересно ознакамливаться .
    Программы такой нет. Методика не распространенная.

    Идеальный вариант:
    Окошко в нем по очереди выводятся 2 предложения, нужно выбрать одно. Считается количество раз сколько была выбрана каждая фраза. В конце эти данные высчитываются по формуле и выводится результат.
    Пока что проблема в самом начале: вывести эти сравнения красиво и считать.
    Неужели только переходом от странице к странице придется делать? Если, другого варианта нет, буду делать 132 страницы, раз нет вариантов.
     
  16. rainarr

    rainarr Активный пользователь

    С нами с:
    20 ноя 2010
    Сообщения:
    276
    Симпатии:
    0
    ну там например список всех вопросов + какие есть возможные ответы на них + подсчет итогов теста.

    я писал тест айзенка, правда давно и в универе, на С#. Типа такое http://www.psyworld.info/online-testy/l ... jzenka-epi
    нам сразу дали всю выше перечисленную информацию.

    а итоговая суть этого теста мне пока не понятна. Имхо, я бы этот тест написал просто бы на яваскрипте.
     
  17. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Вот именно такой тест, как по ссылке, которую Вы дали, хотелось бы сделать! Там Явой написано?
    Вот сейчас как раз начинаю пробовать делать через радио кнопки.
    Самое главное что я не могу понять - как сделать что бы без перехода на другую страницу очищалась ячейка в таблице, или <DIV> контейнер?
    Вот как сделано в том тесте? Не подскажите?
    Кстати, я понимаю, что на Явоскрипте, все красиво, можно в флеше сделать, но я же взялся изучать пхп.
    Выбрал просто для практики создание этого теста. Изучать в бою так сказать, а то пока читаю книгу все понятно, закрыл - забыл все операторы, все построения и т.д.
     
  18. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Если можно, подскажите как сделать, что бы после нажатия кнопки, менялся текст без перехода на другую страницу.
    Сейчас сделал с радиокнопками так:
    [​IMG]
     
  19. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Например, свойству innerHTML соответствующего контейнера присваивать новое значение.
     
  20. rainarr

    rainarr Активный пользователь

    С нами с:
    20 ноя 2010
    Сообщения:
    276
    Симпатии:
    0
    в любом случае без аякса тут не обойтись.
    хотя можно сделать с iframe
     
  21. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Спасибо большое Всем!
    Познакомился с ajax и jquery. Получилось сделать несколько успешных шагов.
    Вот так сейчас начинается программа. Для начала нужно ввести что-нибудь.

    [​IMG]
    А далее программа уже работает корректно по заданному алгоритму.
    [​IMG]
    Вопрос:
    Можно ли как-то покрасивее сделать начало? Самым примитивным было бы, конечно, написать введите "старт" для того, чтобы начать, но хотелось бы чего-то лучшего. Вся проблема в том? что мне нужно с этой страницы начинать, так как пхп возвращает всю информацию на эту страницу. По-этому нельзя начать с красивой страницы приветствия, нужно начинать с этой.
    Код index.php
    PHP:
    1. <?php
    2. //Очищаю старую сессию
    3. unset($_SESSION);
    4. //Стартую сессию
    5.     $_SESSION['active_life'] = "0";
    6.      $_SESSION['healt'] = "0";
    7.      $_SESSION['work'] = "0";
    8.      $_SESSION['beaty'] = "0";
    9.      $_SESSION['love'] = "0";
    10.      $_SESSION['money'] = "0";
    11.      $_SESSION['friends'] ="0";
    12.      $_SESSION['assertiveness'] ="0";
    13.      $_SESSION['education'] = "0";
    14.      $_SESSION['freedom'] = "0";
    15.      $_SESSION['family'] = "0";
    16.      $_SESSION['art'] = "0";
    17.      $_SESSION['i'] = "0";
    18.      $_SESSION['o'] = "0";
    19.      $_SESSION['maximum'] = "11";
    20.      ?>
    21. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    22. <html xmlns="http://www.w3.org/1999/xhtml">
    23. <head>
    24. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
    25. <title>Тест по методике Фанталовой</title>
    26. <script src="jquery.js" type="text/javascript"></script>
    27. </head>
    28. <body>
    29. <div id="head"><p>Тест Фанталовой на Ценость и Доступность</p></div>
    30. <div id="exmapleload"></div>
    31. <input type="text" id="text1" value="">
    32. <button id="but">Отправить</button>
    33. </pre>
    34. <script>
    35. $("#but").click(function(){
    36.     var text = $("#text1").val();
    37.     var w = $("#exmapleload");
    38.     w.load('test.php', {a:text})
    39.     });
    40. </script>
    41. <body>
    42. </body>
    43. </html>
    44.  
    Код test.php
    PHP:
    1.  
    2. <?php
    3. //Стартую сессию
    4.  $questions = array(
    5.                  '1. Активная, деятельная жизнь',
    6.                  '2. Здоровье (физическое и психическое здоровье)',
    7.                  '3. Интересная работа;',
    8.                  '4. Красота природы и искусства;',
    9.                  '5. Любовь (духовная и физическая близость с любимым человеком)',
    10.                  '6. Материально-обеспеченная жизнь (отсутствие материальных затруднений)',
    11.                  '7. Наличие хороших и верных друзей',
    12.                  '8. Уверенность в себе (свобода от внутренних противоречий, сомнений)',
    13.                  '9. Познание (возможность расширения своего образования, кругозора, общей культуры, а также интеллектуальное развитие)',
    14.                  '10. Свобода как независимость в поступках и действиях',
    15.                  '11. Счастливая семейная жизнь',
    16.                  '12. Творчество (возможность творческой деятельности)');
    17.    echo "<p><b>Что для вас важнее?</b><br></p>";
    18.    if ($_SESSION[o]!=$_SESSION[maximum])
    19.    {
    20.    $_SESSION[o]++;
    21.    }
    22.    else
    23.    {
    24.     $_SESSION[maxmimum]--;
    25.     $_SESSION[i]++;
    26.     $_SESSION[o]=$_SESSION[i]+1;
    27.    }
    28.    echo $questions[$_SESSION[i]];
    29.    echo "<br>";
    30.    echo $questions[$_SESSION[o]];
    31.    echo "<br>";
    32.    $result=$_POST[a];
    33.    switch ($result)
    34.    {
    35.      case ($result==1):
    36.                  $_SESSION['active_life']++;
    37.                                   break;
    38.      case ($result==2):
    39.                  $_SESSION['work']++;
    40.                                   break;  
    41.      case ($result==3):
    42.                  $_SESSION['healt']++;
    43.                                   break;
    44.      case ($result==4):
    45.                  $_SESSION['beaty']++;
    46.                                   break;
    47.      case ($result==5):
    48.                  $_SESSION['love']++;
    49.                                   break;
    50.      case ($result==6):
    51.                  $_SESSION['money']++;
    52.                                   break;
    53.      case ($result==7):
    54.                  $_SESSION['friends']++;
    55.                                   break;
    56.      case ($result==8):
    57.                  $_SESSION['assertiveness']++;
    58.                                   break;
    59.      case ($result==9):
    60.                  $_SESSION['education']++;
    61.                                   break;
    62.      case ($result==10):
    63.                  $_SESSION['freedom']++;
    64.                                   break;
    65.      case ($result==11):
    66.                  $_SESSION['family']++;
    67.                                   break;
    68.      case ($result==12):
    69.                  $_SESSION['art']++;
    70.                                  break;  
    71.                  }
    72.      /*
    73.                  echo "<p>Результаты:</p>";
    74.                  echo "<br>".$questions[0].": ".$_SESSION['active_life']; //Эта строка для проверки на время отладки
    75.                  echo "<br>".$questions[1].": ".$_SESSION['work']; //Эта строка для проверки на время отладки
    76.                  echo "<br>".$questions[2].": ".$_SESSION['healt']; //Эта строка для проверки на время отладки
    77.                  echo "<br>".$questions[3].": ".$_SESSION['beaty']; //Эта строка для проверки на время отладки
    78.                  echo "<br>".$questions[4].": ".$_SESSION['love']; //Эта строка для проверки на время отладки
    79.                  echo "<br>".$questions[5].": ".$_SESSION['money']; //Эта строка для проверки на время отладки
    80.                  echo "<br>".$questions[6].": ".$_SESSION['friends']; //Эта строка для проверки на время отладки
    81.                  echo "<br>".$questions[7].": ".$_SESSION['assertiveness']; //Эта строка для проверки на время отладки
    82.                  echo "<br>".$questions[8].": ".$_SESSION['education']; //Эта строка для проверки на время отладки
    83.                  echo "<br>".$questions[9].": ".$_SESSION['freedom']; //Эта строка для проверки на время отладки
    84.                  echo "<br>".$questions[10].": ".$_SESSION['family']; //Эта строка для проверки на время отладки echo "<br>".$questions[11].$_SESSION['art']; //Эта строка для проверки на время отладки
    85.                  echo "<br>".$questions[11].": ".$_SESSION['art']; //Эта строка для проверки на время отладки echo "<br>".$questions[11].$_SESSION['art']; //Эта строка для проверки на время отладки
    86.                  */
    87.  ?>
    88.  
     
  22. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Почти все получилось, и все работает:
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    Проблема: Я сделал поочередное сравнение. А желательно было бы сделать следующий алгоритм:
    Случайный вопрос с массива, сравнивается с другим случайным. Затем то что было выбрано, остается, и на его место с массива выбирается другой случайный вопрос. Выше подсказывали использовать функцию shufle. Но главный вопрос - как записывать уже случайно подобранные пары вопросов, которые уже были выданы.
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ты можешь сразу сформировать последовательность и пихнуть ее в сессию
     
  24. maxmimko

    maxmimko Активный пользователь

    С нами с:
    31 июл 2011
    Сообщения:
    23
    Симпатии:
    0
    Пока не представляю как.
    Последовательность не может быть заранее сформирована. Она определяется выбором при прохождении. Точнее она может быть определена, но только это будет слишком много последовательностей, если их попытаться заранее описать.

    Неизвестно ведь, что выберет пользователь А или Д, а если А, то следующее сравнение должно быть А или З(рандомный вопрос), а если он выберет З - то следующий З или В (рандом).
    И все эти пары, которые были таким образом сформированы, куда-то записывались, что бы не было повтора А или Д, а так же Д или А.
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тогда не понял я в чем беда. все записывай спокойно.