if (mode == 0)

            {

                for (int j = 0; j < ly; j++)

                {

                    for (int i = 0; i < lx; i++)

                    {

                        index = i + lx * j;

                        if (map[index] != 1)

                        {

                            for (int n = 0; n < 9; n++)

                            {

                                ax = i + (int)ex[n];

                                ay = j + (int)ey[n];

                                bx = ((ax % lx) + lx) % lx;

                                by = ((ay % ly) + ly) % ly;


                                output[n + 9 * (bx + lx * by)] = fout[n + 9 * index];

                            }

                        }

                    }

                }

            }

            else if (mode == 1)

            {

                for (int j = 0; j < ly; j++)

                {

                    for (int i = 0; i < lx; i++)

                    {

                        index = i + lx * j;

                        if (map[index] == 1)

                        {

                            for (int n = 0; n < 9; n++)

                            {

                                ax = i + (int)ex[n];

                                ay = j + (int)ey[n];

                                bx = ((ax % lx) + lx) % lx;

                                by = ((ay % ly) + ly) % ly;


                                output[n + 9 * (bx + lx * by)] = fout[n + 9 * index];

                            }

                        }

                    }

                }

            }



map[index] 가 1이냐? 1이 아니냐? 에 따라 다른건데 일단은 mode 파라메터를 만들고 0, 1 값에 따라 바뀌는걸로 했는데


좀 더 괜찮은 방법이 있읍니까