|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.04.2010, 19:20 | #1 |
Пользователь
Регистрация: 15.04.2010
Сообщений: 29
|
С#
Так как с С# дела ни разу еще пока не имел,
буду весьма благодарен тому кто пояснит следующие: namespace Task { public delegate void MoveDelegate(PictureBox Object); public delegate void MonstreLogicDelegate(PictureBox Object); public struct StartPoints { public int left; public int top; } public partial class Form1 : Form { private int icount = 0; private Thread th; private Thread th2; private Thread th3; private Thread th4; private Thread th5; StartPoints[] sp = new StartPoints[6]; int[] GhostMove=new int[5]; public Form1() { InitializeComponent(); sp[0].left = Monster.Left; sp[0].top = Monster.Top; sp[1].left = Monster2.Left; sp[1].top = Monster2.Top; } public bool LeftFree(PictureBox Object) { for (int x = 0; x < this.Controls.Count; x++) { if (this.Controls[x].GetType().ToString() == "System.Windows.Forms.PictureBo x") { if ((Object.Left == (((PictureBox)this.Controls[x]).Left + 33)) && (Object.Top == ((PictureBox)this.Controls[x]).Top) && (((PictureBox)this.Controls[x]).Name!="Kolobok") && (((PictureBox)this.Controls[x]).Name!="fruit1") &&(((PictureBox)this.Controls[x]).Name!="fruit2") && (((PictureBox)this.Controls[x]).Name!="fruit3") &&(((PictureBox)this.Controls[x]).Name!="fruit4") && (((PictureBox)this.Controls[x]).Name!="fruit5")) { return false; } } } return true; } public bool RightFree(PictureBox Object) { for (int x = 0; x < this.Controls.Count; x++) { if (this.Controls[x].GetType().ToString() == "System.Windows.Forms.PictureBo x") { if ((Object.Left + 33 == ((PictureBox)this.Controls[x]).Left) && (Object.Top == ((PictureBox)this.Controls[x]).Top) && (((PictureBox)this.Controls[x]).Name != "Kolobok") && (((PictureBox)this.Controls[x]).Name != "fruit1") && (((PictureBox)this.Controls[x]).Name != "fruit2") && (((PictureBox)this.Controls[x]).Name != "fruit3") && (((PictureBox)this.Controls[x]).Name != "fruit4") && (((PictureBox)this.Controls[x]).Name != "fruit5")) { return false; ; } } } ............... public void MonsterLogic(PictureBox Object) { Random r = new Random(); Random d = new Random(); Random s = new Random(); int c = 0; int i = 0; if (Object.Name == "Monster") { i = 0; } if (Object.Name == "Monster2") { i = 1; } if (Object.Name == "Monster3") { i = 2; } if (Object.Name == "Monster4") { i = 3; } if (Object.Name == "Monster5") { i = 4; } if (LeftFree(Object) == true) { c += 8; } if (RightFree(Object) == true) { c += 2;} if (UpFree(Object) == true) { c += 1; } if (DownFree(Object) == true) { c += 4; } switch (c) { case 15: { switch (r.Next(0, 4)) { case 0: if (GhostMove[i] != 2) { GotoRight(Object); GhostMove[i] = 4; } break; case 1: if (GhostMove[i] != 1) { GotoDown(Object); GhostMove[i] = 3; } break; case 2: if (GhostMove[i] != 4) { GotoLeft(Object); GhostMove[i] = 2; } break; case 3: if (GhostMove[i] != 3) { GotoUp(Object); GhostMove[i] = 1; } break; } } break; ............................. public void MoveMonster() { MonstreLogicDelegate mld = new MonstreLogicDelegate(MonsterLogic); Invoke(mld, Monster); th.Join(700); MoveMonster(); } .............................. public void SetFruit(PictureBox fruit) { Random l = new Random(); Random t = new Random(); bool b = true; int left = l.Next(1, 21) * 33; int top = t.Next(2,15)*31+26; for (int x = 0; x < this.Controls.Count; x++) { if (this.Controls[x].GetType().ToString() == "System.Windows.Forms.PictureBo x") { if ((((PictureBox)this.Controls[x]).Left == left) && (((PictureBox)this.Controls[x]).Top == top)) { b = false; } } } if (b == true) { fruit.Top = top; fruit.Left = left; } else { SetFruit(fruit); } } |