سورس استفاده از فانکشن
#1
بسم الله
دوستان برایتان یه سورس ساختم که کار با فنکشن ها را در کانستراکت یاد بگیرید
تمام توضیحات تکمیلی در خود سورس داده شده ولی خب باز هم اینجا هم بد نیست بگوییم ...
دوستان یک معلم را در نظر بگیرید که به دانش اموزانش نوشتن حرف "الف" را یاد داده است . آن دانش آموزان می توانند حرف "الف" را بنویسند . ولی آنها که یک سره این کار را نمی کننده. برای اینکه دانش آموزان حرف "الف" را بنویسند معلم باید به آنها بگوید که حرف "الف" را بنویسید و سپس آنها شروع به نوشتن حرف الف می کنند و وقتی تمام می شود دانش آموزان دست از کار می کشند ...
حالا معلم می آید و به بچه ها یاد می دهد که حرف "الف" را با رنگ های متفاوت تری هم بنویسند ...
معلم باید به بچه ها بگوید با چه رنگی بنویسند و اگر نگویند با رنگ سیاه می  نویسند ...
حالا معلم می گوید  :
حرف "الف" را بنویسید  = "الف"
حرف "الف" را با رنگ قرمز بنویسید = "الف"
...

اما این داستان چه ربطی به فانکشن ها داشت ؟؟؟
خب ما در داستان چه چیز هایی داشتیم ؟؟؟
معلم
دانش آموزان
حرف "الف"
رنگ ها
خب ما در فانکشن ها چی داریم ؟؟؟
یک برنامه نویس
کامپیوتر
کار هایی که ان فانکشن انجام می دهد
پارا متر ها
خب اگر بخواهیم این داستان و فانکشن را با هم جمع کنیم همچین چیزی می شود (که کاملا درست است):
یک برنامه نویس = معلم
کامپیوتر (همان بازی یا نرم افزار) = دانش آموزان
کار هایی که آن فانکشن انجام می دهند = نوشتن حرف "الف"
پارامتر ها = رنگ ها

شمابه عنوان یک برنامه نویس به کامپیوتر می گویید که مثلا یک اسپرایت را بزرگ یا کوچک کند ...
خب این کار را در یک فانکشن قرار می دهیم و می گوییم بر اساس مقدار درون این پارامتر اندازه اسپرایت را بزرگ یا کوچیک کن !

(سوال : پارامتر چیست ؟   جواب : پارامتر مقداری است که می تواند Boolean(همان true و false خودمان !) یا عددی و یا متنی باشد (در واقع نوعی متغیر است که فقط در یک فانکشن از آن استفاده می شود) که در فانکشن ها استفاده می شود و اعمال و مقادیری که یک فانکشن تقییر می دهد را آنها کنترل می کنند. مثلا می گویی ای فانکشن ، مقدار سکه رو برابر مقدار پارامتر 1 کن!)

خب بعد می توانید آن فانکشن را هر جایی که دلتان خواست هر مقداری که دلتان خواست صدا بزنید و آن کار هایی که گفتید را برایتان انجام می دهد

فانکشن ها برای جلو گیری از کدنویسی اضافه و بالا تر رفتن سرعت برنامه نویسی استفاده می شوند و خییلی مهم اند ...

می دونم که الان همتون گیج و ویج شدید ولی سورسو که ببینید دوهزاریتون میوفته ....

دانلود سورس 174 کیلوبایت
 

 

 
[تصویر:  default-yellow.svg]
غایب
  پاسخ


#2
بسیار عالی ، فقط اساس اینطوریه . سورس هم 174 کیلوبایت هست . اصلاح کنید ، داشتم به خاطر حجمش منصرف میشدم
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط: M.gh
#3
ممنون از یادآوری

اونم درستش کردم
[تصویر:  default-yellow.svg]
غایب
  پاسخ


 سپاس شده توسط: tairon
#4
یه سوال . این فانکشن دقیقا به چه درد میخوره . ما میتونم اینکارارو مستقیما انجام بدیم . مثلا تو سورس خود کانستراکت در چت روم ، نوشته مثلا متن connecting رو به تابع بده (فانکشن فک کنم فارسیش تابع بشه) و بعد که چیزی به تابع فرستاده شد ، set text بشه به پارامتر تابع . خب ما خیلی راحت تر میتونستیم بگیم هروقت فلان اتفاق افتاد جای ارسال پارامتر به تابع ، مستقیم تکست رو متنش رو تغییر بده !! 
اینطوریه یا من اشتباه میکنم ؟
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط: oak ، tairon
#5
(1399/1/2، 09:57 عصر)محمد 82 نوشته است:  

