531 {
532 int rightmost_bit;
533 int smallest = 99999;
534 int smallest_index = 0;
535
536 for (int i = 0; i < num_of_ingredients; i++)
537 {
539 if ( count != 0 && count < smallest)
540 {
542 smallest_index = i;
543 }
544 }
545
548
549 for (
int x = 0;
x < num_of_ingredients;
x++)
550 {
554 }
555
556
557 int check_sum_vertical = 0;
558
559 for (int z = 0; z < num_of_ingredients; z++)
560 {
564 {
565 return false;
566 }
567 }
568
569 if ( check_sum_vertical != (Math.Pow(2, num_of_ingredients) - 1)) return false;
570
571 passes++;
572
573 if (passes < num_of_ingredients)
574 {
576 }
577 return true;
578 }
int m_IngredientBitMaskSize[MAX_INGREDIENTS]
bool ResolveIngredients(int num_of_ingredients, int passes=0)
int m_BitsResults[MAX_INGREDIENTS]
int m_IngredientBitMask[MAX_INGREDIENTS]