Не могу понять, как написать валидатор

Статус
В этой теме нельзя размещать новые ответы.

Squats

Новичок
Есть массив:

PHP:
$items = [
    '10120', // 11120
    '11200', // 11222
    '02130', // не валидно
    '00123', // 11123
    '01202', // 01222
    '02012', // 22212
    '02020', // 22222
    '07720', // не валидно
    '01077', // 11177
    '07704', // не валидно
    '77108', // не валидно
    '07070', // не валидно
    '12070', // не валидно
    '34004', // 34444
    '00044', // не валидно
    '23000' // не валидно
];
// в комментарии то, что должно в итоге получаться.
Там где написано "не валидно - значит замену не делаем, оставляем как есть".
Короче мои попытки все, просто увенчались провалом, я начал городить огород через if и там получилась тьма и оно не работает должным образом.

То есть был такое огород:

PHP:
//01123 = 11123
if ($i1 == 0 && $i2 == $i3 && $i2 <> 7) {
    $i1 = $i2;
}
//10123 = 11123
if ($i2 == 0 && $i1 == $i3 && $i1 <> 7) {
   $i2 = $i3;
}
//11023 = 11123
if ($i3 == 0 && $i1 == $i2 && $i2 <> 7) {
   $i3 = $i2;
}
То есть приходилось морочиться и делать какую-то дич, тут просто тонна условий тогда будет если так делать.
Знатоки, выручайте, неужели нет способа избавиться от таких болей?
 

Фанат

oncle terrible
Команда форума
Кто разобрался, какая тут закономерность?
у меня ничего не выходит
например только решил, что валидные только те, которые содержат 0,1 и 2, но одна тройка затесалась
плюс правила замены не могу просечь
 

Squats

Новичок
Кто разобрался, какая тут закономерность?
у меня ничего не выходит
например только решил, что валидные только те, которые содержат 0,1 и 2, но одна тройка затесалась
плюс правила замены не могу просечь
Ну по сути, там где идет 0, должна быть замена на рядом стоящее или же перед или же после, но только если будет одинаковые после замены 3 числа.

то есть к примеру 06012 - должно стать 66612, то есть это бы по условию выглядело бы так:

PHP:
//01023 = 11123
 if ($i1 == 0 && $i3 == 0 && $i2 <> 7) {
     $i1 = $i2;
     $i3 = $i2;
}
То есть условиями описать задачу можно, но их будет очень много, потому что совпадений 0, может быть разное количество, по этому все комбинации перебирать будет просто тонна кода...
 

Фанат

oncle terrible
Команда форума
почему тогда '07720', // не валидно ?
заменяем ноль, получаем три семерки, как в '10120', // 11120

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

Фанат

oncle terrible
Команда форума
интересно, это он однорукого бандита что ли ваяет?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
интересно, это он однорукого бандита что ли ваяет?
Угу, выигрышные комбинации с вайлд символами. Если вопрос про правила: 3+ с любого края, вайлд может заменить символ в комбинации.
 

Squats

Новичок
почему тогда '07720', // не валидно ?
заменяем ноль, получаем три семерки, как в '10120', // 11120

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

помочь то можете или нет?
 

Фанат

oncle terrible
Команда форума
это ж надо до чего игровая индустрия докатилась
вот это вот нанимают, бессловесное создание
 

Фанат

oncle terrible
Команда форума
Интересно, убытки на кого будут списывать?
Там же ведь будет дыра на дыре и дырой погонять - заходи кто хочешь, бери что хочешь.
 

Squats

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

По этому обратился за советом, как лучше сделать, а вы начали сами себе проблему создавать и в ходе сказку сочинять про однорукого бандита.
Если бы была игра я бы так и сказал, делаю то-то и то-то.

Господи! Было бы еще что скрывать!

Угу, выигрышные комбинации с вайлд символами. Если вопрос про правила: 3+ с любого края, вайлд может заменить символ в комбинации.
Уже интереснее, а где это можно посмотреть что-ли?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
ТС, последнее китайское. Будешь агриться, уедешь в бан. Тебе непрозрачно намекнули на необходимость ЯСНО и ДОХОДЧИВО объяснить нам как ты отличаешь валидируемые данные, по какому критерию.
 

Фанат

oncle terrible
Команда форума
Да он не агрится, он честно про себя рассказал. Для знакомства видимо.
Можно было и оставить.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху