صفر تا صد ساخت بازی با سی شارپ 3#

صفر تا صد ساخت بازی با سی شارپ 3#
در جلسه قبلی در مورد متغییرها و توابع صحبت کردیم. این جلسه عملگرها ، عبارات شرطی ، آرایه ها و حلقه ها رو یاد می گیرید و همچنین یاد می گیرید که چطور با استفاده از عبارات شرطی، روند حرکت برنامه را کنترل کنید و چطور با استفاده از حلقه ها کارهای تکراری برنامه رو مدیریت کنید؛ همچنین در هر قسمت تمرین مرتبط انجام می دهید.
دارالترجمه رسمی
دارالترجمه رسمی پارسیس شامل خدمات ترجمه رسمی و تخصصی در بیش از 60 زبان زنده دنیا
جای بروشور دیواری
خرید جای بروشور دیواری و رومیزی
افزونه های سئو وردپرس
بهترین افزونه های سئو وردپرس به صورت کاملا فارسی
تعمیر لوازم خانگی
تعمیر جاروبرقی، مایکروفر، بخارشوی، ظرفشویی، لباسشویی، سولاردام، کولرگازی
خودتان را اینجا معرفی کنید

عملگرها

عملگرها نقش مهمی در برنامه نویسی دارند و بدون آنها نمی توانید کاری انجام دهید. اما عملگر چیست؟ یک عبارت ریاضی مثل 2 + 5 را در نظر بگیرید . در این عبارت + یک "عملگر" و اعداد 2 و 5 "عملوند" هستند . عملگر علامتی است که به کامپایلر می گوید عملیات بخصوصی را انجام دهد مثل عملگر (+ یا -) و عملوند چیزی است که عملیات روی آن صورت می گیرد. سی شارپ عملگرهای زیادی دارد. خلاصه ای از عملگرهایی که ما بیشتر با آنها سر و کار داریم را برای شما قرار دادیم. این لیست بر اساس اولویت این عمگرها مرتب شده است:
 
 

عبارات شرطی

