شما می توانید با عضویت در انجمن پرسش و پاسخ درسمن هرگونه سوالی دارید را مطرح کنید


ساخت بازی دوز


ساخت بازی دوز
برای دانلود و دیدن آنلاین این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

برای ساخت بازی دوز ابتدا 9 لیبل به صورت 3 در 3 روی صفحه می‌سازیم. برای نام‌گزاری آنها از کلمه lbl و دو عدد استفاده می‌کنیم. اولین لیبل از سمت بالا-چپ به نام lbl00 و دومین لیبل بالا-وسط به نام lbl01 است و با همین الگو پیش می‌رویم.

حال باید یک آرایه دوبعدی 3 در 3 تعریف کنیم تا نام لیبل کلیک شده را درون آن بریزیم.

int[,] XO = new int[3, 3];

در این بازی کلیک راست ماوس بازیکن شماره 2 و کلیک چپ بازیکن شماره 1است. چون همه لیبل‌ها در هنگام کلیک یک کار را انجام می‌دهند، برای آنها یک رویداد مشترک تعریف می‌کنیم. درون این رویداد ابتدا باید متن لیبل کلیک شونده را با شماره بازیکن کلیک کننده پر کنیم و دو عدد آخر نام لیبل را درون آرایه بریزیم و برسی کنیم که آیا این بازیکن برنده است یا خیر.

ابتدا باید شرطی بنویسیم که مشخص کند کلیک چپ زره شده یا راست. همان طور که در جلاسات پیشین گفته شد، مشخصات شیء کلیک کننده درون متغیر e ذخیره می‌شود.


if (e.Button == MouseButtons.Left) //شد چپ کلیک اگر
{ 
}

حال باید دو عدد آخر نام لیبل را جدا کرده و درون آرایه بریزیم.

private void lblClick(object sender, MouseEventArgs e)
{
    int i, j;
    i = int.Parse(((Label)sender).Name[3].ToString()); //کارکتر سومین
    j = int.Parse(((Label)sender).Name[4].ToString()); //کارکتر چهارمین
    if (e.Button == MouseButtons.Left) //شد چپ کلیک اگر
    { 
        
    }
}

حال درون شرط متن لیبل را با شماره بازیکن پر کرده و مقارید را درون آرایه میریزیم.

private void lblClick(object sender, MouseEventArgs e)
{
    int i, j;
    i = int.Parse(((Label)sender).Name[3].ToString()); //کارکتر سومین
    j = int.Parse(((Label)sender).Name[4].ToString()); //کارکتر چهارمین
    if (e.Button == MouseButtons.Left) //شد چپ کلیک اگر
    {
        ((Label)sender).Text = "1"; //لیبل متن پرکردن
        XO[i, j] = 1; //آرایه در متن ریختن
    }
}

حال باید برای بازیکن شماره 2 نیز این عمل را تکرار کنیم.

private void lblClick(object sender, MouseEventArgs e)
{
    int i, j;
    i = int.Parse(((Label)sender).Name[3].ToString()); //کارکتر سومین
    j = int.Parse(((Label)sender).Name[4].ToString()); //کارکتر چهارمین
    if (e.Button == MouseButtons.Left) //شد چپ کلیک اگر
    {
        ((Label)sender).Text = "1"; //لیبل متن پرکردن
        XO[i, j] = 1; //آرایه در متن ریختن
    }
    else
    {
        ((Label)sender).Text = "2"; //لیبل متن پرکردن
        XO[i, j] = 2; //آرایه در متن ریختن
    }
}

تا اینجا همه کارها به درستی انجام شده است و اکنون باید تابعی بنویسیم تا برسی کن که آیا بازیکن برنده شده است یا نه. این تابع سه ورودی دارد که شامل شماره بازیکن کلیک کننده، مقدار i و j است، نام این تابع را check قرار می‎دهیم.

درون تابع check باید چهار تابع دیگر را فراخانی کنیم که هرکدام یکی از جهات (عمودی، افقی، قطراصلی و قطر فرعی) را برای بازیکن برسی می‌کنند.

public void check(int i, int j, int person) //check تابع
{
    rowcheck(i, j, person); //افقی ردیف برسی تابع
    colcheck(i, j, person); //عمودی ردیف برسی تابع
    ghotraslicheck(person); //اصلی قطر برسی تابع
    ghotrfareicheck(person); //فرعی قطر برسی تابع
}

اکنون باید هریک از این چهار تابع را به صورت جداگانه تعریف کنیم.

public void rowcheck(int i, int j, int person) //rowcheck تابع
{
    if (XO[i, 0] == person && XO[i, 1] == person && XO[i, 2] == person)
    {
        MessageBox.Show("بازیکن شماره " + person.ToString()+ " برنده شد");
    }
}
public void colcheck(int i, int j, int person) //colcheck تابع
{
    if (XO[0,j] == person && XO[1,j] == person && XO[2,j] == person)
    {
        MessageBox.Show("بازیکن شماره " + person.ToString() + " برنده شد");
    }
}
public void ghotraslicheck(int person) //ghotraslicheck تابع
{
    if (XO[0, 0] == person && XO[1, 1] == person && XO[2, 2] == person)
    {
        MessageBox.Show("بازیکن شماره " + person.ToString() + " برنده شد");
    }
}
public void ghotrfareicheck(int person) //ghotrfareicheck تابع
{
    if (XO[2, 0] == person && XO[1, 1] == person && XO[0, 2] == person)
    {
        MessageBox.Show("بازیکن شماره " + person.ToString() + " برنده شد");
    }
}

حال باید تابع check را درون شرط بنویسیم.

private void lblClick(object sender, MouseEventArgs e)
{
    int i, j;
    i = int.Parse(((Label)sender).Name[3].ToString()); //کارکتر سومین
    j = int.Parse(((Label)sender).Name[4].ToString()); //کارکتر چهارمین
    if (e.Button == MouseButtons.Left) //شد چپ کلیک اگر
    {
        ((Label)sender).Text = "1"; //لیبل متن پرکردن
        XO[i, j] = 1; //آرایه در متن ریختن
        check(i, j, 1); //check تابع
    }
    else
    {
        ((Label)sender).Text = "2"; //لیبل متن پرکردن
        XO[i, j] = 2; //آرایه در متن ریختن
        check(i, j, 2); //check تابع
    }
}

امید واریم که این آموزش برای شما مفید واقع شده باشد. در قسمت بعد قصد داریم که در کنار شما عزیزان با کنترل دکمه(Button) آشنا شویم. لطفاً با ما همراه باشید...


برچسب ها :

ساخت بازی دوز بازی دوز با سی شارپ

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.
23 جلسه برای دوره آموزش ویندوز فرم سی شارپ-مقدماتی

درس 1
مفاهیم ویندوز فرم و ساخت اولین برنامه
15 دقیقه / رایگان

درس 2
ویژگیهای فرم و تغییر آنها
20 دقیقه / رایگان

درس 3
رویدادهای فرم- بخش اول
26 دقیقه / رایگان

درس 4
رویدادهای فرم-بخش دوم
20 دقیقه / رایگان

درس 5
کنترل لیبل (Lable) و ویژگیهای آن
14 دقیقه / رایگان

درس 6
رویدادهای لیبل(Lable)
19 دقیقه / رایگان

درس 7
ساخت بازی دوز
35 دقیقه / رایگان

درس 8
کنترل دکمه(Button)
14 دقیقه / رایگان

درس 9
کنترل کادر متن(TextBox)
33 دقیقه / رایگان

درس 10
ساخت ماشین حساب
30 دقیقه / رایگان

درس 11
ساخت منو
22 دقیقه / رایگان

درس 14
کار با فایلهای متنی
21 دقیقه / رایگان

درس 15
ساخت برنامه ویرایشگر فارسی-بخش اول
23 دقیقه / رایگان

درس 16
ساخت برنامه ویرایشگر فارسی-بخش دوم
39 دقیقه / رایگان

درس 17
دکمه های رادیویی-RadioButton
17 دقیقه / رایگان

درس 18
کنترل کامبوباکس-combobox
35 دقیقه / رایگان

درس 19
اضافه کردن کلاس جدید به پروژه
7 دقیقه / رایگان

درس 21
ساخت نرم افزار رمزنگار متن-بخش اول
36 دقیقه / رایگان

درس 22
ساخت نرم افزار رمزنگار متن-بخش دوم
53 دقیقه / رایگان

درس 23
ارتباط با پایگاه داده
16 دقیقه / رایگان

درس 24
درج داده در پایگاه داده
17 دقیقه / رایگان

درس 25
حذف داده از پایگاه داده
10 دقیقه / رایگان

درس 26
واکشی داده از دیتابیس
16 دقیقه / رایگان

دوره آموزش ویندوز فرم سی شارپ-مقدماتی


تعداد جلسات 26 جلسه
مدت زمان 538 دقیقه
سطح مهارت مقدماتی
زبان فارسی
دانشجو 45 دانشجو
گواهی نامه ندارد
قیمت دوره : 0 تومان
درحال برگزاری
مهدی احمدی
مهدی احمدی

درباره مدرس :

از سال 1380 برنامه نویسی را شروع کرده و از سال 90 در این زمینه تدریس میکنم .با زبانهای سی پلاس پلاس ، سی ،پاسکال ،VB ، سی شارپ ،اسمبلی، جاوا و .... کار کرده و آنها را تدریس کرده ام.هم اکنون نیز مشغول تدریس در دانشگاه هستم و مدتی است با سایت درسمن همکاری میکنم