تابع در واقع برای کوتاه شدن کد هست. شما یک پروسه ای مثلاً مثل ارسال فایل رو که لازمه چندین جا به کار ببری رو در قالب یک تابع تعریف میکنی تا هر وقت لازم بود صداش (Call) کنی و باعث بشه کدهات کوتاه بشه.
غایب
  پاسخ


 سپاس شده توسط: shazde ، tairon
#6
ببخشید اما سخت توضیح میدی. الان تو مثالی که گفتم میشه فرقش رو بگید ؟
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط: tairon
#7
(1399/1/2، 09:57 عصر)محمد 82' نوشته است:
یه سوال . این فانکشن دقیقا به چه درد میخوره . ما میتونم اینکارارو مستقیما انجام بدیم . مثلا تو سورس خود کانستراکت در چت روم ، نوشته مثلا متن connecting رو به تابع بده (فانکشن فک کنم فارسیش تابع بشه) و بعد که چیزی به تابع فرستاده شد ، set text بشه به پارامتر تابع . خب ما خیلی راحت تر میتونستیم بگیم هروقت فلان اتفاق افتاد جای ارسال پارامتر به تابع ، مستقیم تکست رو متنش رو تغییر بده !! 
اینطوریه یا من اشتباه میکنم ؟


 

محمد جان
منم اولش همین فکرو می کردم
توی دریانوردان در قسمت فروشگاهش به چیزی برخوردم که فقط کارش فانکشن بود
ما نیاز داشتیم هروقت آیتمی خرید می شد اطلاعات به هاست ارسال بشه
ولی خب چون من داشتم برای هر کاربر یه دیتابیس جدا بصورت رمز نگاری شده می ساختم باید اکشن های زیادی رو می نوشتم تا کسی نتونه بازیو هک کنه (نمیشه همچین چیزی گفت  ولی خواستم درصد احتمال هک شدنش کم تر بشه ...) و تیبل های آسیب پذیر کم تر بشه برای همین کار سخت بود
علاوه بر اون کار های دیگه ای هم مثل ذخیره شدن و حافظه و اطلاعات حساب و اینکه اگر آنلاین نبود در حافظه ذخیره بشه تا هروقت آنلاین شد براش بفرسته و از این کارا تقریبا 20 تا اکشن میشد ...
بعد خب من مجبور بودم این رو برای همه آیتم ها بزنم ...
ولی چون آیتم ها متفاوت بود مجبور هی آبجکتا و متغیرا رو عوض کنم که رفتم سراغ فانکشن و اینطوری کاری که قبلا دو روز وقتمو گرفته بود رو راحت توی 2 ساعت انجام دادمش
تازه یه باگی هم توی اون اکشن ها بود ....
اگر من به همون روش قبلی پیش می رفتم باید 20 بار اون کد ها رو اصلاح می کردم ...
ولی با فانکشن یه بار اصلاح کردم و برای همه 20 تا آیتم درست کار کرد ...
به هر حال بازم تابع چیزیه که توی برنامه نویسی درست (همون جمله ای که توی امضام هست) نمیشه ازش گذشت
کل زبان های C,++C,C# , Java Script به همین تابع ها (در زبان Java Script بهش فانکشن میگویند ولی در زبان سی شارپ بهش متد می گن) وابسته اند...
حتی در زبان Pascal هم که از قدیمیای برنامه نویسی هست هم همین فانکشن ها نصف کارارو انجام می دادن ...
به هر حال بازم ممنون که همچین سوالی کردی

 

 
[تصویر:  default-yellow.svg]
غایب
  پاسخ


 سپاس شده توسط: tairon ، shazde ، محمد 82 ، M.gh
