Exemplo n.º 1
0
        public int[] GetAvailableMoves(int start, int[][] data, MovingRules moveType)
        {
            int        hop           = (int)moveType;
            List <int> possibleMoves = new List <int>();

            for (int iOuter = 0; iOuter < data.Length; iOuter++)
            {
                if (data[iOuter].Contains(start))
                {
                    for (int iInner = 0; iInner < data[iOuter].Length; iInner++)
                    {
                        // find the position of the starting element
                        if (data[iOuter][iInner] == start)
                        {
                            int posNextInner = iInner + hop, posNextOuter = iOuter + hop, posPrevInner = iInner - hop, posPrevOuter = iOuter - hop;

                            if (posNextOuter == data.Length)
                            {
                                posNextOuter = 0;
                            }
                            if (posPrevOuter < 0)
                            {
                                posPrevOuter = iOuter + data[iOuter].Length - hop;
                            }

                            if (posNextInner == data[iOuter].Length)
                            {
                                posNextInner = 0;
                            }
                            if (posPrevInner < 0)
                            {
                                posPrevInner = iInner + data[iOuter].Length - hop;
                            }

                            possibleMoves.Add(data[iOuter][posNextInner]);
                            possibleMoves.Add(data[iOuter][posPrevInner]);
                            possibleMoves.Add(data[posNextOuter][iInner]);
                            possibleMoves.Add(data[posPrevOuter][iInner]);

                            break;
                        }
                    }
                    break;
                }
                else
                {
                    continue;
                }
            }
            return(possibleMoves.ToArray());
        }
Exemplo n.º 2
0
        /// <summary>
        /// generate a given length of numbers randomize by moving position rules from input
        /// </summary>
        /// <param name="input">multi dimensional array input</param>
        /// <param name="startNumber">to begin</param>
        /// <param name="randomGeneratorLength">like 7 or 5</param>
        /// <param name="moveRule">1</param>
        /// <returns></returns>
        public int[] Randomize(int[][] input, int startNumber, int randomGeneratorLength, MovingRules moveRule)
        {
            int[] randomSequence = new int[randomGeneratorLength];

            int counter = 0;

            randomSequence[counter++] = startNumber;
            do
            {
            } while (counter < randomGeneratorLength);

            return(randomSequence);
        }