//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(); } }
//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); }