Exemplo n.º 1
0
        //cek kondisi win habis atau tidaknya merah atau biru
        public void cekwin()
        {
            bool biru  = false;
            bool merah = false;

            for (int i = 0; i < listanimal.Count; i++)
            {
                if (listanimal[i].pemilik == "T")
                {
                    biru = true;
                }
                else
                {
                    merah = true;
                }
            }
            if (biru == false)
            {
                MessageBox.Show("Red Team WIN");
                form_win f = new form_win("MERAH", "All Eat", "8");
                f.Visible = true;
                this.Close();
            }
            if (merah == false)
            {
                MessageBox.Show("Blue Team WIN");
                form_win f = new form_win("BIRU", "All Eat", "8");
                f.Visible = true;
                this.Close();
            }
        }
Exemplo n.º 2
0
        //cek gerak valid atau tidak
        public bool isValidMove(int y, int x)
        {
            //cari selisih x dan selisih y dari pergerakan player
            bool kembalian = false;
            int  selisih_x = listanimal[indexterambil].x - x;
            int  selisih_y = listanimal[indexterambil].y - y;

            // cek apakah x atau y terdapat salah satu sejajar karna player tidak dapat bergerak miring
            if (listanimal[indexterambil].x == x || listanimal[indexterambil].y == y)
            {
                //jika selisih 1 maka player hanya bergerak 1 langkah
                if (selisih_x == 1 || selisih_y == 1 || selisih_x == -1 || selisih_y == -1)
                {
                    //cek langkah yang dituju player rumput,trap,air,atau musuh yang didarat dan diair dan juga cek win
                    if (map[y, x] == "R" || map[y, x] == "TT" || map[y, x] == "TM")
                    {
                        listanimal[indexterambil].x        = x;
                        listanimal[indexterambil].y        = y;
                        listanimal[indexterambil].dalamair = false;
                        if (map[y, x] == "TT" && listanimal[indexterambil].pemilik == "M")
                        {
                            listanimal[indexterambil].dalamtrap = true;
                        }
                        else if (map[y, x] == "TM" && listanimal[indexterambil].pemilik == "T")
                        {
                            listanimal[indexterambil].dalamtrap = true;
                        }
                        else
                        {
                            listanimal[indexterambil].dalamtrap = false;
                        }
                        kembalian = true;
                    }
                    else if (map[y, x] == "A" && listanimal[indexterambil].power == 8)
                    {
                        listanimal[indexterambil].x         = x;
                        listanimal[indexterambil].y         = y;
                        listanimal[indexterambil].dalamair  = true;
                        listanimal[indexterambil].dalamtrap = false;
                        kembalian = true;
                    }
                    else if (map[y, x] == "FT" && listanimal[indexterambil].pemilik == "T")
                    {
                        MessageBox.Show("Blue Team WIN");
                        int jumawal = 8;
                        int hitung  = 0;
                        for (int i = 0; i < listanimal.Count; i++)
                        {
                            if (listanimal[i].pemilik == "M")
                            {
                                hitung++;
                            }
                        }
                        jumawal -= hitung;
                        form_win f = new form_win("BIRU", "GOAL", jumawal + "");
                        f.Visible = true;
                        this.Close();
                        listanimal[indexterambil].x         = x;
                        listanimal[indexterambil].y         = y;
                        listanimal[indexterambil].dalamair  = false;
                        listanimal[indexterambil].dalamtrap = false;
                        kembalian = true;
                    }
                    else if (map[y, x] == "FM" && listanimal[indexterambil].pemilik == "M")
                    {
                        MessageBox.Show("Red Team WIN");
                        int jumawal = 8;
                        int hitung  = 0;
                        for (int i = 0; i < listanimal.Count; i++)
                        {
                            if (listanimal[i].pemilik == "T")
                            {
                                hitung++;
                            }
                        }
                        jumawal -= hitung;
                        form_win f = new form_win("MERAH", "GOAL", jumawal + "");
                        f.Visible = true;
                        this.Close();
                        listanimal[indexterambil].x         = x;
                        listanimal[indexterambil].y         = y;
                        listanimal[indexterambil].dalamair  = false;
                        listanimal[indexterambil].dalamtrap = false;
                        kembalian = true;
                    }
                    else
                    {
                        for (int i = 0; i < listanimal.Count; i++)
                        {
                            if (listanimal[i].y == y && listanimal[i].x == x && listanimal[i].pemilik != turn)
                            {
                                if (listanimal[indexterambil].power == 8 && listanimal[i].power == 1 && listanimal[indexterambil].dalamair == false)
                                {
                                    listanimal[indexterambil].x = x;
                                    listanimal[indexterambil].y = y;
                                    listanimal.RemoveAt(i);
                                    kembalian = true;
                                }
                                else if (listanimal[indexterambil].power <= listanimal[i].power && listanimal[i].dalamair == false && listanimal[indexterambil].dalamair == false)
                                {
                                    if (listanimal[indexterambil].power == 1 && listanimal[i].power == 8)
                                    {
                                        kembalian    = false;
                                        lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                    }
                                    else
                                    {
                                        listanimal[indexterambil].x = x;
                                        listanimal[indexterambil].y = y;
                                        listanimal.RemoveAt(i);
                                        kembalian = true;
                                    }
                                }
                                else if (listanimal[indexterambil].power == 8 && listanimal[i].power == 8)
                                {
                                    listanimal[indexterambil].x = x;
                                    listanimal[indexterambil].y = y;
                                    listanimal.RemoveAt(i);
                                    kembalian = true;
                                }
                                else if (listanimal[i].dalamtrap == true)
                                {
                                    listanimal[indexterambil].x = x;
                                    listanimal[indexterambil].y = y;
                                    listanimal.RemoveAt(i);
                                    kembalian = true;
                                }
                                else
                                {
                                    kembalian    = false;
                                    lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                }
                            }
                        }
                    }
                }
                //cek jika player bergerak 2 langkah
                else if ((selisih_x == 3 || selisih_x == -3) && (listanimal[indexterambil].power == 2 || listanimal[indexterambil].power == 3))
                {
                    //cek player bergerak ke kiri atau ke kanan dan cek langkah player ke depan
                    if (selisih_x > 0)
                    {
                        String a = map[listanimal[indexterambil].y, listanimal[indexterambil].x - 1];
                        String b = map[listanimal[indexterambil].y, listanimal[indexterambil].x - 2];
                        String c = map[listanimal[indexterambil].y, listanimal[indexterambil].x - 3];
                        if (a == "A" && b == "A")
                        {
                            if (c == "R")
                            {
                                kembalian = true;
                                listanimal[indexterambil].x = x;
                                listanimal[indexterambil].y = y;
                            }
                            else
                            {
                                int indexdiseberang = -1;
                                for (int i = 0; i < listanimal.Count; i++)
                                {
                                    if (listanimal[i].y == listanimal[indexterambil].y && listanimal[i].x == listanimal[indexterambil].x - 3)
                                    {
                                        indexdiseberang = i;
                                    }
                                }
                                if (listanimal[indexdiseberang].pemilik != listanimal[indexterambil].pemilik)
                                {
                                    if (listanimal[indexterambil].power <= listanimal[indexdiseberang].power)
                                    {
                                        listanimal[indexterambil].x = x;
                                        listanimal[indexterambil].y = y;
                                        listanimal.RemoveAt(indexdiseberang);
                                        kembalian = true;
                                    }
                                    else
                                    {
                                        kembalian    = false;
                                        lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                    }
                                }
                                else
                                {
                                    kembalian    = false;
                                    lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                }
                            }
                        }
                        else
                        {
                            kembalian    = false;
                            lbfalse.Text = "tidak dapat melewati tikus di air";
                        }
                    }
                    else
                    {
                        String a = map[listanimal[indexterambil].y, listanimal[indexterambil].x + 1];
                        String b = map[listanimal[indexterambil].y, listanimal[indexterambil].x + 2];
                        String c = map[listanimal[indexterambil].y, listanimal[indexterambil].x + 3];
                        if (a == "A" && b == "A")
                        {
                            if (c == "R")
                            {
                                listanimal[indexterambil].x = x;
                                listanimal[indexterambil].y = y;
                                kembalian = true;
                            }
                            else
                            {
                                int indexdiseberang = -1;
                                for (int i = 0; i < listanimal.Count; i++)
                                {
                                    if (listanimal[i].y == listanimal[indexterambil].y && listanimal[i].x == listanimal[indexterambil].x + 3)
                                    {
                                        indexdiseberang = i;
                                    }
                                }
                                if (listanimal[indexdiseberang].pemilik != listanimal[indexterambil].pemilik)
                                {
                                    if (listanimal[indexterambil].power <= listanimal[indexdiseberang].power)
                                    {
                                        listanimal[indexterambil].x = x;
                                        listanimal[indexterambil].y = y;
                                        listanimal.RemoveAt(indexdiseberang);
                                        kembalian = true;
                                    }
                                    else
                                    {
                                        kembalian    = false;
                                        lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                    }
                                }
                                else
                                {
                                    kembalian    = false;
                                    lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                }
                            }
                        }
                        else
                        {
                            kembalian    = false;
                            lbfalse.Text = "tidak dapat melewati tikus di air";
                        }
                    }
                }
                //cek jika player bergerak 3 langkah
                else if ((selisih_y == 4 || selisih_y == -4) && (listanimal[indexterambil].power == 2 || listanimal[indexterambil].power == 3))
                {
                    //cek player bergerak ke bawah atau ke atas dan cek langkah player ke depan
                    if (selisih_y > 0)
                    {
                        String a = map[listanimal[indexterambil].y - 1, listanimal[indexterambil].x];
                        String b = map[listanimal[indexterambil].y - 2, listanimal[indexterambil].x];
                        String c = map[listanimal[indexterambil].y - 3, listanimal[indexterambil].x];
                        String d = map[listanimal[indexterambil].y - 4, listanimal[indexterambil].x];
                        if (a == "A" && b == "A" && c == "A")
                        {
                            if (d == "R")
                            {
                                listanimal[indexterambil].x = x;
                                listanimal[indexterambil].y = y;
                                kembalian = true;
                            }
                            else
                            {
                                int indexdiseberang = -1;
                                for (int i = 0; i < listanimal.Count; i++)
                                {
                                    if (listanimal[i].y == listanimal[indexterambil].y - 4 && listanimal[i].x == listanimal[indexterambil].x)
                                    {
                                        indexdiseberang = i;
                                    }
                                }
                                if (listanimal[indexdiseberang].pemilik != listanimal[indexterambil].pemilik)
                                {
                                    if (listanimal[indexterambil].power <= listanimal[indexdiseberang].power)
                                    {
                                        listanimal[indexterambil].x = x;
                                        listanimal[indexterambil].y = y;
                                        listanimal.RemoveAt(indexdiseberang);
                                        kembalian = true;
                                    }
                                    else
                                    {
                                        kembalian    = false;
                                        lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                    }
                                }
                                else
                                {
                                    kembalian    = false;
                                    lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                }
                            }
                        }
                        else
                        {
                            kembalian    = false;
                            lbfalse.Text = "tidak dapat melewati tikus di air";
                        }
                    }
                    if (selisih_y < 0)
                    {
                        String a = map[listanimal[indexterambil].y + 1, listanimal[indexterambil].x];
                        String b = map[listanimal[indexterambil].y + 2, listanimal[indexterambil].x];
                        String c = map[listanimal[indexterambil].y + 3, listanimal[indexterambil].x];
                        String d = map[listanimal[indexterambil].y + 4, listanimal[indexterambil].x];
                        if (a == "A" && b == "A" && c == "A")
                        {
                            if (d == "R")
                            {
                                listanimal[indexterambil].x = x;
                                listanimal[indexterambil].y = y;
                                kembalian = true;
                            }
                            else
                            {
                                int indexdiseberang = -1;
                                for (int i = 0; i < listanimal.Count; i++)
                                {
                                    if (listanimal[i].y == listanimal[indexterambil].y + 4 && listanimal[i].x == listanimal[indexterambil].x)
                                    {
                                        indexdiseberang = i;
                                    }
                                }
                                if (listanimal[indexdiseberang].pemilik != listanimal[indexterambil].pemilik)
                                {
                                    if (listanimal[indexterambil].power <= listanimal[indexdiseberang].power)
                                    {
                                        listanimal[indexterambil].x = x;
                                        listanimal[indexterambil].y = y;
                                        listanimal.RemoveAt(indexdiseberang);
                                        kembalian = true;
                                    }
                                    else
                                    {
                                        kembalian    = false;
                                        lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                    }
                                }
                                else
                                {
                                    kembalian    = false;
                                    lbfalse.Text = "hewan yang ingin dimakan tidak valid";
                                }
                            }
                        }
                        else
                        {
                            kembalian    = false;
                            lbfalse.Text = "tidak dapat melewati tikus di air";
                        }
                    }
                }
                else
                {
                    kembalian    = false;
                    lbfalse.Text = "langkah tidak benar";
                }
            }
            else
            {
                kembalian    = false;
                lbfalse.Text = "langkah tidak benar";
            }
            return(kembalian);
        }