فرض کنید باید برنامه ای بنویسید که یک عدد از کاربر بگیرد و تشخیص دهد که این عدد زوج است یا فرد. در صورت زوج بودن عدد خروجی پیغامی مناسب مبنی بر زوج بودن عدد نمایش دهد و در غیر اینصورت پیغامی مبنی بر فرد بودن عدد نمایش دهد. در این برنامه نیاز دارید تا بر اساس عدد وارد شده تصمیم گیری کنید که برنامه چه پیغامی را نمایش دهد.
چطور می توان چنین کاری انجام داد؟
با استفاده از عبارات شرطی می توانید تصمیم گیری کنید و مسیر حرکت برنامه را انتخاب کنید. عبارات شرطی همانطور که مشخص است یک شرط را بررسی می کنند و در صورت درست بودن شرط، کدهای داخل بلاک آن شرط اجرا می شوند و در صورت غلط بودن عبارت شرطی، برنامه از اجرا کدهای داخل بلوک شرط صرفنظر کرده و به خط بعد از عبارت شرطی می رود و ادامه پیدا می کند. نحوه تعریف عبارت شرطی به فرم زیر است:
(عبارتی که درستی آن بررسی می شود)if
}
          دستوراتی که در صورت درست بودن شرط اجرا شوند.           
{
else
}
          دستوراتی که در صورت غلط بودن شرط  اجرا می شوند.           
{
برای درک بهتر مطلب مثال زوج یا فرد بودن عدد را انجام دهید:
 (if(num%2 == 0
}
        MessageBox.Show( " عدد زوج است" );
{
else
}
        MessageBox.Show( " عدد فرد است " );

{
طبق جدول بالا اولویت عملگر % بیشتر از عملگر == پس اول عملیات تقسیم انجام می شود و باقیمانده آن بجای عبارت num%2 قرار می گیرد و همان طور که می دانید اگر عددی زوج باشد باقیمانده تقسیم آن بر 2 ، صفر خواهد شد. در این شرط هم اگر عدد زوج باشد اول سمت چپ صفر می شود و سپس مقایسه انجام می شود، آیا 0 مساوی با 0 است؟ بله. پس شرط، نتیجه درست را بر می گرداند و پیغامِ "عدد زوج است" نمایش داده می شود. در غیر اینصورت عدد خروجی فرد بوده که پیغام دوم، "عدد فرد است" نمایش داده می شود.

امتحان کنید 2 (استفاده از عبارات شرطی):

یک برنامه جدید بسازید و دو کنترل  TextBox ، یک کنترل label و یک کنترل Button به فرم اضافه کنید. اسم یکی از TextBox ها را به txt_firstNumber و دیگری را به txt_secondNumber تغییر دهید. اسم label را به lbl_operator تغییر دهید و اسم button را به btn_compare تغییر دهید سپس متن آن را به Compare& تغییر دهید(با قرار دادن & در ابتدای متن یک کنترل در واقع یک شورتکات برای آن کنترل درست می کنیم، حالا اگر در زمان اجرای برنامه کلیدهای alt+c را بزنید btn_compare کلیک خواهد شد). در محیط طراحی روی btn_compare دوبار کلیک کنید تا رخداد کلیک آن در محیط کد ساخته شود و سپس کد زیر را به آن اضافه کنید:
 
       int firstNumber = int.Parse(txt_firstNumber.Text);
       int secondNumber = Convert.ToInt32(txt_secondNumber.Text);
 
       if (firstNumber > secondNumber)
       {
            lbl_oprator.Text = ">";
       }
       else if (firstNumber < secondNumber)
       {
            lbl_oprator.Text = "<";
       }
       else
       {
            lbl_oprator.Text = "=";
       }
 
برنامه رو اجرا کنید و مقادیر درون هر کدوم از TextBox ها را وارد کنید و کلیدهای alt+c را فشار دهید. می بینید که عمل مقایسه انجام می شود.

توضیح!
برای تبدیل یک متغییر از نوع رشته ای به متغییر عددی ، می توانید از یکی از این دو راه استفاده کنید:


1 - از متد parse نوع داده ای int ، که نحوه استفاده از آن به همان حالت فوق است.
2 - استفاده از متد ToInt کلاس، Convert دقیقا به همان روش بالا.
اگر متنی که می خواهید تبدیل به عدد کنید، حاوی کارکترهای غیر عددی باشد برنامه شما دچار خطای زمان اجرا می شود و از کار می افتد، پس هر زمان که می خواهید از کاربر عددی را دریافت کنید حتما کنترل کنید که عدد وارد کرده باشد.
 اگر بخواهیم بین سه یا چند عمل یکی انجام شود، بصورت بالا عمل می کنیم. یعنی عبارت if سپس else if و در آخر else را قرار می دهیم.

شرطهای تو در تو

علاوه بر استفاده متوالی از دستورات if، می توانيد در داخل يك if از دستورات if ديگری استفاده كنيد.

امتحان کنید 3 (شرطهای تو در تو):

فرض کنید می خواهید سیستم ثبت نامی بسازید که نام، جنسیت و سن شخص را می گیرد و در صورتی که فرد ثبت نام کننده یک مردِ زیرِ 30 سال باشد او را ثبت نام می کند، در غیر اینصورت پیغامی نمایش می دهد مبنی بر اینکه فرد شرایط لازم جهت ثبت نام را ندارد.

یک فرم شبیه تصویر زیر طراحی کنید و طبق نام گذاری های قبلی کنترل ها را نام گذاری کنید.


 
*نکته : برای نام گذاری RadioButton ها می توانید از rdb استفاده کنید.
*نکته : برای از بین بردن آیکون فرم و راست به چپ کردن فرم و نیز از بین بردن دکمه های بزرگ کردن و کوچک کردن فرم ، روی فرم کلیک کنید و از پنجره Properties ، ویژگی های زیر را پیدا کنید و تغییر بدید.
FromBorderStyle = FixedDialog
MaximizeBox = False
MinimumBox = False
RightToLeft = Yes   
درون رخداد کلیک دکمه ثبت نام کد زیر را وارد کنید:
if((int.Parse(txt_age.Text) < 30) && (int.Parse(txt_age.Text) >= 20))
{
 
          if (rdb_man.Checked == true)
          {
                MessageBox.Show("آقای" + txt_name.Text + "ثبت نام شما انجام شد");
           }
           else if (rdb_woman.Checked == true)
           {
                 MessageBox.Show("سرکار خانم" + txt_name.Text + "شما شرایط جنسیتی ثبت نام را ندارید");
            }
            else
            {
                 MessageBox.Show("لطفا جنسیت خود را مشخص کنید");
             }
}
else
{
       MessageBox.Show("شما شرایط سنی ثبت نام را ندارید");
}
شرط تو در تو چگونه کار می کند:
طبق جدول عملگرها اولویت عملگر () بیشتر از عملگر && است، پس ابتدا عملیاتهای درون دو پرانتز چپ و راست عملگر && انجام می شوند، سپس اگر هر دو مقدار درست را برگردانند شرط درست می شود و کدهای درون شرط اجرا می شوند در نتیجه اگر سن فرد بین 20 تا 30 سال باشد، شرط درست خواهد بود و در غیر اینصورت فرد شرایط سنی ثبت نام را دارا نیست؛ سپس باید چک کنیم که آیا ثبت نام کننده مرد است یا زن.


زمانی که دو یا چند RadioButton را کنار هم می گذارید، کاربر فقط قادر است یکی از آن دو را انتخاب کند. یعنی کاربر نمی تواند هم مرد را انتخاب کند و هم زن . ما از این قابلیت RadioButton ها استفاده می کنیم تا تشخیص دهیم که کاربر زن است یا مرد. با استفاده از ویژگی Checked بررسی می کنیم که آیا فرد مرد را انتخاب کرده است یا زن. در شرط اول بررسی کردیم که rdb_man انتخاب شده است یا خیر مسلم است که اگر شرط درست باشد دیگر شرطها اجرا نخواهند شد و در صورتی که هیچکدام را انتخاب نکرده باشد، دستور درون else اجرا نخواهد شد.
*نکته: در استفاده از دستورات if تو در تو هيچ محدوديتی نيست. البته بايد دقت كنيد كه هر چه تعـداد if هـای تو در تو در برنامـه بيـشتر باشد، درك آن مشكلتر می شود. بنابراين سعی كنيد تا جايی كه ميتوانيد تعداد if های تو در تو را در برنامه كم كنيد.

آرایه ها

يكي از عمومي ترين نيازها در برنامه نويسي قابليت نگهداري ليستي از اطلاعات مشابه و يا مرتبط بـه هـم اسـت. بـراي ايـن مـورد بايستي از آرايه ها استفاده كنيد.
آرايه ها، ليستي از متغير ها مي باشند كه همه از يك نوع هستند. براي مثال ممكن اسـت بخواهيـد سن تمامي دوستان خود را در يك آرايه از اعداد صحيح و يا نام تمامي آنها را در يك آرايه از رشته ها قرار دهيد.

هر خانه از آرایه یک اندیس منحصر به فرد دارد، این اندیسها از 0 شروع می شوند. بعنوان مثال اگر کلمه MajidOnline را یک آرایه از نوع کاراکتری در نظر بگیریم، این آرایه دارای 10 عضو است. یعنی اندیس کارکتر M صفر است و اندیس کاراکتر 9 ، e است. در نتیجه می شود به تک تک عناصر این آرایه از طریق این اندیسها دسترسی داشت.

نحوه تعریف آرایه :
فرض کنید می خواهیم یک آرایه از نوع string تعریف کنیم که اسامی را نگه می دارد.
 
string[] strName = new string[10];
 
اکنون یک آرایه بطول 10 از نوع string داریم. حالا اگر بخواهیم به هر کدام از خانه های این آرایه مقدار بدهیم چند راه وجود دارد ولی ما فقط به یکی از این راهها اکتفا می کنیم. برای مقدار دادن به هر خانه بصورت زیر عمل می کنیم:
strName[0] = “Mostafa”;
.
.
.
strName[9] = “Majid”;

امتحان کنید 4 (استفاده از آرایه ها) : 

یک پروژه جدید بسازید و یک کنترل ListBox و یک Button روی فرم قرار دهید. ویژگی نام ListBox را به lst_nameArray تغییر دهید. رخ داد دکمه را بسازید و درون آن کدهای زیر را اضافه کنید.
string[] strName = new string[3];
 
strName[0] = " MajidOnline ";
strName[1] = "C#";
strName[2] = "Array";

lst_nameArray.Items.Add(strName[0]);
lst_nameArray.Items.Add(strName[1]);
lst_nameArray.Items.Add(strName[2]);
 
برنامه را اجرا کنید و روی دکمه کلیک کنید. مشاهده می کنید که با هر بار کلیک تمام نام های که در آرایه هستند به لیست اضافه می شوند.

ListBox چگونه کار می کند؟
ListBox یکی از کنترل های پر کاربرد در برنامه های ویندوزی است. این کنترل درون خودش دارای نوعی از آرایه است (collection بعدا در مورد این نوع آرایه صحبت خواهیم کرد) ، اگر به پنجره Properties بروید می بینید که یک ویژگی به نام Items وجود دارد. اگر روی آن کلیک کنید یک صفحه نمایش داده می شود، در این صفحه یک لیست وجود دارد. هر سطر از این لیست یک خانه از این آرایه است. هر چیزی که در این لیست بنویسید روی listbox نمایش داده می شود. اما ما نیاز داریم که در محیط کد به این لیست دسترسی داشته باشیم به این منظور مثل کد بالا عمل می کنیم.
ابتدا یک آرایه از نوع string ساختیم و به خانه های آن مقدار دهی کردیم، سپس باید این اسامی را به lst_nameArray اضافه می کردیم. به این منظور از متد Add() آرایه items استفاده می کنیم. با استفاده از این متد می توانیم به انتهای items یک سطر اضافه کنیم، همانطور که دیدید این متد یک ورودی دارد که ما عناصر درون آرایه خودمان را به آن پاس دادیم.

حلقه ها

مثال قبلی را در نظر بگیرید، اگر این لیست یک لیست 100 تایی بود و ما باید این لیست را در listbox اضافه می کردیم، آیا این کار درستی بود که به روش فوق عمل کنیم و برای هر سطر یک خط کد بنویسیم؟ مسلما خیر!!
در اینجا باید از حلقه استفاده کنیم. هر زمان در برنامه نیاز داشته باشیم که یک سری دستور را بصورت متوالی تکرار کنیم باید از حلقه ها استفاده کنیم. انواع حلقه ها:

حلقه for: اين حلقه  معمولا به تعداد مرتبه مشخصي اجرا مي شود (براي مثال، دقيقا 10 بار).
حلقه foreach: از این حلقه معمولا برای آرایه ها استفاده می شود ( تعداد تکرار این حلقه از طول آرایه بیشتر نخواهد بود)
حلقه while: اين حلقه معمولا تا هنگامي كه نتيجه يك شرط درست شود ادامه پيدا مي كنند.
حلقه do-while: عملكرد اين حلقه نيز همانند حلقه while است، با اين تفـاوت كـه شـرط در حلقـه while در ابتدا بررسي مي شود ولي در اين حلقه، شرط در انتها بررسي ميشود.
حلقه for

 ابتدا پر کاربردترین حلقه یعنی حلقه for را بررسی می کنیم.
          قسمت 3        قسمت 2          قسمت 1
for(افزایش شمارنده شرط خاتمه حلقه ; تعریف شمارنده)
{
          کدهای درون بدنه حلقه
}

امتحان کنید 5 (حلقه for):

برنامه قبلی را باز کنید و کد درون آن را بصورت زیر تغییر دهید.
string[] strName = new string[3];
 
strName[0] = "MajidOnline";
strName[1] = "C#";
strName[2] = "Array";
 
for (int i = 0; i < strName.Length; i++)
{
       lst_nameArray.Items.Add(strName[i]);
}
 
حلقه for چگونه عمل می کند؟
قسمت تعریف آرایه که تغییری نکرد . اما حلقهfor چگونه عمل می کند؟ هدف ما از استفاده حلقه ها ساده تر و سریعتر کردن کد نویسی است. اما همیشه تعداد تکرار حلقه ها یکسان نیست، ممکن است حلقه ها بی نهایت بار اجرا شوند و حتی ممکن است یکبار هم اجرا نشوند. اینکه حلقه چند بار باید اجرا شود بسته به مسئله متفاوت است اما اینکه چگونه تعداد تکرار را کنترل کنیم خود یک مساله است. در اینجا با استفاده از یک شمارنده تعداد تکرار را کنترل می کنیم. به این صورت که در قسمت اول حلقه یک متغییر عددی تعریف می کنیم و در هر بار تکرار حلقه در بخش سوم حلقه آن را افزایش می دهیم، در هر بار تکرار حلقه، در قسمت دوم چک می کنیم که آیا شمارنده به تعداد مورد انتظار رسیده است یا خیر؟ در نتیجه قسمت اول حلقه for تنها فقط یکبار اجرا می شود ولی قسمت دوم و سوم به تعداد حلقه تکرار خواهند شد.
در این مثال تعداد تکرار حلقه به تعداد طول آرایه است. با استفاده از متد length آرایه ها می توان طول آرایه را بدست آورد. این حلقه تا زمانی که شمارنده اش کوچکتر از طول آرایه strName باشد ادامه پیدا می کند که در این مثال 3 بار است.
 

حلقه foreach:

در استفاده روزمره از حلقه for در برنامه ها، كمتر از اين حلقه به نحوي كـه شـرح داده شد استفاده مـي شـود. بـه علـت نحـوه كاركردي كه چارچوب NET. دارد، معمولا در برنامه ها با نوع خاصي از اين حلقه كه foreach ناميده مي شـود بيـشتر كـار خواهيم كرد. در برنامه ها عموما هنگامي از يك حلقه استفاده مي كنيد كه مجموعه اي از اشيا را در اختيار داشته باشـيد و بخواهيـد بـين اعضاي آن جا به جا شويد، كه اين مجموعه هم اغلب به صورت يك آرايه است. براي مثال ممكن است بخواهيد بين تمـام فايلهـاي درون يك فولدر بگرديد و فايلي را پيدا كنيد كه اندازه آن بيش از حد مجاز است. هنگامي كه از چارچوب NET. بخواهيد كه ليست تمام فايلها را به شما برگرداند، يك آرايه از اشيا را دريافت خواهيد كرد كه هر كدام از اعضاي آن نشان دهنده ي يك فايل اسـت. با این حلقه در جلسات بعدی هنگام ساخت بازی کار خواهیم کرد.

حلقه while

حلقه while بسیار پر کار برد است. از حلقه while زمانی استفاده می کنیم که تعداد تکرار حلقه مشخص نباشد. این حلقه تا زمانی اجرا می شود که شرط روبروی آن درست باشد.
نحوه تعریف حلقه while:
 
While(عبارت شرطی)
{
          _____________
          _____________
          _____________
}

امتحان کنید 6 (حلقه While)

می خواهیم برنامه ای بنویسیم که یک جمله و یک کارکتر از کاربر می گیرد و در جمله وارد شده به دنبال کارکتر وارد شده می گردد و اگر کارکتر در جمله باشد محل اولین جایی که کارکتر قرار دارد را نمایش می دهد. یک پروژه جدید باز کنید و در فرم آن دو تا TextBox و یک Button قرار دهید سپس کد زیر را در رخداد Button وارد کنید:
 
char ch = Convert.ToChar(txt_char.Text);
int i = 0;
while (i < txt_statment.Text.Length)
{
       if (txt_statment.Text[i] == ch)
       {
             MessageBox.Show((i + 1).ToString());
             break;
      }
      i++;
}

حلقه while چگونه کار می کند؟

با استفاده از Convert.ToChar متن داخل txt_char را به کاراکتر تبدیل کردیم . سپس یک شمارنده تعریف کردیم چون حلقه while مثل حلقه for شمارنده ندارد و خودمان باید بیرون از حلقه تعریفش کنیم. در شرط حلقه گفتیم اگر هنوز به انتهای جمله نرسیدیم کار را ادامه بده. برای اینکه ببینیم این کاراکتر در این جمله وجود دارد یا خیر، باید تک تک کاراکترهای جمله را با کارکتر ورودی کاربر مقایسه کنیم. همانطور که قبلا گفتیم هر جمله یک آرایه از کاراکترها است پس ویژگی Text کنترل TextBox هم یک آرایه است و می توان مثل یک آرایه با آن کار کرد و با استفاده از اندیس هر خانه اش به کاراکترهای آن دسترسی داشت. با استفاده از شمارنده i در بین کاراکترهای جمله به جلو می رویم و چک می کنیم که آیا با کاراکتر وارد شده یکی است یا خیر؟ اگر یکی نباشد حلقه به کار خود ادامه می دهد و i را یک واحد افزایش می دهد و چک می کند که به پایان جمله رسیده است یا نه. ولی اگر کاراکتر وارد شده با این کارکتر از جمله باشد محل قرار گیری آن را چاپ می کند.
چرا i را با یک جمع کردیم سپس چاپ کردیم؟ زیرا آرایه ها از 0 شروع می شوند ولی ما شمارش را از یک شروع می کنیم. حالا که کاراکتر پیدا شد باید از حلقه خارج شویم، با استفاده از دستور break می توانید حلقه ها رو متوقف کنید با اجرای این دستور ادامه حلقه اجرا نمی شود و برنامه از بیرون حلقه ادامه پیدا می کند.

برنامه را اجرا کنید و بجای یک کاراکتر یک جمله در محل ورود کاراکتر وارد کنید، مشاهده می کنید که برنامه خطا می گیرد. حالا به قسمت طراحی برگردید و روی TextBox جمله کلیک کنید و ویژگی Multiline آن را پیدا کنید و آن را به True تغییر دهید، اینکار باعث می شود که کاربر بتواند هر چند نوشته که خواست وارد کند.. اما مشکل جمله وارد کردن کاربر در TextBox کاراکتر حل نشده، ما نباید به کاربر اجازه دهیم بیشتر از یک کاراکتر وارد کند پس TextBox کارکتر را انتخاب کنید و ویژگی Maxlength آن را مساوی 1 قرار بدید حالا دیگر کاربر نمی تواند بیشتر از یک کاراکتر وارد کند. دوباره برنامه رو اجرا کنید و امتحان کنید.

 

حلقه do-while:

این حلقه همان حلقه while است با این تفاوت که شرط در آخر حلقه اجرا می شود به این معنی که این حلقه حداقل یکبار اجرا می شود، زیرا قبل از بررسی کردن شرط، بدنه حلقه اجرا می شود.
Do
{
          ____________
          ____________
          ____________

}while(عبارت شرطی)

برای این جلسه به اندازه کافی کار کردیم، فقط برای حلقه do-while مثال حل نکردیم که شما بعنوان تمرین اینکار را انجام خواهید داد. تا اینجا تقریبا هر چیزی که برای مقدمات کار لازم داشتیم یادگرفتید، در جلسه بعد کمی با کنترل های ویندوزی بیشتر کار می کنیم و بعد از آن به امید خدا به پروژه بازی خواهیم رسید و کار اصلی رو ادامه میدهیم.

مصطفی مدرک کارشناسی نرم افزار دارد و از برنامه نویسان شرکت آرتیمان استودیو است. از سال 86 برنامه نویسی با زبان سی شارپ را آغاز کرده و در حوزه توسعه وب با تکنولوژی دات نت بسیار مسلط است. وی هم اکنون در حال توسعه اپلیکیشن های موبایل از طریق پلتفرم زامارین است.

نظرات و سوالات کاربران

ارسال پاسخ poorya
poorya
شنبه ۱۳ آذر ۱۳۹۵ ۱۸:۰۹
سلام به همه
اقا این مثال while امتحان کنید 6 چقدر سخت بود 2 ساعت طول کشید تا فهمیدم
ولی اموزش ها عالی ....
دستتون درد نکنه استاد درخشان و خسته نباشید.
ارسال پاسخ حمید
حمید
چهارشنبه ۲۵ فروردین ۱۳۹۵ ۲۲:۲۸
سلام:
من میخوام برنامه ای بنویسم که 2 عدد را در 2 ( textbox ) وارد کنیم حاصل جمع آن را در یک (textbox ) دیگراتوماتوار نمایش داده شود. یعنی بدون اینکه یک button را کلیک کرد.
لطفا در نوشتن کد نویسی این برنامه به من کمک کنید.
با تشکر.
ارسال پاسخ goo99p
goo99p
چهارشنبه ۲۵ شهریور ۱۳۹۴ ۰۹:۴۰

ممنون ادامه بدید...

ارسال پاسخ مصطفی درخشان
مصطفی درخشان
شنبه ۱۴ شهریور ۱۳۹۴ ۱۱:۵۸

دوستی که پرسیدند که ادامش Unity است یا Visual studio ؟ باید بگم این دوره با VS کار می کنیم اما می دونید که VS محیط توسعه بازی نیست و نمیشه با اون بازی حرفی ساخت اما همین که دوستان برنامه نویسی به زبان #C رو یاد بگیرند، می تونن برنامه نویسی Unity رو شروع کنند . البته سعی ما بر اینکه، انشاالله به سمت Unity بریم، چون کمبود این قبیل مطالب به زبان فارسی کاملا حس میشه . اما در این دوره فعلا VS رو کار می کنیم .

ارسال پاسخ مصطفی درخشان
مصطفی درخشان
شنبه ۱۴ شهریور ۱۳۹۴ ۱۱:۴۹

ممنون که نظراتتون رو با ما درمیون گذاشتید ، حتما رسیدگی میشه . اما در مورد مبحث کلاس ، نظر من اینکه برای کسی که در مورد برنامه نویسی چیزی نمی دونه ، کلاس یک مبحث پیچیده است و توضیح دادنش کار اشتباهیه . مثلا زمانی که رانندگی یاد می گیری ، نمی دونی که چرا باید کلاجو بگیری وبعد دنده رو عوض کنی ولی می دونی که اینکار باید انجام بشه و به مرور زمان علت این کار رو می فهمید. در مبحث تبدیل هم که شما لطف کرید و اشاره کردید، به همین دلیل توضیح بیشتر داده نشده و فقط نحوه استفاده گقته شده. و بطور کلی به دلایل زیر از توضیح مطالب پیشرفته تر خود داری می کنم :
1 - ساده تر شدن موضوع مورد بحث و درگیر نکردن ذهن خواننده به مطالب دیگر.
2 - کسی که می خواد برنامه نویسی یاد بگیره باید بتونه تحقیق کنه . منظورم اینکه باید یاد بگیره سر نخ ها رو دنبال کنه و جواب رو پیدا کنه.
3 - این یه آموزش مجازیه و امکان توضیح تمام مطالب بصورت کامل وجود نداره . چون مخاطبین فقط از یک قشر خاص با یک میزان از دانش نیستند و توضیح بیشتر دیگران رو آزار می ده.
در مورد اینکه ما گفتیم افراد مبتدی هم یاد می گیرند. بله گفتیم هنوز هم بر همین باوریم ولی کسایی مشتاق باشن و تلاش کنند. امیدوارم که توضیحات من شما دوست عزیز رو قانع کرده باشه.

ارسال پاسخ MEHRAD77
MEHRAD77
چهارشنبه ۱۱ شهریور ۱۳۹۴ ۲۳:۲۴
در پاسخ به دیدگاه علی ارسال شده در چهارشنبه ۱۱ شهریور ۱۳۹۴ ۱۶:۴۰

به نظرم توضیحاتتون درباره متدهای Parse و Tolnt خیلی کم و مبهم بود.مثلا اینجا:
" استفاده از متد ToInt کلاس، Convert دقیقا به همان روش بالا."
برای کسی که مبتدی باشد قطعا مفهوم کلاس گنگه که قبلا هم بهش اشاره ای نکرده بودید و خواهشا کامل توضیح بدین نه فقط اینکه مثل بالا استفاده میشه.بگین فرقشون چیه؟
مفاهیم ساده ای مثل if که من عمریه میدونم تو اینجا از همون اول با مثال های تو در تو بیان شده بود و من سرم درد گرفت.
شما اون اول گفتین به زبون ساده واسه یه فرد کاملا مبتدی توضیح میدین ولی کم کم داره جوری میشه که چون مفاهیم ساده اند تصور میکنید همه از قبل میدونند و بدون درس دادن جمع و تفریق دارین میرین سراغ حل معادله

درضمن ممنون بابت این وقتی که میذارید و پست هاتون اینقدر سریع منتشر میشه.

ولی خوب برای منی که اینها رو میدونم از لحاظی خوبه که سریع ادامه میدهند :)
ولی خوب قبول دارم بهتر بود مبتدیانه توظیح میدادی اما بازم دستتون درد نکنه :)

ارسال پاسخ MEHRAD77
MEHRAD77
چهارشنبه ۱۱ شهریور ۱۳۹۴ ۲۳:۲۲

خیلی خوب وقعا عالی میشه اگه این آموزش ها رو تا ته ادامه بدید :)
فقط یه سوال داشتم. ادامش با یونیتی هستش؟ یا تو وی اس میسازیم؟

ارسال پاسخ علی
علی
چهارشنبه ۱۱ شهریور ۱۳۹۴ ۱۶:۴۰

به نظرم توضیحاتتون درباره متدهای Parse و Tolnt خیلی کم و مبهم بود.مثلا اینجا:
" استفاده از متد ToInt کلاس، Convert دقیقا به همان روش بالا."
برای کسی که مبتدی باشد قطعا مفهوم کلاس گنگه که قبلا هم بهش اشاره ای نکرده بودید و خواهشا کامل توضیح بدین نه فقط اینکه مثل بالا استفاده میشه.بگین فرقشون چیه؟
مفاهیم ساده ای مثل if که من عمریه میدونم تو اینجا از همون اول با مثال های تو در تو بیان شده بود و من سرم درد گرفت.
شما اون اول گفتین به زبون ساده واسه یه فرد کاملا مبتدی توضیح میدین ولی کم کم داره جوری میشه که چون مفاهیم ساده اند تصور میکنید همه از قبل میدونند و بدون درس دادن جمع و تفریق دارین میرین سراغ حل معادله

درضمن ممنون بابت این وقتی که میذارید و پست هاتون اینقدر سریع منتشر میشه.