hsdnhd
چهارشنبه 23 اردیبهشت 1394, 17:05 عصر
باسلام
من با استفاده از سورس زیر 5 تا نردبان و 5 تا مار تولید میکنم که هرکدوم یک سر و یک ته داره و اینکه از ساخت نردبان افقی نیز جلوگیری میکند وبعدش این مشخصات رو دارم می ریزم توی یک آرایه دو بعدی یعنی هر نردبان و هر مار توی یک ردیف آرایه هستند توی بعد اول سر مار یا نردبان و توی بعد دوم آخرش هست اما خب من روی فرمم برای نشان دادن اعداد از Label ها استفاده کرد و پرسیدم گفتند باید با استفاده از Point ها بتونم اون نردبان و مارهارو روی فرمم نمایش بدم میخواستم بدونم چطوری من باید این اعداد که توی آرایه هستند رو بیارم روی فرم مثلا عدد 86 باید بشه همون lbl86 روی فرم و مثلا توی آرایه عدد 23 باشه و توی بعد بعدیش هم 54 باشه باید یک خط از 23 تا 54 بکشم و اگر بشه رنگ لیبل هارو هم عوض کنم به نظرتون چطوری میتونم اینکارو کنم؟پروژه پایان ترم دانشگاهم هست چندوقتی هست دارم روش کارمیکنم 1 ماه دیگه هم بیشتر وقت ندارم.
ممنون
public partial class Form1 : Form {
int [,] arr=new int[5,2];
enum SelShape
{
Line, RLine, Rect, FREct, ERaser, None
}
SelShape slshape = SelShape.None;
Pen p = new Pen(Color.Black);
Graphics gs = null;
int mx, my;
bool bdown = false;
public Form1()
{
InitializeComponent();
}
int ss = 0;
int se = 0;
int ls = 0;
int le = 0;
public int snake()
{
Random rnd = new Random();
do
{
se = rnd.Next(1, 100);
ss = rnd.Next(1, se);
} while (se % 10 > ss % 10);
return ss & se;
}
public int ladder()
{
Random rnd = new Random();
do
{
ls = rnd.Next(1, 100);
le = rnd.Next(ls, 100);
} while (se % 10 > ss % 10);
return ls & le;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
Text = e.X.ToString() + "," + e.Y.ToString();
if (bdown)
{
if (slshape == SelShape.RLine)
{
gs.DrawLine(p, mx, my, e.X, e.Y);
mx = e.X;
my = e.Y;
}
else if (slshape == SelShape.ERaser)
{
p.Color = label1.BackColor;
gs.DrawLine(p, mx, my, e.X, e.Y);
mx = e.X;
my = e.Y;
p.Color = label1.BackColor;
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
Point po1 = new Point();
po1.X = label1.Location.X;
po1.Y = label1.Location.Y;
}
private void label1_MouseDown(object sender, MouseEventArgs e)
{
bdown = true;
mx = e.X;
my = e.Y;
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
ladder();
for (int j = 0; j < 2; j++)
{
if (j == 0)
arr[i, j] = ls;
else if (j == 1)
arr[i, j] = le;
}
}
for (int i = 0; i < 5; i++)
{
snake();
for (int j = 0; j < 2; j++)
{
if (j == 0)
arr[i, j] = ss;
else if (j == 1)
arr[i, j] = se;
}
}
}
}
من با استفاده از سورس زیر 5 تا نردبان و 5 تا مار تولید میکنم که هرکدوم یک سر و یک ته داره و اینکه از ساخت نردبان افقی نیز جلوگیری میکند وبعدش این مشخصات رو دارم می ریزم توی یک آرایه دو بعدی یعنی هر نردبان و هر مار توی یک ردیف آرایه هستند توی بعد اول سر مار یا نردبان و توی بعد دوم آخرش هست اما خب من روی فرمم برای نشان دادن اعداد از Label ها استفاده کرد و پرسیدم گفتند باید با استفاده از Point ها بتونم اون نردبان و مارهارو روی فرمم نمایش بدم میخواستم بدونم چطوری من باید این اعداد که توی آرایه هستند رو بیارم روی فرم مثلا عدد 86 باید بشه همون lbl86 روی فرم و مثلا توی آرایه عدد 23 باشه و توی بعد بعدیش هم 54 باشه باید یک خط از 23 تا 54 بکشم و اگر بشه رنگ لیبل هارو هم عوض کنم به نظرتون چطوری میتونم اینکارو کنم؟پروژه پایان ترم دانشگاهم هست چندوقتی هست دارم روش کارمیکنم 1 ماه دیگه هم بیشتر وقت ندارم.
ممنون
public partial class Form1 : Form {
int [,] arr=new int[5,2];
enum SelShape
{
Line, RLine, Rect, FREct, ERaser, None
}
SelShape slshape = SelShape.None;
Pen p = new Pen(Color.Black);
Graphics gs = null;
int mx, my;
bool bdown = false;
public Form1()
{
InitializeComponent();
}
int ss = 0;
int se = 0;
int ls = 0;
int le = 0;
public int snake()
{
Random rnd = new Random();
do
{
se = rnd.Next(1, 100);
ss = rnd.Next(1, se);
} while (se % 10 > ss % 10);
return ss & se;
}
public int ladder()
{
Random rnd = new Random();
do
{
ls = rnd.Next(1, 100);
le = rnd.Next(ls, 100);
} while (se % 10 > ss % 10);
return ls & le;
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
Text = e.X.ToString() + "," + e.Y.ToString();
if (bdown)
{
if (slshape == SelShape.RLine)
{
gs.DrawLine(p, mx, my, e.X, e.Y);
mx = e.X;
my = e.Y;
}
else if (slshape == SelShape.ERaser)
{
p.Color = label1.BackColor;
gs.DrawLine(p, mx, my, e.X, e.Y);
mx = e.X;
my = e.Y;
p.Color = label1.BackColor;
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
Point po1 = new Point();
po1.X = label1.Location.X;
po1.Y = label1.Location.Y;
}
private void label1_MouseDown(object sender, MouseEventArgs e)
{
bdown = true;
mx = e.X;
my = e.Y;
}
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
ladder();
for (int j = 0; j < 2; j++)
{
if (j == 0)
arr[i, j] = ls;
else if (j == 1)
arr[i, j] = le;
}
}
for (int i = 0; i < 5; i++)
{
snake();
for (int j = 0; j < 2; j++)
{
if (j == 0)
arr[i, j] = ss;
else if (j == 1)
arr[i, j] = se;
}
}
}
}