Суббота, 05 Октября 2024, 02:30

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Оцените код функции.
scnДата: Воскресенье, 16 Июня 2013, 01:59 | Сообщение # 1
был не раз
Сейчас нет на сайте
Это функция поиска предметов для крафта вещей.

Код
function scan_kraft($w1, $w2) { // $w1 - массив с требованиями, $w2 - массив с инвентарем
  $vs = array();
  for ($c = 0; $c <= count($w1); $c++) {
   for ($i = 0; $i <= count($w2); $i++) {
    if ($w1[$c] == $w2[$i]) {
     $vs[] = $w2[$i];
     unset($w2[$i]);
     for ($i = 0; $i <= count($w2); $i++) {
      if ($w1[$c] == $w2[$i]) {
       $vs[] = $w2[$i];
       unset($w2[$i]);
       if ($vs == $w1)
        return true;
      }
     }
    }
   }
  }
  return false;
}
Пример:  
$item[2] = array(1,3);  
$item[id создаваемого предмета] = array([id требуемого предмета], [id требуемого предмета]);
$item_list = array(1,2,5,7,8,9); // Список id элементов в инвентаре перса (выборка с mysql)

if (scan_kraft($item[2], $item_list) == false) [не достаточно элементов] else [предмет создается]


Возможно есть какие-то замечания?
ImNewHereДата: Суббота, 20 Июля 2013, 23:24 | Сообщение # 2
был не раз
Сейчас нет на сайте
Оценил , молодец + тебе :-)

С Уважением , участник форума gcup.ru , ImNewHere .
yarickyarickДата: Суббота, 20 Июля 2013, 23:35 | Сообщение # 3
Маленький лицемер
Сейчас нет на сайте
scn, по сути стандартный скрипт, таких куча в интернете, особенно в туториал по модингу майнкрафта.
ImNewHereДата: Суббота, 20 Июля 2013, 23:39 | Сообщение # 4
был не раз
Сейчас нет на сайте
Ярик , если он сам писал , почему бы и не поощерить ?
Человек наверное старался ?


С Уважением , участник форума gcup.ru , ImNewHere .
yarickyarickДата: Суббота, 20 Июля 2013, 23:40 | Сообщение # 5
Маленький лицемер
Сейчас нет на сайте
ImNewHere, ну тут не так много писанины, нечего на люд показывать. Да и оценивать тут нечего, самый обычный скрипт. Показ бы какое-то нестандартное решение, было бы куда интереснее.
ImNewHereДата: Суббота, 20 Июля 2013, 23:42 | Сообщение # 6
был не раз
Сейчас нет на сайте
Ладно , ладно , я не агрессивный :-) В моей теме поможете ?

С Уважением , участник форума gcup.ru , ImNewHere .
НохчиДата: Суббота, 20 Июля 2013, 23:48 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Комментаторы хоть пригляделись бы к коду. Автору двойка.

Многие вопросы по Windows отпадут, если посмотреть тут
DronCodeДата: Суббота, 20 Июля 2013, 23:58 | Сообщение # 8
Best Byte forever
Сейчас нет на сайте
scn, у меня ненависть к тем кто пишет $i++ вместо ++$i
Я не вникал в код, но уже за плохой инкремент ставлю 3. Циклов тоже много, я уверен что это можно решить и проще.
В суть задания не вникал.

К тому же bool значения в условии можно и так проверять :
Цитата
if (!scan_kraft($item[2], $item_list)){
//do...
}

Вердикт : 3/5

ИМХО.


Занимаюсь программированием на PHP, JavaScript (jQuery), C# (не Unity3d!), Action Script 3.0 (в основном клепаю игрушки под соц сети.), Node.JS
Недавно стал изучать Python.


Сообщение отредактировал DronCode - Воскресенье, 21 Июля 2013, 00:00
jackbvДата: Воскресенье, 21 Июля 2013, 00:15 | Сообщение # 9
почетный гость
Сейчас нет на сайте
scn, написано ужасно, вот мой вариант:

Код


function scan_craft($inv, $req) {

$found = 0;

    for($i = 0; $i < count($req); $i++) {
       for($t = 0; $t < count($inv); $t++) {
           
          if($req[$i] == $inv[$t]) {
              
             $found++;
             break;
              
          }
           
       }
    }

    return ($found == count($req));

}



- Java
- PHP, JavaScript
- HTML/CSS
DeadlySquare
Run or Die
Super SQUARE
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг