Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2010, 19:20   #1
Vegas
Пользователь
 
Регистрация: 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); }
}
Vegas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц