예제 #1
0
파일: Game.cs 프로젝트: TkRsln/Reversi
        }//*/

        public PL[][] findLines(int teamNo, Vector2Int pos)
        {
            List <PL[]> ls = new List <PL[]>();

            for (int i = 0; i < 8; i++)
            {
                int        x      = i % 4 == 0 ? 0 : (i > 4 ? -1 : 1);
                int        y      = (i - 2) % 4 == 0 ? 0 : ((i) < 6 ? -1 : 1);
                int        power  = 1;
                Vector2Int vec    = new Vector2Int(x, y);
                List <PL>  line   = new List <PL>();
                PL         target = getPlByCoor(pos + vec * 2 * power);
                //Debug.Log((target != null) +" "+(target != referance) + " > " +(referance + vec * 2 * power).x + " | " + (referance + vec * 2 * power).y);
                while (target != null && target.team_no != teamNo)
                {
                    line.Add(target);
                    //Debug.Log(" > " + i+"  "+x+" "+y);
                    power++;
                    target = getPlByCoor(pos + vec * 2 * power);
                    //Debug.Log(">> " + (target != null) + " " + (target != referance) + " > " + (referance + vec * 2 * power).x + " | " + (referance + vec * 2 * power).y);
                }
                //if (line.Count > 0) ls.Add(line.ToArray());

                if (target != null && target.team_no == teamNo && line.Count > 0)
                {
                    ls.Add(line.ToArray());
                }
            }
            return(ls.ToArray());
        }//*/
예제 #2
0
파일: Game.cs 프로젝트: TkRsln/Reversi
        IEnumerator lateFunc()
        {
            addPl(0, new Vector2Int(1, 1));
            addPl(1, new Vector2Int(-1, 1));
            addPl(0, new Vector2Int(-3, 1));
            addPl(1, new Vector2Int(1, -1));
            addPl(0, new Vector2Int(1, -3));
            addPl(1, new Vector2Int(3, 1));
            addPl(0, new Vector2Int(5, 1));
            createPlayableSlot(0);
            yield return(new WaitForSeconds(1));

            PL pp = getPlByCoor(new Vector2Int(1, 1));

            PL[][] d = findLines(pp);
            Debug.Log("d: " + d.Length);
            for (int x = 0; x < d.Length; x++)
            {
                Debug.Log(x);
                for (int y = 0; y < d[x].Length; y++)
                {
                    Debug.Log(d[x][y].getX() + " " + d[x][y].getY());
                }
            }
            //if (d != null) Debug.Log("d: "+d.Length);
            //else Debug.Log("d: Null");

            // removePlayableSlots();
            //createPlayableSlot(1);
            //yield return new WaitForSeconds(5);
            //removePlayableSlots();
        }
예제 #3
0
파일: Game.cs 프로젝트: TkRsln/Reversi
        public PL[][] findLines(PL referance)
        {
            List <PL[]> ls = new List <PL[]>();

            for (int i = 0; i < 8; i++)
            {
                int        x      = (i - 1) % 8 < 3 ? 1 : i > 4?-1:0;
                int        y      = (i + 1) % 8 < 3?1:((i + 2) % 8 > 4?-1:0);//(i-2)%4==0? 0 : ((i)<6 ? -1 : 1);
                int        power  = 1;
                Vector2Int vec    = new Vector2Int(x, y);
                List <PL>  line   = new List <PL>();
                PL         target = getPlByCoor(referance + vec * 2 * power);
                //Debug.Log((target != null) +" "+(target != referance) + " > " +(referance + vec * 2 * power).x + " | " + (referance + vec * 2 * power).y);
                while (target != null && target != referance)
                {
                    line.Add(target);
                    //Debug.Log(" > " + i+"  "+x+" "+y);
                    power++;
                    target = getPlByCoor(referance + vec * 2 * power);
                    //Debug.Log(">> " + (target != null) + " " + (target != referance) + " > " + (referance + vec * 2 * power).x + " | " + (referance + vec * 2 * power).y);
                }
                if (target != null && target.team_no == referance.team_no && line.Count > 0)
                {
                    ls.Add(line.ToArray());
                    Debug.Log(i + " " + line.Count + " " + line[0].getX() + " " + line[0].getY() + " Direct:" + vec.x + " " + vec.y);
                }

                //if (line.Count > 0) ls.Add(line.ToArray());
            }
            return(ls.ToArray());
        }//*/