Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

177
Views
2D array 3x9 matrix get the index of the next two elements of the current index and check if it is equal to 0

I am a total newbie to programming and i have been following some tutorials on array related to housie ticket generator.The point where I am stuck is that, I have to check each rows and each rows of the 3x9 matrix should not have more the two empty cells or it cannot have more then two cells filled next to each other.I am putting random numbers on the arrays and trying to validate the rules but,the program crashes. Can someone please give me an idea.?

This is what i've tried.

for(int columnIndex=0;columnIndex<=6;columnIndex++)
          {
              if(game[i,columnIndex+2]!=0)
              {
                  return -1;
              }
          }

And this is the whole code

using System;

namespace HelloWorld
{
  class Program
  {
      public static void Main (String[] args)
        {
            for(int times=0;times<2;times++)
            {
                startGame();
                Console.WriteLine("******************************************************************");
            }
            
        }

         private static void startGame()
        {
            int[,] game = new int[3, 9];
            int occupancyLimit = 15;

            while (occupancyLimit > 0)
            {
                int i = getRandomNumber(3);
                int j = getRandomNumber(9);
                //Console.Write(i);
                //Console.Write(j);
                // Console.Write(game[i,j]+" ");
                int data = validateAndReturnNumber(i, j, game);
            
                if (data>0)
                {
                    game[i, j] = data;
                    occupancyLimit--;
                    //Console.WriteLine(game[i,j]);
                }

            }
         for (int i = 0; i < game.GetLength(0); i++)
        {
            for (int j = 0; j < game.GetLength(1); j++)
            {
                Console.Write(game[i,j] + "\t");
            }
            Console.WriteLine();
        }
           
        } 

     
        private static  int validateAndReturnNumber(int i, int j, int[,] game)
        {
            //do not override existing elements in array
            if (game[i,j] != 0)
            {
                return -1;
            }
            //column cannot have more then two elements
            int columncounter = 0;
            for(int c=0;c<3;c++)
            {
                if(game[c,j]!=0)
                {
                    columncounter++;
                }
            }
            if(columncounter>=2)
            {
                return -1;
            }
/*
            //rows cannot have more then two cells filled in and 
            //rows cannot have more then two empty cells
          for(int columnIndex=0;columnIndex<=6;columnIndex++)
          {
              if(game[i,columnIndex+2]!=0)
              {
                  return -1;
              }
          }
     */      
            // rows cannot have more then 5 elements
            int rowcounter = 0;
            for(int r=0;r<9;r++)
            {     
                if(game[i,r]!=0)
                {       
                    rowcounter++;
                }
                
            }
            //Applying, rows cannot have more then 5 elements
            if(rowcounter>=5)
            {
                return -1;
            }

            //return getRandomNumberForColumn(j);
            int data = 0;
            Boolean isValueSet = false;
            do
            {
                data = getRandomNumberForColumn(j);
                isValueSet = isValueExistsInCol(game, i, j, data);
            } while (isValueSet);
            return data;
        }

        private static bool isValueExistsInCol(int[,] game, int i, int j, int data)
        {
            Boolean status = false;
            for(int k=0;k<3;k++)
            {
                if(game[k,j]==data)
                {
                    status = true;
                    break;
                }
            }
            return status;
        }

        private static int getRandomNumberForColumn(int high)
        {
          if(high==0)
            {
                high = 10;

            }
            else
            {
                high=(high + 1) * 10;
            }
            int low = high - 9;
            Random random = new Random();
            return random.Next(high-low)+low;
        }

        private static int getRandomNumber(int max)
        {
            Random random = new Random();
            int num=random.Next(max);
            return (num);
            
        }
    }
}
over 4 years ago · Santiago Trujillo
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!