andrew197
andrew197

Reputation: 27

Checking if numbers in a array match

I am trying to make a program that generates 6 unique numbers from 1 to 49, a bonus number and a 7 digit extra number I want to check if any of the 6 digits match the current lotto number or the bonus number matches. I also want to check if any of the 7 extra numbers match. I am not sure how I would compare the numbers from each array to each other.

Any help would be appreciated

static void PLayLotto649()
{
    int[] currentNumbers = ChangeLotto49Numbers();
    int[] extraNumbers = ChangeLottoExtraNumbers();
    int[] userLottoNumbers = StartingNumbers();
    int[] userExtraNumbers = AutoGenrateExtraNumbers();

    Console.WriteLine($"\nThe current Lotto 6/49 number are: {string.Join(",",currentNumbers)}" );
    Console.WriteLine($"\nThe current Extra number is:{string.Join(",", extraNumbers)}"); 

    Console.WriteLine($"\nYour 6/49 number is: { string.Join(",", userLottoNumbers)}");
    Console.WriteLine($"\nYour lotto Extra number is: { string.Join(",", userExtraNumbes)}");
}

static int[] StartingNumbers()
{
    int temp;
    int[] lotto = new int[7];

    Random rand = new Random();

    for (int i = 0; i < 7; i++)
    {
        temp = rand.Next(1, 50);
        lotto[i] = temp;
    }

    return lotto;
}

static int[] ChangeLottoExtraNumbers()
{
    int temp;
    int[] extra = new int[7];

    Random rand = new Random();

    for (int i = 0; i < 7; i++)
    {
        temp = rand.Next(0, 7);
        extra[i] = temp;
    }
    Console.Write($"the new extra number is: ");
    for (int i = 0; i < 7; i++)
    {
        Console.Write(extra[i] + " ");
    }
    return extra;
}

static int[] AutoGenrateExtraNumbers()
{
    int temp;
    int[] autoExtra = new int[7];

    Random rand = new Random();

    for (int i = 0; i < 7; i++)
    {
        temp = rand.Next(0, 7);
        autoExtra[i] = temp;
    }
    Console.Write($"the new extra number is: ");
    for (int i = 0; i < 7; i++)
    {
        Console.Write(autoExtra[i] + " ");
    }
    return autoExtra;
}

static int[] ChangeLotto49Numbers()
{
    int temp;
    int[] lotto49 = new int[6];

    Random rand = new Random();

    for (int i = 0; i < 6; i++)
    {
        temp = rand.Next(1, 49);
        lotto49[i] = temp;
    }
    Console.Write($"the new lotto Max winning numbers are: ");

    for (int i = 0; i < 6; i++)
    {
        Console.Write(lotto49[i] + " ");
    }

    return lotto49;
}

Upvotes: 1

Views: 212

Answers (1)

zaitsman
zaitsman

Reputation: 9499

Try something like this:

static bool IsEqualTo(this int[] source, int[] target) {
    if (source == null && target != null || 
        source != null && target == null || 
        source?.Length ?? 0 != target?.Length ?? 0) {
       return false;
    }

    if (source == null && target == null) {
       return true;
    }

    for (var i = 0; i < source.Length; i++) {
     if (source[i] != target[i]) {
       return false;
      }
    }

    return true;
}

Then to use:

     int[] currentNumbers = ChangeLotto49Numbers();
     int[] extraNumbers = ChangeLottoExtraNumbers();
     if (currentNumbers.IsEqualTo(extraNumbers)) { // do something 
     }

Upvotes: 1

Related Questions