Skip to content

Instantly share code, notes, and snippets.

@albeebe
Created April 8, 2020 03:38
Show Gist options
  • Save albeebe/518a957e3ed1fba872e57fd513a447e5 to your computer and use it in GitHub Desktop.
Save albeebe/518a957e3ed1fba872e57fd513a447e5 to your computer and use it in GitHub Desktop.
Solving the 3 digit facebook challenge
<?php
/*
Created by Alan Beebe (2020)
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to [http://unlicense.org]
###
100 = First rule broken
101 = Second rule broken
102 = First rule broken
103 = First rule broken
104 = First rule broken
105 = First rule broken
106 = First rule broken
107 = First rule broken
108 = First rule broken
109 = First rule broken
110 = Second rule broken
111 = First rule broken
112 = Second rule broken
113 = Second rule broken
114 = Second rule broken
115 = Second rule broken
116 = Second rule broken
117 = Second rule broken
118 = Second rule broken
119 = Second rule broken
120 = First rule broken
121 = Second rule broken
122 = First rule broken
123 = First rule broken
124 = First rule broken
125 = First rule broken
126 = First rule broken
127 = First rule broken
128 = First rule broken
129 = First rule broken
130 = First rule broken
131 = Second rule broken
132 = First rule broken
133 = First rule broken
134 = First rule broken
135 = First rule broken
136 = First rule broken
137 = First rule broken
138 = First rule broken
139 = First rule broken
140 = First rule broken
141 = Second rule broken
142 = First rule broken
143 = First rule broken
144 = First rule broken
145 = First rule broken
146 = First rule broken
147 = First rule broken
148 = First rule broken
149 = First rule broken
150 = First rule broken
151 = Second rule broken
152 = First rule broken
153 = First rule broken
154 = First rule broken
155 = First rule broken
156 = First rule broken
157 = First rule broken
158 = First rule broken
159 = First rule broken
160 = First rule broken
161 = Second rule broken
162 = First rule broken
163 = First rule broken
164 = First rule broken
165 = First rule broken
166 = First rule broken
167 = First rule broken
168 = First rule broken
169 = First rule broken
170 = Third rule broken
171 = First rule broken
172 = Third rule broken
173 = Third rule broken
174 = Third rule broken
175 = Third rule broken
176 = Third rule broken
177 = Third rule broken
178 = Second rule broken
179 = Second rule broken
180 = First rule broken
181 = Second rule broken
182 = First rule broken
183 = First rule broken
184 = First rule broken
185 = First rule broken
186 = First rule broken
187 = First rule broken
188 = First rule broken
189 = First rule broken
190 = First rule broken
191 = Second rule broken
192 = First rule broken
193 = First rule broken
194 = First rule broken
195 = First rule broken
196 = First rule broken
197 = First rule broken
198 = First rule broken
199 = First rule broken
200 = First rule broken
201 = Second rule broken
202 = First rule broken
203 = First rule broken
204 = First rule broken
205 = First rule broken
206 = First rule broken
207 = First rule broken
208 = First rule broken
209 = First rule broken
210 = Second rule broken
211 = First rule broken
212 = Second rule broken
213 = Second rule broken
214 = Second rule broken
215 = Second rule broken
216 = Second rule broken
217 = Second rule broken
218 = Second rule broken
219 = Second rule broken
220 = First rule broken
221 = Second rule broken
222 = First rule broken
223 = First rule broken
224 = First rule broken
225 = First rule broken
226 = First rule broken
227 = First rule broken
228 = First rule broken
229 = First rule broken
230 = First rule broken
231 = Second rule broken
232 = First rule broken
233 = First rule broken
234 = First rule broken
235 = First rule broken
236 = First rule broken
237 = First rule broken
238 = First rule broken
239 = First rule broken
240 = First rule broken
241 = Second rule broken
242 = First rule broken
243 = First rule broken
244 = First rule broken
245 = First rule broken
246 = First rule broken
247 = First rule broken
248 = First rule broken
249 = First rule broken
250 = First rule broken
251 = Second rule broken
252 = First rule broken
253 = First rule broken
254 = First rule broken
255 = First rule broken
256 = First rule broken
257 = First rule broken
258 = First rule broken
259 = First rule broken
260 = First rule broken
261 = Second rule broken
262 = First rule broken
263 = First rule broken
264 = First rule broken
265 = First rule broken
266 = First rule broken
267 = First rule broken
268 = First rule broken
269 = First rule broken
270 = Second rule broken
271 = First rule broken
272 = Second rule broken
273 = Second rule broken
274 = Second rule broken
275 = Second rule broken
276 = Second rule broken
277 = Second rule broken
278 = Second rule broken
279 = Third rule broken
280 = First rule broken
281 = Second rule broken
282 = First rule broken
283 = First rule broken
284 = First rule broken
285 = First rule broken
286 = First rule broken
287 = First rule broken
288 = First rule broken
289 = First rule broken
290 = First rule broken
291 = Second rule broken
292 = First rule broken
293 = First rule broken
294 = First rule broken
295 = First rule broken
296 = First rule broken
297 = First rule broken
298 = First rule broken
299 = First rule broken
300 = First rule broken
301 = Second rule broken
302 = First rule broken
303 = First rule broken
304 = First rule broken
305 = First rule broken
306 = First rule broken
307 = First rule broken
308 = First rule broken
309 = First rule broken
310 = Second rule broken
311 = First rule broken
312 = Second rule broken
313 = Second rule broken
314 = Second rule broken
315 = Second rule broken
316 = Second rule broken
317 = Second rule broken
318 = Second rule broken
319 = Second rule broken
320 = First rule broken
321 = Second rule broken
322 = First rule broken
323 = First rule broken
324 = First rule broken
325 = First rule broken
326 = First rule broken
327 = First rule broken
328 = First rule broken
329 = First rule broken
330 = First rule broken
331 = Second rule broken
332 = First rule broken
333 = First rule broken
334 = First rule broken
335 = First rule broken
336 = First rule broken
337 = First rule broken
338 = First rule broken
339 = First rule broken
340 = First rule broken
341 = Second rule broken
342 = First rule broken
343 = First rule broken
344 = First rule broken
345 = First rule broken
346 = First rule broken
347 = First rule broken
348 = First rule broken
349 = First rule broken
350 = First rule broken
351 = Second rule broken
352 = First rule broken
353 = First rule broken
354 = First rule broken
355 = First rule broken
356 = First rule broken
357 = First rule broken
358 = First rule broken
359 = First rule broken
360 = First rule broken
361 = Second rule broken
362 = First rule broken
363 = First rule broken
364 = First rule broken
365 = First rule broken
366 = First rule broken
367 = First rule broken
368 = First rule broken
369 = First rule broken
370 = Second rule broken
371 = First rule broken
372 = Second rule broken
373 = Second rule broken
374 = Second rule broken
375 = Second rule broken
376 = Second rule broken
377 = Second rule broken
378 = Second rule broken
379 = Third rule broken
380 = First rule broken
381 = Second rule broken
382 = First rule broken
383 = First rule broken
384 = First rule broken
385 = First rule broken
386 = First rule broken
387 = First rule broken
388 = First rule broken
389 = First rule broken
390 = First rule broken
391 = Second rule broken
392 = First rule broken
393 = First rule broken
394 = First rule broken
395 = First rule broken
396 = First rule broken
397 = First rule broken
398 = First rule broken
399 = First rule broken
400 = First rule broken
401 = First rule broken
402 = First rule broken
403 = First rule broken
404 = First rule broken
405 = First rule broken
406 = First rule broken
407 = First rule broken
408 = First rule broken
409 = First rule broken
410 = First rule broken
411 = First rule broken
412 = First rule broken
413 = First rule broken
414 = First rule broken
415 = First rule broken
416 = First rule broken
417 = First rule broken
418 = First rule broken
419 = First rule broken
420 = First rule broken
421 = First rule broken
422 = First rule broken
423 = First rule broken
424 = First rule broken
425 = First rule broken
426 = First rule broken
427 = First rule broken
428 = First rule broken
429 = First rule broken
430 = First rule broken
431 = First rule broken
432 = First rule broken
433 = First rule broken
434 = First rule broken
435 = First rule broken
436 = First rule broken
437 = First rule broken
438 = First rule broken
439 = First rule broken
440 = First rule broken
441 = First rule broken
442 = First rule broken
443 = First rule broken
444 = First rule broken
445 = First rule broken
446 = First rule broken
447 = First rule broken
448 = First rule broken
449 = First rule broken
450 = First rule broken
451 = First rule broken
452 = First rule broken
453 = First rule broken
454 = First rule broken
455 = First rule broken
456 = First rule broken
457 = First rule broken
458 = First rule broken
459 = First rule broken
460 = First rule broken
461 = First rule broken
462 = First rule broken
463 = First rule broken
464 = First rule broken
465 = First rule broken
466 = First rule broken
467 = First rule broken
468 = First rule broken
469 = First rule broken
470 = First rule broken
471 = First rule broken
472 = First rule broken
473 = First rule broken
474 = First rule broken
475 = First rule broken
476 = First rule broken
477 = First rule broken
478 = First rule broken
479 = First rule broken
480 = First rule broken
481 = First rule broken
482 = First rule broken
483 = First rule broken
484 = First rule broken
485 = First rule broken
486 = First rule broken
487 = First rule broken
488 = First rule broken
489 = First rule broken
490 = First rule broken
491 = First rule broken
492 = First rule broken
493 = First rule broken
494 = First rule broken
495 = First rule broken
496 = First rule broken
497 = First rule broken
498 = First rule broken
499 = First rule broken
500 = First rule broken
501 = Second rule broken
502 = First rule broken
503 = First rule broken
504 = First rule broken
505 = First rule broken
506 = First rule broken
507 = First rule broken
508 = First rule broken
509 = First rule broken
510 = Second rule broken
511 = First rule broken
512 = Second rule broken
513 = Second rule broken
514 = Second rule broken
515 = Second rule broken
516 = Second rule broken
517 = Second rule broken
518 = Second rule broken
519 = Second rule broken
520 = First rule broken
521 = Second rule broken
522 = First rule broken
523 = First rule broken
524 = First rule broken
525 = First rule broken
526 = First rule broken
527 = First rule broken
528 = First rule broken
529 = First rule broken
530 = First rule broken
531 = Second rule broken
532 = First rule broken
533 = First rule broken
534 = First rule broken
535 = First rule broken
536 = First rule broken
537 = First rule broken
538 = First rule broken
539 = First rule broken
540 = First rule broken
541 = Second rule broken
542 = First rule broken
543 = First rule broken
544 = First rule broken
545 = First rule broken
546 = First rule broken
547 = First rule broken
548 = First rule broken
549 = First rule broken
550 = First rule broken
551 = Second rule broken
552 = First rule broken
553 = First rule broken
554 = First rule broken
555 = First rule broken
556 = First rule broken
557 = First rule broken
558 = First rule broken
559 = First rule broken
560 = First rule broken
561 = Second rule broken
562 = First rule broken
563 = First rule broken
564 = First rule broken
565 = First rule broken
566 = First rule broken
567 = First rule broken
568 = First rule broken
569 = First rule broken
570 = Second rule broken
571 = First rule broken
572 = Second rule broken
573 = Second rule broken
574 = Second rule broken
575 = Second rule broken
576 = Second rule broken
577 = Second rule broken
578 = Second rule broken
579 = Third rule broken
580 = First rule broken
581 = Second rule broken
582 = First rule broken
583 = First rule broken
584 = First rule broken
585 = First rule broken
586 = First rule broken
587 = First rule broken
588 = First rule broken
589 = First rule broken
590 = First rule broken
591 = Second rule broken
592 = First rule broken
593 = First rule broken
594 = First rule broken
595 = First rule broken
596 = First rule broken
597 = First rule broken
598 = First rule broken
599 = First rule broken
600 = First rule broken
601 = Second rule broken
602 = First rule broken
603 = First rule broken
604 = First rule broken
605 = First rule broken
606 = First rule broken
607 = First rule broken
608 = First rule broken
609 = First rule broken
610 = Second rule broken
611 = First rule broken
612 = Second rule broken
613 = Second rule broken
614 = Second rule broken
615 = Second rule broken
616 = Second rule broken
617 = Second rule broken
618 = Second rule broken
619 = Second rule broken
620 = First rule broken
621 = Second rule broken
622 = First rule broken
623 = First rule broken
624 = First rule broken
625 = First rule broken
626 = First rule broken
627 = First rule broken
628 = First rule broken
629 = First rule broken
630 = First rule broken
631 = Second rule broken
632 = First rule broken
633 = First rule broken
634 = First rule broken
635 = First rule broken
636 = First rule broken
637 = First rule broken
638 = First rule broken
639 = First rule broken
640 = First rule broken
641 = Second rule broken
642 = First rule broken
643 = First rule broken
644 = First rule broken
645 = First rule broken
646 = First rule broken
647 = First rule broken
648 = First rule broken
649 = First rule broken
650 = First rule broken
651 = Second rule broken
652 = First rule broken
653 = First rule broken
654 = First rule broken
655 = First rule broken
656 = First rule broken
657 = First rule broken
658 = First rule broken
659 = First rule broken
660 = First rule broken
661 = Second rule broken
662 = First rule broken
663 = First rule broken
664 = First rule broken
665 = First rule broken
666 = First rule broken
667 = First rule broken
668 = First rule broken
669 = First rule broken
670 = Second rule broken
671 = First rule broken
672 = Second rule broken
673 = Second rule broken
674 = Second rule broken
675 = Second rule broken
676 = Second rule broken
677 = Second rule broken
678 = Second rule broken
679 = Correct Answer!
680 = First rule broken
681 = Second rule broken
682 = First rule broken
683 = First rule broken
684 = First rule broken
685 = First rule broken
686 = First rule broken
687 = First rule broken
688 = First rule broken
689 = First rule broken
690 = First rule broken
691 = Second rule broken
692 = First rule broken
693 = First rule broken
694 = First rule broken
695 = First rule broken
696 = First rule broken
697 = First rule broken
698 = First rule broken
699 = First rule broken
700 = Second rule broken
701 = First rule broken
702 = Second rule broken
703 = Second rule broken
704 = Second rule broken
705 = Second rule broken
706 = Second rule broken
707 = Second rule broken
708 = Second rule broken
709 = Third rule broken
710 = First rule broken
711 = First rule broken
712 = First rule broken
713 = First rule broken
714 = First rule broken
715 = First rule broken
716 = First rule broken
717 = First rule broken
718 = First rule broken
719 = First rule broken
720 = Second rule broken
721 = First rule broken
722 = Second rule broken
723 = Second rule broken
724 = Second rule broken
725 = Second rule broken
726 = Second rule broken
727 = Second rule broken
728 = Second rule broken
729 = Third rule broken
730 = Second rule broken
731 = First rule broken
732 = Second rule broken
733 = Second rule broken
734 = Second rule broken
735 = Second rule broken
736 = Second rule broken
737 = Second rule broken
738 = Second rule broken
739 = Third rule broken
740 = Second rule broken
741 = First rule broken
742 = Second rule broken
743 = Second rule broken
744 = Second rule broken
745 = Second rule broken
746 = Second rule broken
747 = Second rule broken
748 = Second rule broken
749 = Fifth rule broken
750 = Second rule broken
751 = First rule broken
752 = Second rule broken
753 = Second rule broken
754 = Second rule broken
755 = Second rule broken
756 = Second rule broken
757 = Second rule broken
758 = Second rule broken
759 = Third rule broken
760 = Second rule broken
761 = First rule broken
762 = Second rule broken
763 = Second rule broken
764 = Second rule broken
765 = Second rule broken
766 = Second rule broken
767 = Second rule broken
768 = Second rule broken
769 = Third rule broken
770 = First rule broken
771 = First rule broken
772 = First rule broken
773 = First rule broken
774 = First rule broken
775 = First rule broken
776 = First rule broken
777 = First rule broken
778 = First rule broken
779 = First rule broken
780 = Third rule broken
781 = First rule broken
782 = Third rule broken
783 = Third rule broken
784 = Third rule broken
785 = Third rule broken
786 = Third rule broken
787 = Third rule broken
788 = Second rule broken
789 = Second rule broken
790 = Second rule broken
791 = First rule broken
792 = Second rule broken
793 = Second rule broken
794 = Second rule broken
795 = Second rule broken
796 = Second rule broken
797 = Second rule broken
798 = Second rule broken
799 = Second rule broken
800 = First rule broken
801 = Second rule broken
802 = First rule broken
803 = First rule broken
804 = First rule broken
805 = First rule broken
806 = First rule broken
807 = First rule broken
808 = First rule broken
809 = First rule broken
810 = Second rule broken
811 = First rule broken
812 = Second rule broken
813 = Second rule broken
814 = Second rule broken
815 = Second rule broken
816 = Second rule broken
817 = Second rule broken
818 = Second rule broken
819 = Second rule broken
820 = First rule broken
821 = Second rule broken
822 = First rule broken
823 = First rule broken
824 = First rule broken
825 = First rule broken
826 = First rule broken
827 = First rule broken
828 = First rule broken
829 = First rule broken
830 = First rule broken
831 = Second rule broken
832 = First rule broken
833 = First rule broken
834 = First rule broken
835 = First rule broken
836 = First rule broken
837 = First rule broken
838 = First rule broken
839 = First rule broken
840 = First rule broken
841 = Second rule broken
842 = First rule broken
843 = First rule broken
844 = First rule broken
845 = First rule broken
846 = First rule broken
847 = First rule broken
848 = First rule broken
849 = First rule broken
850 = First rule broken
851 = Second rule broken
852 = First rule broken
853 = First rule broken
854 = First rule broken
855 = First rule broken
856 = First rule broken
857 = First rule broken
858 = First rule broken
859 = First rule broken
860 = First rule broken
861 = Second rule broken
862 = First rule broken
863 = First rule broken
864 = First rule broken
865 = First rule broken
866 = First rule broken
867 = First rule broken
868 = First rule broken
869 = First rule broken
870 = Second rule broken
871 = First rule broken
872 = Second rule broken
873 = Second rule broken
874 = Second rule broken
875 = Second rule broken
876 = Second rule broken
877 = Second rule broken
878 = Second rule broken
879 = Second rule broken
880 = First rule broken
881 = Second rule broken
882 = First rule broken
883 = First rule broken
884 = First rule broken
885 = First rule broken
886 = First rule broken
887 = First rule broken
888 = First rule broken
889 = First rule broken
890 = First rule broken
891 = Second rule broken
892 = First rule broken
893 = First rule broken
894 = First rule broken
895 = First rule broken
896 = First rule broken
897 = First rule broken
898 = First rule broken
899 = First rule broken
900 = First rule broken
901 = Second rule broken
902 = First rule broken
903 = First rule broken
904 = First rule broken
905 = First rule broken
906 = First rule broken
907 = First rule broken
908 = First rule broken
909 = First rule broken
910 = Second rule broken
911 = First rule broken
912 = Second rule broken
913 = Second rule broken
914 = Second rule broken
915 = Second rule broken
916 = Second rule broken
917 = Second rule broken
918 = Second rule broken
919 = Second rule broken
920 = First rule broken
921 = Second rule broken
922 = First rule broken
923 = First rule broken
924 = First rule broken
925 = First rule broken
926 = First rule broken
927 = First rule broken
928 = First rule broken
929 = First rule broken
930 = First rule broken
931 = Second rule broken
932 = First rule broken
933 = First rule broken
934 = First rule broken
935 = First rule broken
936 = First rule broken
937 = First rule broken
938 = First rule broken
939 = First rule broken
940 = First rule broken
941 = Second rule broken
942 = First rule broken
943 = First rule broken
944 = First rule broken
945 = First rule broken
946 = First rule broken
947 = First rule broken
948 = First rule broken
949 = First rule broken
950 = First rule broken
951 = Second rule broken
952 = First rule broken
953 = First rule broken
954 = First rule broken
955 = First rule broken
956 = First rule broken
957 = First rule broken
958 = First rule broken
959 = First rule broken
960 = First rule broken
961 = Second rule broken
962 = First rule broken
963 = First rule broken
964 = First rule broken
965 = First rule broken
966 = First rule broken
967 = First rule broken
968 = First rule broken
969 = First rule broken
970 = Second rule broken
971 = First rule broken
972 = Second rule broken
973 = Second rule broken
974 = Second rule broken
975 = Second rule broken
976 = Second rule broken
977 = Second rule broken
978 = Second rule broken
979 = Second rule broken
980 = First rule broken
981 = Second rule broken
982 = First rule broken
983 = First rule broken
984 = First rule broken
985 = First rule broken
986 = First rule broken
987 = First rule broken
988 = First rule broken
989 = First rule broken
990 = First rule broken
991 = Second rule broken
992 = First rule broken
993 = First rule broken
994 = First rule broken
995 = First rule broken
996 = First rule broken
997 = First rule broken
998 = First rule broken
999 = First rule broken
*/
print("<pre>");
// Generate all possible combinations from 100 to 999 and evaluate them
for ($x = 100; $x <= 999; $x++) {
$numbers = str_split("".$x);
print $x." = ".evaluate($numbers[0], $numbers[1], $numbers[2])."\n";
}
/*
Evaluate a set of number against the 5 rules
*/
function evaluate($num1, $num2, $num3) {
if (rule1($num1, $num2, $num3) == false) {
return "First rule broken";
} else if (rule2($num1, $num2, $num3) == false) {
return "Second rule broken";
} else if (rule3($num1, $num2, $num3) == false) {
return "Third rule broken";
} else if (rule4($num1, $num2, $num3) == false) {
return "Fourth rule broken";
} else if (rule5($num1, $num2, $num3) == false) {
return "Fifth rule broken";
} else {
return ("Correct Answer!");
}
}
/*
One digit is right but in the wrong place
| 1 | 4 | 7 |
*/
function rule1($num1, $num2, $num3) {
$possibilities = 0;
// First digit can be 4 or 7
if (($num1 == 4) || ($num1 == 7)) {
$possibilities++;
}
// Second digit can be 1 or 7
if (($num2 == 1) || ($num2 == 7)) {
$possibilities++;
}
// Third digit can be 1 or 4
if (($num3 == 1) || ($num1 == 4)) {
$possibilities++;
}
// One and only one of the 3 possibilites must be true
if ($possibilities == 1) {
return true;
} else {
return false;
}
}
/*
One digit is right and in its place
| 1 | 8 | 9 |
*/
function rule2($num1, $num2, $num3) {
$possibilities = 0;
// First digit is 1
if ($num1 == 1) {
// Second digit cannot be 1, 8 or 9
if ($num2 != 8 && $num2 != 9 && $num2 != 1) {
// Third digit cannot be 1, 8 or 9
if ($num3 != 8 && $num3 != 9 && $num3 != 1) {
$possibilities++;
}
}
}
// Second digit is 8
if ($num2 == 8) {
// First digit cannot be 1, 8 or 9
if ($num1 != 1 && $num1 != 8 && $num1 != 9) {
// Third digit cannot be 1, 8 or 9
if ($num3 != 1 && $num3 != 8 && $num3 != 9) {
$possibilities++;
}
}
}
// Third digit is 9
if ($num3 == 9) {
// First digit cannot be 1, 8 or 9
if ($num1 != 1 && $num1 != 8 && $num1 != 9) {
// Second digit cannot be 1, 8 or 9
if ($num2 != 1 && $num2 != 8 && $num2 != 9) {
$possibilities++;
}
}
}
// One and only one of the 3 possibilites must be true
if ($possibilities == 1) {
return true;
} else {
return false;
}
}
/*
Two digits are correct but both are in the wrong place
| 9 | 6 | 4 |
*/
function rule3($num1, $num2, $num3) {
$possibilities = 0;
// First digit is 6 or 4
if (($num1 == 6) || ($num1 == 4)) {
$possibilities++;
}
// Second digit is 9 or 4
if (($num2 == 9) || ($num2 == 4)) {
$possibilities++;
}
// Third digit is 6 or 4
if (($num3 == 9) || ($num3 == 6)) {
$possibilities++;
}
// Two and only two of the 3 possibilites must be true
if ($possibilities == 2) {
return true;
} else {
return false;
}
}
/*
All digits are wrong
| 5 | 2 | 3 |
*/
function rule4($num1, $num2, $num3) {
// None of the digits can be a 5
if ($num1 == 5 || $num2 == 5 || $num3 == 5) {
return false;
}
// None of the digits can be a 2
if ($num1 == 2 || $num2 == 2 || $num3 == 2) {
return false;
}
// None of the digits can be a 3
if ($num1 == 3 || $num2 == 3 || $num3 == 3) {
return false;
}
return true;
}
/*
One digit is right but in the wrong place
| 2 | 8 | 6 |
*/
function rule5($num1, $num2, $num3) {
$possibilities = 0;
// First digit is 8 or 6
if (($num1 == 8) || ($num1 == 6)) {
$possibilities++;
}
// Second digit is 2 or 6
if (($num2 == 2) || ($num2 == 6)) {
$possibilities++;
}
// Third digit is 2 or 8
if (($num3 == 2) || ($num3 == 8)) {
$possibilities++;
}
// One and only one of the 3 possibilites must be true
if ($possibilities == 1) {
return true;
} else {
return false;
}
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment