За последние 24 часа нас посетил 22181 программист и 1673 робота. Сейчас ищет 1701 программист ...

Нужен програмист для PHP скрипта,пожалуйста.

Тема в разделе "Сделайте за меня", создана пользователем Welmu, 4 авг 2014.

  1. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Нужен простой PHP скрипт который можно было ставить на сайт ( знаю что нужно учиться но не имеет смысла из-за одного скрипта)
    Суть:
    Есть 10 переменных,например переменные:Пиво,рыба,суп,варенье,сушенная рыба,чипсы,сухарики,яд,хлеб,вода.

    Каждая переменная привязана к другим переменным и имеет значение N из 10 например пиво
    к чипсам 10/10,сухарикам8/10,сушенная рыба10/10,хлеб4/10 и тд,(значение привязываеться к пиву)
    а хлеб с вареньем8/10,супом9/10,рыбой10/10.(значение привязываеться к хлебу)

    Если в форме из N вариантов выберу хлеб то по выбыванию должно отобразиться:
    рыба10/10,суп 9/10,варенье8/10,пиво 5/10,хлеб 4/10.

    Если в я выберу хлеб и пиво то должно отобразиться ,сушенная рыба10/10,жаренная рыба8/10.

    То есть по идее скрипт должен подобрать ингредиент подходящий к ингредиентам от 1 до 5.

    Спасибо за внимание надеюсь на вас.


    Добавлено спустя 14 минут 51 секунду:
    Нашел похожий скрипт но я нуждаюсь в рейтинге привязанности N/10.
    viewtopic.php?f=36&t=49034
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    при таких раскладах имеет смысл заплатить

    кстати, нифига не понял просьбу. если не можешь сформулировать — попробуй нарисовать. хоть поржем.
     
  3. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я тоже не понял таск
     
  4. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Я же написал похоже на viewtopic.php?f=36&t=49034 .Мне надо что-бы было возможно выбрать до 5 переменных сразу + рейтинг от 1 до 10,например код из темы:


    "Наполеон": "франция, торт, император",
    "Путин": "Россия, водка, медведь",
    "Обама": "США, баксы, санкции"

    Если я выберу Путина и Обаму то переменные которые присутствуют у переменных "Путин" и "Обама" должно показываться по убыванию.


    <!DOCTYPE HTML>
    <html>
    <head>
    <title>NAPOLEON</title>
    <meta charset="utf-8">
    <script type="text/javascript">
    // создаем массив слов и соответствующих фраз
    var arr_search = {
    "Наполеон": "франция, торт, император",
    "Путин": "Россия, водка, медведь",
    "Обама": "США, баксы, санкции"
    }
    // здесь создаем подсказки (можно удалить)------
    var list = "";
    for(var name in arr_search) {
    list += name + ", ";
    };
    arr_search[""] = list;
    //----------------------------------------------
    function wordSearch(val){
    var result = document.getElementById("result");
    for(var name in arr_search) {
    if(name == val){
    result.value = arr_search[name];
    break;
    } else {
    result.value = "Совпадений нет!"
    };
    };
    };
    </script>
    </head>
    <body>
    text1<textarea onkeyup="wordSearch(this.value)"></textarea><br/>
    text2<textarea id="result"></textarea><br/>
    </body>
    </html>
     
  5. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    то есть надо как это, но не как это. ммм… нет не понятно.

    чувак, я сам тебе заплачу если ты внятно расскажешь что надо.
     
  6. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    И так напишу как есть.
    Скрипт нужен для выявления героя который силен против определенных 3 героев,максимально 5:
    В игре выбирают поочередно героев например выбрали 3 героев,это:Kaitlyn,Korki и Tristana
    Caitlyn слаба против Sivir1,Jinx2,Tristana3,Ezreal4
    Korki слаб против Urgot1,Caitlyn2,Graves3,Ezreal4,Kog'Maw5
    Tristana слаба против Caitlyn1,MissFortune2,Sivir3,Kog'Maw4

    Скрипт должен выбрать героя который наиболее силен против этих 3 героев например Sivir1;Sivir3, Kog'Maw5;KogMaw4, Ezreal4;Ezreal4. Цифра после названия от 1 до 10 чем меньше тем сильней. Скрипт выбирает того у кого меньше этот рейтинг или того кто чаще присутствует чаще в этом списке.

    Наиболее сильный против этих 3 героев это Sivir с 4/2,я выбираю ее.Есть еще Ezreal с 8/2 рейтингом,и Kog'Maw 9/2
    Порядок по убыванию:
    1)Sivir 4/2=2
    2)Ezreal 8/2=4
    3)Kog'Maw 9/2=4,5

    Вооот.
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Программисты не думают этой логикой с информатики 10 класса =/ =(

    Добавлено спустя 5 минут 1 секунду:
    так немного яснее. Цифра откуда в имени берется? Она же отдельно записана в базе? Надо знать структуру базы данных.
     
  8. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Эта цифра как бы рейтинг преимущества от 1 до 10.Я взял с этого сайта http://www.championselect.net/champions/caitlyn чемпионов которые имеют преимущество против Caitlyn.чем ближе к 10,тем меньше преимуществ,чем ближе к 1 тем больше.

    Добавлено спустя 22 минуты 25 секунд:
    Можно как-то прямо в скрипте ее записать? Например Caitlyn:Sivir(1),Jinx(2),Tristana(3) или что-то типа того.Простите но я не разбираюсь в програмирований

    Добавлено спустя 9 минут 59 секунд:
    Еще раз обьяснию:
    Есть A,B,C,D,E

    A={Sivir1,Jinx2,Tristana3} - чемпионы которые сильны против Caitlyn


    A пересечение B пересечение С пересечение D пересечение E=Результат

    +

    Порядок по убыванию:
    1)Sivir 4/2=2
    2)Ezreal 8/2=4
    3)Kog'Maw 9/2=4,5

    Добавлено спустя 26 минут 15 секунд:
    Как бы это пересечение массивов.Кто-нибудь помоги или скажите сколько примерно будет стоить сейчас денег пока нет.

    Добавлено спустя 5 минут 20 секунд:
    Есть A B C,мне примерно нужно что-бы A пересечение B = С.
    A={Sivir1,Jinx2,Tristana3,Kog'Maw4} - чемпионы которые сильны против Caitlyn.
    B={Urgot1,Caitlyn2,Graves3,Ezreal4,Kog'Maw5 - чемпионы которые сильны против Corki.
    A={Sivir1,Jinx2,Tristana3,Kog'Maw4} пересечение B={Urgot1,Caitlyn2,Graves3,Ezreal4,Kog'Maw5 =KogMaw9 вот это мне и нужно но в других масштабах
     
  9. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    И сколько стоит примерно заплатить кодеру?
     
  10. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Поиду изучать PHP,думал помогут...
     
  11. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Кодинг это всего-лишь выражение мыслей на языке программирования. Нет логики — нет программы.
    Короче, это не твоё.
     
  12. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Неужели так сложно написать,или подсказать как написать программу которая могла осуществить простое математическое выражение"A ∩ B ∩ С ∩ D ∩ E=X " + некоторые фичи.Мне кажется это вы безнадежны.
     
  13. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    это пипец как сложно на процессоре, который для деления 6/3 тратит три десятка тактов!
    Слух, самое безнадежное - это когда некомпетентный человек решает, как сделать и исходит из своего решения при постановке задачи. Программистам, строителям и парикмахерам нужны настоящие исходные данные в реальном представлении и четкое представление самого конечного результата, а как пройти между этими пунктами А и Б они лучше знают сами.

    Добавлено спустя 3 минуты 50 секунд:
    даю 95% что задача решается набором условий в SQL вместо математической формулы
     
  14. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Но для SQL нужно создать базу данных вроде,зачем усложнять если я даже не знаю операторов SQL? тем более PHP.
     
  15. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Ок, для вычисления схождения в массивах существует функция array_intersect.
    Код (PHP):
    1. $arr = [
    2.  'colors1' => ['red', 'yellow', 'blue', 'green', 'cyan'],
    3.  'colors2' => ['blue', 'magenta', 'red'],
    4.  'colors3' => ['cyan', 'pink', 'green', 'magenta', 'red']
    5. ];
    6.  
    7. function find_intersect_in_two($name1, $name2, $arr) {
    8.  return array_values(array_intersect($arr[$name1], $arr[$name2]));
    9. }
    10.  
    11. print_r(find_intersect_in_two('colors1', 'colors3', $arr)); // Array([0] => red [1] => green [2] => cyan)
     
  16. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Спасибо попробую.

    Добавлено спустя 9 минут 30 секунд:
    Попробовал с:

    <?php
    $array1 = array("a" => "green", "red", "blue");
    $array2 = array("b" => "green", "yellow", "red");
    $result = array_intersect($array1, $array2);
    print_r($result);
    ?>

    ,это просто шикарное готовое решение но мне нужно что-бы переменную $array пользователь мог бы сам выбрать но скрипт выполняется "по дэфолту" таки я ошибся это очень сложно, зря назвал того некомпетентным....
    Можете еще немножко меня направить?
     
  17. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    старая версия php?
    с a и b у тебя связан только green, это ассоциативный массив а не многомерный. Следует использовать двумерный массив, как в примере.
    Задача решается с помощью условий и циклов. Самая объемная часть - подготовка данных.
    Код (PHP):
    1. <?php
    2. $arr = [
    3.  'colors1' => ['red', 'yellow', 'blue', 'green', 'cyan'],
    4.  'colors2' => ['blue', 'magenta', 'red'],
    5.  'colors3' => ['cyan', 'pink', 'green', 'magenta', 'red']
    6. ];
    7. ?>
    8. <form method="POST">
    9. <?php
    10. foreach (array_keys($arr) as $name) {
    11. echo '<input type="checkbox" name="' . $name . '" value="1">' . $name . '<br>';
    12. }
    13. ?>
    14. <input type="submit">
    15. </form>
    16. <?php
    17.  
    18. if (!empty($_POST)) {
    19.  $arr1 = [];
    20.  $arr2 = [];
    21.  $arr3 = [];                                                              
    22.  foreach (array_keys($_POST) as $name) {
    23.   if (empty($arr1)) {
    24.    $arr1 = $arr[$name];
    25.   }
    26.   else if (empty($arr2)) {
    27.    $arr2 = $arr[$name];
    28.   }
    29.   else if (empty($arr3)) {
    30.    $arr3 = $arr[$name];
    31.   }
    32.  }
    33.  
    34.  switch (count($_POST)) {
    35.   case 2:
    36.    $result = array_values(array_intersect($arr1, $arr2));
    37.    break;
    38.   case 3:
    39.    $result = array_values(array_intersect($arr1, $arr2, $arr3));
    40.    break;
    41.  }
    42.  print_r($result);
    43.  
    44. }
    Добавлено спустя 1 минуту 17 секунд:
    array_intersect способна принимать сколько угодно массивов. Ты можешь расширить пример до пяти.
     
  18. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Попробовал с этим скриптом,это не совсем то что мне нужно...
    Мне нужна функция которая могла выбирать эти варианты,например 5 колонки и в ней можно было бы выбрать от 1 до 5 переменных для пересечения,это возможно?если да то как?

    Добавлено спустя 6 минут 26 секунд:
    [​IMG]
     
  19. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Доехали, уже героя в ЛоЛ хотят выбирать, исходя из математических выкладок скрипта...
    Код (Text):
    1.  
    2. function strongest($champions) {
    3. $arr = array(
    4.   'Caitlyn' => array('Sivir'=>1, 'Jinx' => 2, 'Tristana' =>3, "Kog'Maw" => 4),
    5.   'Korki' => array("Urgot" => 1, "Caitlyn" => 2, "Graves" => 3, "Ezreal" => 4, "Kog'Maw"=> 5),
    6.   'Tristana' => array ("Caitlyn" => 1, "MissFortune" =>2, "Sivir" =>3, "Kog'Maw" =>4)
    7. );
    8.   foreach ($champions as $champ) {
    9.       foreach ($arr[$champ] as $enemy => $rank) {
    10.         $out[$enemy]['rank'] += $rank;
    11.         $out[$enemy]['count']++;
    12.       }
    13.   }
    14.   foreach ($out as $enemy => &$data)
    15.      $data = $data['rank'] / $data['count'];
    16.   asort($out);
    17.   return $out;
    18. }
    Вызывать так: $a = strongest(array('Caitlyn', 'Tristana'));
    Только все равно это неоптимально. В таком раскладе чемпион, который на втором месте против 10 противников, будет хуже в рейтинге, чем тот, который на первом месте против одного и вообще не котируется против остальных. Так что плохую вы шкалу придумали.
     
  20. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Можно просто сделать что-бы скрипт выбирал того у кого больше $data['count']; то есть хоть какое-то преимущество против определенных чемпионов.

    Добавлено спустя 28 секунд:
    Спасибо за скрипт.
     
  21. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Можно отсортировать по count и взять потом первый (или последний) элемент
    viewtopic.php?t=31155

    Стоит попытаться привести исходные данные к более простому для обработки виду. Я честно говоря так и не врубился толком, в чем суть =)
     
  22. Welmu

    Welmu Новичок

    С нами с:
    4 авг 2014
    Сообщения:
    12
    Симпатии:
    0
    Начинаю делать базу в SQL т.к так компактней через SELECT FROM будет пересечение,таки будет эффективно если добавить только 6 близких контров.Как будет готово - выложу.

    Добавлено спустя 19 секунд:
    Может пригодиться кому

    Добавлено спустя 35 минут 6 секунд:
    Можно сделать например нормальную комбинацию для 2+героев.
     
  23. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    Я рекомендую делать, как минимум, чем больше число, тем лучше данный чемпион против заданного. Например, в процентах.
    Если будет, например, 'Caitlyn' => array('Sivir'=>100, 'Jinx' => 95, 'Tristana' =>85, "Kog'Maw" => 70), то там можно смотреть уже и по максимуму, и по среднему арифметическому, и по среднеквадратичному отклонению, и по черту лысому.