#8
ممنون از توضیحاتت . میخواستم خواهش کنم ازتون (هرکی میتونه) یه اموزش از امنیت بازی بسازه . الان که پیامتون رو خوندم احساس کردم همه دارن بازی هاشون رو امن میکنن درحالیکه واسه من این قضیه مهم نیست . و الان که مهم شده هیچی از سرور و هاست و زبان های برنامه نویسی مثل php بلد نیستم . 
میخواستم خواهش کنم از دوستان که یه اموزش از امن کردن بازی بسازید . دوست عزیزمون Master Badfar توی اون یکی تاپیک یه چیزی درمورد امن کردن و RNG گفتن اما واقعا چیزی متوجه نشدم به دلیلی که گفتم .
به همین دلیل میخواستم عاجزانه از دوستان این خواهشو کنم که یکی واقعا بهش عمل کنه . نه صرفا به یک قول ختم بشه .
استودیو بازیسازی ایروید
جدید ترین ها : شهرزاد ، دربند;1357 و ATOM
[تصویر:  ads.gif]
  پاسخ


 سپاس شده توسط: tairon
#9
شمت تاپیک درخواست کد php رو نگاه کن.
اونجا آقای master badfar یه کد php گذاشتن برای رمز نگاری اطلاعات که امنیت رو خیلی بالا می بره.
  پاسخ


 سپاس شده توسط: oak ، tairon
#10
(1399/1/3، 02:36 صبح)محمد 82 نوشته است:  



راستش به نظر من امنیت بازی یا پروژه ای که با کانستراکت ساخته میشه باید از دو منظر یعنی سمت کانستراکت و سمت سرور بهینه بشه. در سمت کانستراکت میتونی اقداماتی برای جلوگیری از هک شدن متغیرها و اینجور مسائل داشته باشی و در سمت سرور هم به نظر من مهم ترین قسمت امنیت در سمت دیتابیس هست. ساده ترین کاری که میتونی برای دیتابیست بکنی اینه که تمامی رکوردها رو رمزنگاری کنی با یک کلید نسبتاً طویل و مناسب و تصادفی. در ضمن باید سعی کنی جلوی ورود کاراکترهای غیرمجازی که ممکنه به عنوان کوئری SQL تلقی بشن رو بگیری البته که ورژن های جدید MySQL خودشون تا حدودی این کارو انجام میدن. به غیر از اون اگر توی کد php خودت از سشن ها استفاده میکنی حتماً نکات امنیتی راجع به اونها رو در نظر بگیر. سعی کن یک سیستم هندلینگ ترافیک طراحی کنی که زمانی که ترافیک خیلی زیاد شده بود جلوی ارسال ریکوئست گرفته بشه و سرور داون نشه   یا حتی این سیستم میتونه بهت گزارش بده که در چه زمانهایی ترافیک خیلی زیاده و عمده ترافیک از کدوم شهر یا کشور ارسال میشه و حتی از چه آی پی هایی.. میتونی فایروال نصب کنی که جلوی حملاتی مثل DDos یا Dos رو بگیری البته که بسیاری از شرکت های هاستینگ ظاهراً خودشون این کارو میکنن. فرض کن اگر قراره فایلی رو توی یکی از دایرکتوری های هاستت آپلود کنی با استفاده از فایل .htaccess هاستت جلوی ایندکس شدن فایلهای دایرکتوری رو بگیری که کاربرها قادر نباشن فایلها رو ببینن. این ساده ترین کاریه که میتونی انجام بدی. 
در هر صورت هر چقدر هم که امنیت کارت رو ارتقاء بدی بازم امنیت هیچ وقت صد درصد نیست.
برای همین باید سعی کنی در حد توان خودت سرور و پروژه ات رو مصون کنی. 
غایب
  پاسخ


 سپاس شده توسط: tairon


موضوع‌های مشابه…
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سورس بازی کامل بمبرمن (رایگان ) mohsen_nasri 0 2,415 1399/10/30، 06:28 عصر
آخرین ارسال: mohsen_nasri
  سورس استفاده از دیدئو در کانستراکت rezamms 8 5,660 1399/7/8، 08:58 صبح
آخرین ارسال: rezamms
  سورس ایجاد افکت تایپ rezamms 2 3,006 1399/6/21، 12:40 عصر
آخرین ارسال: M.gh
  سورس ساخت خدم mega_24 5 5,214 1399/3/12، 03:25 عصر
آخرین ارسال: M.gh
  سورسِ تنظیماتِ پارتیکلز shazde 1 2,498 1398/12/28، 07:10 عصر
آخرین ارسال: MohammadHadi

پرش به انجمن: