void ArkaPlanToggle(Oyuncu oyuncu) { if (oyuncu.gorsel.BackColor == Color.White) { oyuncu.gorsel.BackColor = Color.Black; } else { oyuncu.gorsel.BackColor = Color.White; } }
void GizliAltinVarmi(Oyuncu oyuncuKonumu) { for (int i = 0; i < Altinlar.Length; i++) { if (Altinlar[i].GetDeger() == int.MaxValue || Altinlar[i].GetGorunurluk()) { continue; } if (oyuncuKonumu.konum.x == Altinlar[i].GetX() && oyuncuKonumu.konum.y == Altinlar[i].GetY()) { Altinlar[i].SetGorunurluk(true); } } }
void IstatistikOlustur(Oyuncu oyuncu, string veri) { switch (oyuncu.oyuncuTipi) { case 'A': sw_A.WriteLine(veri); break; case 'B': sw_B.WriteLine(veri); break; case 'C': sw_C.WriteLine(veri); break; case 'D': sw_D.WriteLine(veri); break; } }
void ToplananAltinArttir(Oyuncu oyuncu, int AltinMiktari) { switch (oyuncu.oyuncuTipi) { case 'A': A_ToplananAltin += AltinMiktari; break; case 'B': B_ToplananAltin += AltinMiktari; break; case 'C': C_ToplananAltin += AltinMiktari; break; case 'D': D_ToplananAltin += AltinMiktari; break; } }
void AdimArttir(Oyuncu oyuncu) { switch (oyuncu.oyuncuTipi) { case 'A': A_ToplamAdim++; break; case 'B': B_ToplamAdim++; break; case 'C': C_ToplamAdim++; break; case 'D': D_ToplamAdim++; break; } }
void OyunculariOlustur() { Image[] imgOyuncular = new Image[4]; imgOyuncular[0] = Image.FromFile("resimler\\bluePlayer.png"); imgOyuncular[1] = Image.FromFile("resimler\\greenPlayer.png"); imgOyuncular[2] = Image.FromFile("resimler\\redPlayer.png"); imgOyuncular[3] = Image.FromFile("resimler\\yellowPlayer.png"); PictureBox[] pcbOyuncular = new PictureBox[4]; for (int i = 0; i < pcbOyuncular.Length; i++) { pcbOyuncular[i] = new PictureBox(); panelOyun.Controls.Add(pcbOyuncular[i]); pcbOyuncular[i].Image = imgOyuncular[i]; pcbOyuncular[i].SizeMode = PictureBoxSizeMode.StretchImage; pcbOyuncular[i].Width = (panelOyun.Width / M) / 2; pcbOyuncular[i].Height = (panelOyun.Height / N) / 2; pcbOyuncular[i].BorderStyle = BorderStyle.None; pcbOyuncular[i].BringToFront(); pcbOyuncular[i].Visible = true; } pcbOyuncular[0].Top = 0 + pcbOyuncular[0].Height / 2; pcbOyuncular[0].Left = 0 + pcbOyuncular[0].Width / 2; pcbOyuncular[0].BackColor = Color.Black; pcbOyuncular[1].Top = 0 + pcbOyuncular[1].Height / 2; pcbOyuncular[1].Left = ((M - 1) * panelOyun.Width / M) + pcbOyuncular[1].Width / 2; pcbOyuncular[1].BackColor = ((M - 1) % 2 == 0) ? Color.Black : Color.White; pcbOyuncular[2].Top = ((N - 1) * panelOyun.Height / N) + pcbOyuncular[0].Height / 2; pcbOyuncular[2].Left = 0 + pcbOyuncular[2].Width / 2; pcbOyuncular[2].BackColor = ((N - 1) % 2 == 0) ? Color.Black : Color.White; pcbOyuncular[3].Top = ((N - 1) * panelOyun.Height / N) + pcbOyuncular[3].Height / 2; pcbOyuncular[3].Left = ((M - 1) * panelOyun.Width / M) + pcbOyuncular[3].Width / 2; if (N % 2 == 0 && M % 2 == 0) { pcbOyuncular[3].BackColor = Color.Black; } else if (N % 2 == 1 && M % 2 == 0) { pcbOyuncular[3].BackColor = Color.White; } else if (N % 2 == 0 && M % 2 == 1) { pcbOyuncular[3].BackColor = Color.White; } else if (N % 2 == 1 && M % 2 == 1) { pcbOyuncular[3].BackColor = Color.Black; } //pcbOyuncular[3].BackColor = (N % 2 == 0 && M % 2 == 0) ? Color.Black : Color.White; //pcbOyuncular[3].BackColor = (N-1 % 2 == 0 && M % 2 == 0) ? Color.White : Color.Black; //pcbOyuncular[3].BackColor = (N % 2 == 0 && M-1 % 2 == 0) ? Color.Black : Color.White; Oyuncular[0] = new Oyuncu('A', oyuncuBaslangicAltinMiktari, (int)numericA_Hamle.Value, (int)numericA_Hedef.Value, hamleHakki, new Oyuncu.Konum(0, 0), pcbOyuncular[0], Altinlar); Oyuncular[1] = new Oyuncu('B', oyuncuBaslangicAltinMiktari, (int)numericB_Hamle.Value, (int)numericB_Hedef.Value, hamleHakki, new Oyuncu.Konum(M - 1, 0), pcbOyuncular[1], Altinlar); Oyuncular[2] = new Oyuncu('C', oyuncuBaslangicAltinMiktari, (int)numericC_Hamle.Value, (int)numericC_Hedef.Value, hamleHakki, new Oyuncu.Konum(0, N - 1), pcbOyuncular[2], Altinlar); Oyuncular[3] = new Oyuncu('D', oyuncuBaslangicAltinMiktari, (int)numericD_Hamle.Value, (int)numericD_Hedef.Value, hamleHakki, new Oyuncu.Konum(M - 1, N - 1), pcbOyuncular[3], Altinlar); Oyuncu.OyunculariOlustur(Oyuncular); panelLog.BringToFront(); }
// her bir oyuncu hedef gösterdikten sonra oyunda hedefin hangisi olduğu // gösterilmesi için çizilmektedir. public void hedefGostergeCiz(Oyuncu oyuncu, PaintEventArgs args, List <List <Block> > grid) { blockCizdir(args, oyuncu.oyuncuRengi, grid[oyuncu.hedef.y][oyuncu.hedef.x]); }
// her bir oyuncunun çizidirilme işlemini gerçekleştirmektedir. public void oyuncuCiz(Oyuncu oyuncu, PaintEventArgs args, List <List <Block> > grid, string name) { blockBoya(args, oyuncu.oyuncuRengi, grid[oyuncu.konum.y][oyuncu.konum.x], name); }
bool UzerindeMi(Oyuncu oyuncuKonumu, Altin hedefAltin) { return((oyuncuKonumu.konum.x == hedefAltin.GetX() && oyuncuKonumu.konum.y == hedefAltin.GetY()) ? true : false); }
void Yuru(Oyuncu oyuncu, Altin hedefAltin, Panel panelOyun) { for (int i = 0; i < oyuncu.hamleHakki; i++) { if (oyuncu.altinMiktari < oyuncu.hamleMaliyeti) { break; } panelOyun.Refresh(); if (hedefAltin.GetX() - oyuncu.konum.x < 0) { HarcananAltinArttir(oyuncu, oyuncu.hamleMaliyeti); AdimArttir(oyuncu); oyuncu.konum.x -= 1; ArkaPlanToggle(oyuncu); oyuncu.altinMiktari -= oyuncu.hamleMaliyeti; altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti"); altinToplamaOyunu.logEkrani.Refresh(); IstatistikOlustur(oyuncu, "Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti. [-" + oyuncu.hamleMaliyeti + "]"); altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Text = "Oyuncu : " + oyuncu.oyuncuTipi + " " + oyuncu.altinMiktari; altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Refresh(); GizliAltinVarmi(oyuncu); oyuncu.gorsel.Left -= oyuncu.gorsel.Width * 2; continue; } else if (hedefAltin.GetX() - oyuncu.konum.x > 0) { HarcananAltinArttir(oyuncu, oyuncu.hamleMaliyeti); AdimArttir(oyuncu); oyuncu.konum.x += 1; ArkaPlanToggle(oyuncu); oyuncu.altinMiktari -= oyuncu.hamleMaliyeti; altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti"); altinToplamaOyunu.logEkrani.Refresh(); IstatistikOlustur(oyuncu, "Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti. [-" + oyuncu.hamleMaliyeti + "]"); altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Text = "Oyuncu : " + oyuncu.oyuncuTipi + " " + oyuncu.altinMiktari; altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Refresh(); GizliAltinVarmi(oyuncu); oyuncu.gorsel.Left += oyuncu.gorsel.Width * 2; continue; } if (hedefAltin.GetY() - oyuncu.konum.y < 0) { HarcananAltinArttir(oyuncu, oyuncu.hamleMaliyeti); AdimArttir(oyuncu); oyuncu.konum.y -= 1; ArkaPlanToggle(oyuncu); oyuncu.altinMiktari -= oyuncu.hamleMaliyeti; altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti"); altinToplamaOyunu.logEkrani.Refresh(); IstatistikOlustur(oyuncu, "Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti. [-" + oyuncu.hamleMaliyeti + "]"); altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Text = "Oyuncu : " + oyuncu.oyuncuTipi + " " + oyuncu.altinMiktari; altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Refresh(); GizliAltinVarmi(oyuncu); oyuncu.gorsel.Top -= oyuncu.gorsel.Height * 2; continue; } else if (hedefAltin.GetY() - oyuncu.konum.y > 0) { HarcananAltinArttir(oyuncu, oyuncu.hamleMaliyeti); AdimArttir(oyuncu); oyuncu.konum.y += 1; ArkaPlanToggle(oyuncu); oyuncu.altinMiktari -= oyuncu.hamleMaliyeti; altinToplamaOyunu.logEkrani.Items.Add("Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti"); altinToplamaOyunu.logEkrani.Refresh(); IstatistikOlustur(oyuncu, "Oyuncu " + oyuncu.oyuncuTipi + "(" + oyuncu.konum.x + " , " + oyuncu.konum.y + ") konumuna gitti. [-" + oyuncu.hamleMaliyeti + "]"); altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Text = "Oyuncu : " + oyuncu.oyuncuTipi + " " + oyuncu.altinMiktari; altinToplamaOyunu.oyuncuLabellar[(int)oyuncu.oyuncuTipi - 65].Refresh(); GizliAltinVarmi(oyuncu); oyuncu.gorsel.Top += oyuncu.gorsel.Height * 2; continue; } } }