در ساخت برنامه های مختلف با زبان های مختلف ، یکی از چیزهایی که نظر کاربران را جلب میکند اعلان ها هستند که باعث یادآوری انجام کاری در برنامه ، اعلام یک اتفاق و … میشوند.
در این مقاله میخواهیم باهم کتابخانه ای را برای این کار یادبگیریم و از آن استفاده کنیم .
نصب :
قبل از ادامه بررسی کنید که پایتون را نصب داشته باشید.
به cmd خود بروید و دستور زیر را وارد کنید برای نصب کتابخانه :
pip install notifypy
کد :
یک فایل پایتون ایجاد کنید و کتابخانه را به شکل زیر ایمپورت کنید :
from notifypy import Notify
برای ارسال اعلان از کلاس Notify استفاده خواهیم کرد .
یک متغیر را برابر با Notify قرار دهید که یک نسخه از آن کلس برای شما ساخته شود .
بعد از آن ، مشخصات اعلان را تعریف میکنیم.
title عنوان اعلان است.
message پیام عنوان است.
icon آیکون برنامه است که باید حتما فرمت .ico باشد.
و بعد به راحتی با استفاده از send اعلان را ارسال میکنیم.
مانند کد زیر :
notification = Notify()
notification.title = "عنوان اعلان"
notification.message = "متن اعلان"
notification.application_name = "نام برنامه"
notification.icon = ""
notification.send()
و درصورت اجرا اعلان با مشخصات برای شما ارسال میشود :
در صورت وجود هرگونه سوال یا مشکلی در بخش نظرات با ما در ارتباط باشید .
سی شارپ ، یکی از زبان های محبوب و البته راحت برای طراحی برنامه است و با توجه به آموزش هایی که قبلا در سایت قرار داده ایم ، بعد از بررسی نکات ابتدایی و ساخت بازی مار ، نوبت به ساخت یک برنامه محاسبه معدل میرسد .
برنامه دارای یک صفحه با یک جعبه عدد خواهد بود و به ترتیب بعد از پر کردن هر کدام از جعبه ها ، دکمه ای برای افزودن جعبه عدد جدید باز شود تا کاربر بتواند از نمرات خود میانگین بگیرد . (حداکثر تعداد نمرات 5 است)
طراحی رابط کاربری:
پنج numericUpDown در صفحه بگذارید . (این جعبه فقط قابلیت انتخاب عدد را دارد)
و دو باتن که نام name و یا نام یکی را add و یکی دیگر را done بگذارید و بعد متن را تغییر دهید .
رندوم یکی از کتابخانه های پرکاربرد و ساده پایتون است که با توجه به نامش برای انتخاب های شانسی و تصادفی در پایتون استفاده میشود .
البته قبل از استفاده ، بهتره بدونید که در اصل هیچ چیز تصادفی در زبان های برنامه نویسی وجود ندارد و با توجه به بعضی اطلاعات یک عدد با فرمول های ریاضی تشکیل میدهند که به ظاهر تصادفی است .
نصب و ایمپورت :
این کتابخانه به طور پیشفرض با پایتون نصب میشود ، اما اگر هنگام ایمپورت به ارور خوردید از دستور pip برای نصب مجدد آن استفاده کنید .
برای ایمپورت کتابخانه خط زیر را به کد خود اضافه کنید.
import random
متد ها و دستور ها :
در لیست زیر دستور های مختلف با کاربردشان نوشته شده است که میتوانید استفاده کنید .
متد random:
تولید یک عدد تصادفی اعشاری بین 0 و 1 :
print(random.random())
متد randint:
تولید یک عدد تصادفی صحیح بین اعداد a و b ( برای مثال عدد a را یک و عدد b را 10 قرار میدهیم ):
number = random.randint(0, 10)
print(number)
مانند متد randint است با این تفاوت که میتوانیم step یا تعداد پرش بین هر عدد را انتخاب کنیم مثلا بگوییم بین 0 و 10 با پرش دو .
b = (random.randrange(0, 10, 2))
print(b)
متد choice:
انتخاب یک گزینه تصادفی از لیست چگونه است ؟
list_test = [1, 2, 3, 4, 5, 6]
print(random.choice(list_test))
list_test2 = ["a", "b", "c", "v", "d", "e"]
print(random.choice(list_test2))
متد choices:
مانند متد بالاست با این تفاوت که میتوانید چند آیتم از یک لیست انتخاب کنید که خودش با یک لیست به شما برگردانده میشود .
k مساوی تعدادی انتخاب شماست و پارامتر اول هم که لیست شماست.
list_test = [1, 2, 3, 4, 5, 6]
print(random.choices(list_test, k=2))
متد sample:
دقیقا کار متد بالا را انجام می دهد . پارامتر اول لیست و پارامتر دوم تعداد انتخابی هست که میخواهیم .
list_test = [1, 2, 3, 4, 5, 6]
print(random.sample(list_test, 3))
متد shuffle:
به صورت تصادفی ترتیب لیست شما را تغییر می دهد .
list_test = [1, 2, 3, 4, 5, 6]
random.shuffle(list_test)
print(list_test)
و این بود متد های مهم و پرکاربرد کتابخانه random ، امیدواریم که از آموزش استفاده کافی را برده باشید !
در ادامه مقاله قبلی ، در این قسمت باهم یک بازی مار ساده را خواهیم ساخت.
این بازی دارای قابلیت های زیر است :
تغییر جهت مار
خوردن سیب ها
اضافه شدن سیب به مار
انیمیشن چرخش مار به چپ و راست و بالا و پایین
برای راحتی کار و یادگیری افراد تازه کار ، در این مقاله از لیست ها ، موقعیت های رندوم و …. استفاده نمیشود و دو سیب بیشتر برای خوردن نداریم .
شروع کار و طراحی رابط کاربری :
برای شروع شئ های زیر را برای بازی به داخل صفحه بیندازید :
یک باتن برای مار – میتوانید backcolor آن را برابر سبز قرار دهید برای زیبایی.
حتما برای اجرای صحیح بازی در پنل تنظیمات دنبال location بگردید و مختصات باتن را بخش پذیر بر 50 قرار دهید . دقت کنید که سایز مار هم باید بخش پذیر بر 50 هم باشد .
دو باتن سیب ، مثل توضیحات بالا به لوکیشن و سایز دقت کنید و رنگ را میتوانید قرمز کنید.
چهار باتن کنترل جهت ، در هرمکان با هررنگی که علاقه دارید قرار دهید .
یک تایمر هم اضافه کنید
مراحل ساخت بازی :
تعریف جهت ها
حرکت در جهت انتخاب شده در زمان تایمر
برخورد با سیب
اضافه شدن سیب به مار
حرکت سیب با مار
انیمیشن چرخیدن سیب با مار (آموزشی ویدیویی در دوره)
حرکت مار :
برای شروع ، یک متغیر به نام direction تعریف کنید . ( از نوع string )
و حالا برات باتن های کنترل مارتون که در تصویر قهوه ای هستند ، روی هرکدام کلیک کنید و متغیر را برابر جهت right, left, up, down کنید .
مانند :
direction = "left";
direction = "right";
direction = "up";
direction = "down";
حالا روی تایمر خود کلیک کنید و interval را به 400 تغییر دهید .
دوبار روی تایمر کلیک کنید تا کد آن برای شما باز شود.
در این قسمت باید کدی بنویسیم که با توجه به جهت انتخاب شده مار حرکت کند ، برای انکار کد زیر را در بخش تایمر پیست کنید :
if (direction == "down")
{
button1.Location = new Point(button1.Location.X, button1.Location.Y + 50);
}
if (direction == "up")
{
button1.Location = new Point(button1.Location.X, button1.Location.Y - 50);
}
if (direction == "right")
{
button1.Location = new Point(button1.Location.X + 50, button1.Location.Y);
}
if (direction == "left")
{
button1.Location = new Point(button1.Location.X - 50, button1.Location.Y);
}
در این کد ، اول جهت بررسی میشود ،
در صورت راست بودن به مقدار x اضافه میشود و چپ بودن کم میشود . همینطور برای y که بالا و پایین است . (حتما باید به علاوه 50 شوند )
عدم خروج مار از صفحه:
قدم بعدی بررسی درون صفحه بودن مار است که مطمئن شویم مار از بازی خارج نشده و اگر خارج شود پیام باخت نشان داده شود و بازی بسته شود.
برای اینکار در ادامه کد تایمر این خطوط را اضافه کنید.
در خط اول با شروط or (یا) بررسی میکنیم که از هرسمت خروج پیدا کرده است یا نه که در صورت خروج تایمر متوقف میشود و یک پیام نمایش داده و برنامه بسته میشود.
اگر اندازه صفحه شما متفاوت است باید اعداد 500 را تغییر دهید.
برخورد با سیب اول و حرکت سیب با مار :
قبل از نوشتن کد برخورد سیب ، اول دقت کنید که باید بعد از خط InitializeComponent دو خط اضافه کنید .
timer1.Start();
button3.Visible = false;
باتن 3 یکی از دو سیبی است که من در صفحه گذاشته ام ، اگر برای شما متفاوت است ، یکی از سیب های خودتان را مخفی کنید .
دوباره به تایمر برگردید و کد زیر را برای برخورد سیب ها بنویسید .
قبل از آن یک متغیر به نام run1 تعریف کنید ، (از نوع int) و آن را برابر 0 قرار دهید .
متغیر run1 سیب خورده شده را مشخص میکند و سیب خورده شده باید پشت مار حرکت کند پس ما میتوانیم با بررسی این متغیر یکسری شروط را اجرا و سیب را جابجا کنیم .
از انجایی که جهت حرکت مار را داریم میتوانیم با استفاده از مختصات مار مکان سیب را قرار دهیم .
کد زیر را در تایمر وارد کنید :
if (run1 == 1)
{
if (direction == "down")
{
button2.Location = new Point(button1.Location.X, button1.Location.Y - 50);
}
if (direction == "up")
{
button2.Location = new Point(button1.Location.X, button1.Location.Y + 50);
}
if (direction == "right")
{
button2.Location = new Point(button1.Location.X - 50, button1.Location.Y);
}
if (direction == "left")
{
button2.Location = new Point(button1.Location.X + 50, button1.Location.Y);
}
}
میتوانید بازی را اجرا و نتیجه را بررسی کنید .
میبینید که سیب به درستی به دنبال مار حرکت میکند . دقت کنید باید بجای button2 نام سیب خودتون رو قرار دهید و جای button1 نام باتن مار.
یک متغیر دیگر به نام run2 تعریف میکنیم و همه کارها را مثل سیب اول انجام میدهیم .
کد زیر را میتوانید به تایمر اضافه کنید.
if (button1.Location == button3.Location)
{
run2 = 1;
}
if (run2 == 1)
{
if (direction == "down")
{
button3.Location = new Point(button2.Location.X, button2.Location.Y - 50);
}
if (direction == "up")
{
button3.Location = new Point(button2.Location.X, button2.Location.Y + 50);
}
if (direction == "right")
{
button3.Location = new Point(button2.Location.X - 50, button2.Location.Y);
}
if (direction == "left")
{
button3.Location = new Point(button2.Location.X + 50, button2.Location.Y);
}
}
button3 سیب دوم شماست و button2 سیب اول
با همین روش میتوانید تعداد بینهایتی سیب برای خودتان قرار بدید ولی این روش ، اصلا روش مناسبی نیست و اتلاف وقت زیادی دارد ، درون دوره سی شارپ با هم بازی مار را به صورت اصولی برنامه نویسی میکنیم که درحال تکمیل است .
کد نهایی:
کد کل برنامه را مشاهده کنید.
namespace snake
{
public partial class Form1 : Form
{
string direction = "right";
int run1 = 0;
int run2 = 0;
public Form1()
{
InitializeComponent();
timer1.Start();
button3.Visible = false;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (direction == "down")
{
button1.Location = new Point(button1.Location.X, button1.Location.Y + 50);
}
if (direction == "up")
{
button1.Location = new Point(button1.Location.X, button1.Location.Y - 50);
}
if (direction == "right")
{
button1.Location = new Point(button1.Location.X + 50, button1.Location.Y);
}
if (direction == "left")
{
button1.Location = new Point(button1.Location.X - 50, button1.Location.Y);
}
if (button1.Location.X < 0 || button1.Location.X > 500 || button1.Location.Y < 0 || button1.Location.Y > 500) {
timer1.Stop();
MessageBox.Show("mordi");
Close();
}
if (button1.Location == button2.Location)
{
run1 = 1;
button3.Visible = true;
}
if (run1 == 1)
{
if (direction == "down")
{
button2.Location = new Point(button1.Location.X, button1.Location.Y - 50);
}
if (direction == "up")
{
button2.Location = new Point(button1.Location.X, button1.Location.Y + 50);
}
if (direction == "right")
{
button2.Location = new Point(button1.Location.X - 50, button1.Location.Y);
}
if (direction == "left")
{
button2.Location = new Point(button1.Location.X + 50, button1.Location.Y);
}
}
if (button1.Location == button3.Location)
{
run2 = 1;
}
if (run2 == 1)
{
if (direction == "down")
{
button3.Location = new Point(button2.Location.X, button2.Location.Y - 50);
}
if (direction == "up")
{
button3.Location = new Point(button2.Location.X, button2.Location.Y + 50);
}
if (direction == "right")
{
button3.Location = new Point(button2.Location.X - 50, button2.Location.Y);
}
if (direction == "left")
{
button3.Location = new Point(button2.Location.X + 50, button2.Location.Y);
}
}
}
private void button4_Click(object sender, EventArgs e)
{
direction = "up";
}
private void button5_Click(object sender, EventArgs e)
{
direction = "left";
}
private void button6_Click(object sender, EventArgs e)
{
direction = "right";
}
private void button7_Click(object sender, EventArgs e)
{
direction = "down";
}
}
}
c# یکی دیگر از زبان های زیر مجموعه زبان مادر سی است و قابلیت های زیادی برای انجام کارهای مختلف مانند نوشتن ربات های مختلف ، بک اند سایت و برنامه های ویندوز استفاده میشود.
اما هدف این مقاله ، صحبت راجب خود زبان c# نیست ، بلکه آموزش استفاده آن در نرم افزار visual studio و طراحی ظاهر برنامه با دات نت .
برای شروع کار نیاز به نصب visual studio داریم .
نصب :
نسخه های مختلفی برای دانلود و نصب وجود دارد :
اگر سیستم مناسبی دارید و مشکلی از لحاظ حجم اینترنت ندارید ، نسخه 2022 را از اینجا دانلود کنید . ( حدود 15 گیگ نصب داخل برنامه برای دات نت و سی شارپ و حجم های اضافه برای قابلیت های بیشتر )
اگر سیستم قدیمی تری دارید و حجم محدودی برای دانلود دارید ، نسخه های پایین تر را از لینک بالا دانلود کنید . (2013 یا 2015) (حدود 3 گیگ بدون نصب داخلی )
بعد از دانلود فایل های زیپ آنها را از حالت فشرده خارج کنید و فایل ستاپ را اجرا کنید و طبق آموزش نصب سایت سافت 98 پیش بروید .
ساخت پروژه جدید:
در نسخه های مختلف ، ممکن است مکان دکمه ی ساخت پروژه متفاوت باشد ، اما همه آنها دارای new project هستند . دکمه را پیدا و روی آن کلیک کنید.
صفحه انتخاب نوع پروژه برای شما باز میشود.
از زبان های برنامه نویسی c# را انتخاب کنید و حالا دنبال دکمه windows form application بگردید و آن را انتخاب کنید و نام پروژه خود را انتخاب کنید و تایید را انجام دهید.
باید صفحه ای مانند صفحه کنار ببینید که از بخش های مختلفی تشکلیل شده است.
toolbar :
در این بخش میتوانید از شئ های مختلف استفاده کنید و آنها را در صفحه خود بیاندازید .
مثل دکمه ها، لیبل ها و ....
form :
صفحه اصلی برنامه شما که چیزی است که به کاربر نمایش داده میشود .
بخش های مورد نیاز اصلی ما این دو هستند که در ادامه با بقیه بخش ها هم آشنا میشویم .
بیاید برای شروع کار یک پروژه ساده بسازیم . یک برنامه که یک بخش برای دریافت نام از کاربر داشته باشد . یک دکمه برای ثبت نام و یک متن ( لیبل) برای نوشتن متن تایید ثبت نام .
ساخت پروژه ساده 1 :
برای شروع ، پنل toolbar را باز کنید و در در بخش سرچ button را تایپ کنید و یا به صورت دستی دنبال آن بگردید.
موس را روی گزینه button ببرید و حالا کلیک چپ موس را نگه داشته و به سمت صفحه برنامه ( form ) حرکت دهید و آن را رها کنید .
دوباره به پنل بروید و ایندفعه label را سرچ و آن را به درون برنامه بیندازید .
و بعد از آن textbox را سرچ و بر روی صفحه بیندازید .
حالا آنها را به شکل زیر ، یا هرشکلی که علاقه دارید مرتب کنید : (برای تغییر اندازه هر شئ برروی آن کلیک و نقطه های مربعی کنار آنها را بکشید )
قدم بعدی تغییر متن دکمه و متن لیبل است .
روی دکمه کلیک کنید ( فقط یکبار )
در سمت راست صفحه پنجره properties را میبینید .
در این بخش یک گزینه به اسم Text وجود دارد که در تصویر هم مشخص است . روی جعبه جلویش که دارای متن button1 است کلیک کنید و متن را به "ثبت نام" تغییر دهید .
مجدد روی لیبل کلیک کنید و ایندفعه متنش را برابر خالی قرار دهید . ( فقط در حالت کلیک روی دکمه متنش باید تغییر کند )
حالا وقت نوشتن کمی کد است . کاری که میخواهیم انجام دهیم به این شکل است که :
وقتی که بر روی دکمه ثبت نام کلیک شد
متنی که کاربر اسمش را وارد کرده گرفته شود ( پیدا کردن اسم کاربر )
بر روی لیبل نوشته شود "ثبت نام با موفقیت انجام شد"
برای انجام این کار ، روی دکمه دوبار کلیک کنید ، صفحه برنامه نویسی برای شما بازی میشود و یک فانکشنی برای شما تعریف شده که درون آن کد مینویسید.
کد زیر را در آن وارد کنید :
label1.Text = "ثبت نام با موفقیت انجام شد";
بالاتر تغییر متن رو از تنظیمات براتون توضیح داده شده بود ، اینجا دقیقا به همان شکل است فقط با کد ، ما متن لیبل یک را به هرچیزی که میخواهیم تغییر میدهیم .
اگر برنامه را با دکمه اجرای سبز بالای صفحه اجرا کنید میتونید نتیجه رو ببینید .
و این هم پروژه اول ما !
ساخت بازی کلیکر ساده :
برویم سراغ یک بازی کلیکر ساده :
نیاز به یک باتن و یک لیبل داریم.
هربار روی باتن کلیک کنیم به تعداد کلیک ها اضافه میشود و متن لیبل تغییر میکند.
یک باتن و یک لیبل به داخل صفحه بیندازید و هرشکلی که میخواید آنها را بچینید.
روی باتن دوبار کلیک کنید تا کد آن برای شما بازشود.
برای شمردن تعداد کلیک ها به یک متغیر نیاز داریم تا تعداد کلیک را در آن ذخیره کنیم .
در اوایل کد بخشی با کد public partial class Form1 : Form وجود دارد .
قبل از بازی شدن { کد زیر را وارد کنید :
int tedad = 0;
حالا به کد باتن بروید و این را اضافه کنید:
tedad++; label1.Text = Convert.ToString(tedad);
در خط اول کد ما یک عدد به متغیر اضافه میکنیم ( تعداد قبلی )
در خط دوم متن لیبل را برابر با تعداد میکنیم . اما متن از نوع رشته است (string) و ما نمیتوانیم یک عدد به آن دهیم پس آن را با دستور Convert.ToString(tedad) تبدیل به متن میکنیم ، جلوتر ، نوع های متغیر ها و روش تبدیل آنها توضیح داده میشود.
انواع متغیر و تبدیل آنها:
در c# و زبان های دیگر چند نوع متغیر اصلی وجود دارد که هرکدام قابلیت های خاص خود را دارند و قابل تبدیل به هم هستند .
int : یک عدد است ، قابلیت های ضرب جمع و غیره را دارد . ;int tedad = 0
string : یک رشته است ، قابلیت های مختلف مربوط به متن ها دارد . ;"string salam = "salam
float : عدد اعشاری است ، همه ی قابلیت های int را دارد .
این سه نوع ، متغیر های اصلی هستند.
حالا برای تبدیلشان چکاری انجام دهیم ، برای مثال میخواهیم یک برنامه بسازیم که دو تا تکست باکس برای دریافت متن داشته باشیم و بعد دو عدد وارد و با کلیک بر روی دکمه آنها را جمع کنیم.
از آنجایی که Text از نوع متن است و نمیتوان آنها را جمع کرد باید اول متن ها را تبدیل به int کنیم و بعد جمعشان کنیم .
برای تبدیل از کانورت استفاده میکنیم :
jam = Convert.ToInt16(textBox1.Text) + Convert.ToInt16(textBox2.Text);
در این کد متن تکست باکس های یک و دو اول تبدیل به عدد و بعد جمع میشوند.
حالا برای قرار دادن آن در یک لیبل باید عدد را به متن تبدیل کنیم.
label1.Text = Convert.ToString(jam);
تایمر:
دوباره به پنل toolbar بروید و timer را سرچ کنید و آن را به صفحه بکشید .
تایمر ، زمان خاصی دارد و هرموقع شروع شود تا زمان توقفش هر مقدار زمانی که برایش تعیین کرده باشید یک کدی را اجرا میکند .
مثلا زمانش را برابر 100 میلی ثانیه قرار میدهیم و میگوییم هربار عدد را به علاوه یک کن.
اگر تایمر را به داخل صفحه انداخته باشید متوجه خواهید شد که چیزی روی صفحه ظاهر نشده بلکه پایین چیزی به اسم timer1 اضافه شده است .
روی آن کلیک کنید. در بخش پراپرتیز میتوانید interval را تغییر دهید که مقدار تایمر است .
حالا روی همان برنامه کلیکر قبلی کار را ادامه میدهیم ، میخواهیم کاری کنیم هر 1 ثانیه به مقدار کلیک ها 10 تا اضافه شود . interval را به 1000 تغییر دهید .
دوبار روی تایمر کلیک کنید، کد تایمر برای شما باز میشود که هرچیزی که در این قسمت قرار دهید هر یک ثانیه اجرا میشود.
کد زیر را برای اضافه کردن 10 تا به کلیک ها و تغییر متن لیبل اضافه کنید :
قبل از اجرای برنامه باید توجه داشته باشید که برای شروع اجرای کار تایمر باید در قسمتی از کد دستور start را فرابخوانید.
بعد از خط InitializeComponent کد زیر را برای شروع تایمر وارد کنید:
timer1.Start();
جمع بندی :
در این مطلب ، نکات مختلفی از سی شارپ ذکر شد ، اگر علاقه مند بودید ، حتما نظرتون رو بنویسید تا دوره سی شارپ ، زودتر منتشر شود و اگر مشکلی در هرکدام از بخش ها داشتید ، ارور یا سوال خود را در بخش نظرات اعلام کنید تا در اسرع وقت پاسخ داده شود.
بله یکی از پیام رسان های محبوب ایرانیست که خیلی از افراد دنبال راهی برای ساخت بات برای آن بودند که متاسفانه برای زبان پایتون همچین چیزی وجود نداشت .
اما حدود یک ماه پیش ، پکیج حرفه ای python_bale_bot منتشر شد که مانند پکیج تلگرام ، قابلیت های بسیاری برای ساخت ربات بله دارد .
در این مقاله ، با پکیج آشنا میشویم و یکسری کارها را بررسی میکنیم.
پیش نیاز ها :
کتابخانه از کد های پیشرفته ای استفاده میکند و به کلاس ها و ... نیاز دارد که باید قبل از آن مقداری پایتون بلد باشید.
نصب :
ما ابتدا برای برنامه نویسی بهتر و راحت تر بازو ها در پایتون، از پکیجی به نام بله بات ، یا نام کامل python-bale-bot آشنا میشویم.
️️ این پکیج به دلیل پشتیبانی آن از asyncio، ایونت های آن ابتدا با async و متد های آن در فانکشن هایی که با async آغاز میشوند، با await شروع میشود.
برای نصب این پکیج به رویه زیر عمل کنید:
در صورتی که پایتون را ندارید، ابتدا آن را از اینجا نصب کنید.
سی ام دی خود را باز کنید و عبارت pip install python-bale-bot را به صورت کامل و بدون نقص وارد نمایید.
به همین راحتی پکیج مورد نیاز شما برای برنامه نویسی بازو های بله، نصب شد.
قدم بعدی نصب یک IDE است. برای برنامه نویسی پایتون نیاز به یک محیط برای *ادیت کردن کد های خود* هستید، محیطی هوشمند و پویا که با داشتن کامل کننده های کد به شما در برنامه نویسی کمک کند.
پیشنهاد ما به شما VSCode (Vusial Studio Code) می باشد.
برای نصب این کد ادیتور در ویندوز به رویه زیر عمل کنید.
وارد [این سایت](https://code.visualstudio.com/) شوید.
برای دانلود نرم افزار در صفحه دنبال گزینه *Download for Windows* را کلیک کنید.
تا دانلود شدن نرم افزار صبر کرده، و بعد از آن نرم افزار را ستاپ کنید.
شروع برنامه نویسی :
یک فایل چدید با پسوند .py ایجاد کنید.
بر روی آن کلیک راست کرده و آن را با *VSCode (Visual Stodio Code)* باز کنید.
ما برای نوشتن یک ربات خام و ابتدایی، در شروع کار، کتابخانه بله را ایمپورت میکنیم.
import bale
حال فایل را با استفاده از پایتون اجرا میکنیم، در صورتی که اروری ملاحضه نکردید یعنی پکیج به صورت کامل نصب شده و مشکلی وجود ندارد. در غیر این صورت و در صورتی که اروری در این بخش دریافت کردید، احتمال دارد پکیج به درستی نصب نشده باشد.
حالا با استفاده از شیء بات (Bot) بخش خام بازو با ایجاد میکنیم و آن را برابر با متغیری دلخواه (برای مثال بات) قرار میدهیم.در این وقت، باید توکن بازو خود را به عنوان اولین و آخرین پارامتر اجباری وارد کنیم.
توکن از ربات بات فادر بله گرفته میشود . @BotFather ، توکن خود را هیچ وقت برای کسی ارسال نکنید !
در اجرای این برنامه تا به اینجای در ظاهر کار اتفاقی رخ نمی دهد. اما فرض کنید میخواهید هنگامی که کاربر پیامی به کاربر داد، بازو جواب وی را با پیامی بدهد.برای این گونه کار ها از ایونت ها استفاده میکنیم.
برای استفاده و تنظیم ایونت ها ما نیاز به متد و context منیجری به نام listen داریم.
️️ این پکیج به دلیل پشتیبانی آن از asyncio، ایونت های آن ابتدا با async و متد های آن در فانکشن هایی که با async آغاز میشوند، با await شروع میشود.
ما در واقع در پارامتر اول دستور listen عنوان کردیم هنگامی که پیام آمد، به فانکشنی به نام when_message کال شود و آبجکت message را به عنوان پارامتر برای آن بفرستد.
برای ریپلای کردن بر روی پیام ارسالی کاربر، از پارامتر داده شده در فانکشن استفاده کرده و از دستور reply آن استفاده میکنیم.
امروزه طراحی رابط کاربری یکی از مهم ترین بخش های برنامه نویسی پایتون است که پکیج های مختلفی برای طراحی آن وجود دارد اما طراحی یوآی کار راحتی نیست و نیاز به تمرین و یادگیری دارد.
حالا اگر شما بخواهید یک برنامه ساده بسازید ، یا یک کد پیچیده دارید اما نیاز به یک رابط کاربری ساده ، easygui به کمک شما می آید . استفاده از آن بسیار راحت و قابلیت هایش محدود .
روش کار :
رابط کاربری ساده (easygui) با استفاده از پکیج tkinter ساخته شده است و قابلیت های مختلفی دارد.
این پکیج نیز مثل تکینتر event based هست و بر اساس هراتفاق کاری را انجام میدهد .
استفاده ها :
ساخت بازی هایی مثل سنگ کاغذ قیچی
ساخت پروژه های ابتدایی و جذاب برای آموزش
دیالوگ های انتخاب و ذخیره فایل
و .....
نصب :
برای نصب پکیج ، وارد cmd خود شوید و دستور زیر را وارد کنید :
اگر بعد از نصب پکیج و تست آن به ارور برخوردید دستور زیر هم وارد کنید در cmd:
pip install tkinter
ایمپورت کتابخانه :
برای استفاده از کتابخانه در فایل های پایتون خود ، کافی است از دستور زیر استفاده کنید :
import easygui
رفع مشکل تار بودن متن ها :
یکی از مشکلات ، تار بودن متن در بعضی سیستم عامل های جدیدتر است . بهتر است برای جلوگیری از این مشکل، قبل از استفاده از خود پکیج، دو خط زیر را اول کد خود قرار دهید:
from ctypes import windll
windll.shcore.SetProcessDpiAwareness(1)
نمایش پیام به کاربر :
برای نمایش پیامی به کاربر ، از دستور زیر استفاده میشود :
easygui.msgbox("1", "2", "3")
عدد 1 : متن پیام
عدد 2 : عنوان پیام
عدد 3: متن دکمه تایید
نمایش لیست انتخاب :
یک لیست به کاربر نشان میدهد تا یکی از آنها را انتخاب کند و متنش را ذخیره کند:
choice = easygui.choicebox("1", "2", 3)
عدد 1 : متن پیام
عدد 2 : عنوان پیام
عدد 3: لیست انتخاب ها : ["ali", "asghar"]
برای بررسی ادامه دستور ها دوره ی ویدیویی را از اینجا ببینید .
حتما شما هم گاهی اوقات به ساخت یک بازی فکر کردید ، مخصوصا اگر خودتون از طرفدارای این رسانه و سرگرمی معروف باشید ، ولی بازی سازی اصلا کار راحتی نیست و نیاز به تجربه زیاد و تیم های بزرگی دارد و ساخت بازی های ساده حتی میتواند گاهی بسیار سخت باشد .
اما اگر علاقه ی ساخت یک بازی کوچک هنوز در درون شما هست ، میتوانید با ما همراه باشید .
قبل از ادامه ، باید اطلاع داشته باشید که سایتی که امروز معرفی میشه ، خروجی بازی ها رو بصورت فایل html به شما ارائه میکند که میتوانید در سایت های مختلف آپلود و یا برای دوستان خود ارسال کنید اما قابلیت های زیادی برای ساخت بازی های گرافیکی و ... ندارید و فقط میتوانید داستان های زیبایی را مطرح کنید و با گرافیک پیکسلی ، یک خاطره ای جذاب برای مخاطب ها بسازید.
معرفی bitsy:
بیتسی یک وبسایت ساخت بازی ساده و برای مخاطب عام است.
با طراحی گرافیک های پیکسلی در مربع های 8 در 8 میتوانید گرافیک بازی خود را شکل دهید .
با ورود به وبسایت باید روی دکمه ی run tool کلیک کنید تا پنل ساخت بازی برای شما آماده شود.
همینطور که میبینید چند بخش برای ما باز شده است ، room و paint و colors و download
بخش room:
در این بخش مراحل خود را طراحی میکنید .
برای هر اتاق میتوانید اسم مرحله را قرار دهید تا بعدا به راحتی بین مراحل تعویض کنید و داستان را جلو ببرید .
در شروع ، خود سایت برای شما یک اتاق example room آماده میکند که میتوانید اسمش را هم تغییر دهید . با دکمه + یک اتاق جدید بسازید ، و با دکمه هتای چپ و راست بین آن ها تعویض انجام دهید .
شخصیت اصلی شما مردی است که در تصویر میبینید و بعدا میتوانید آن را عوض کنید . و کار اصلی ما ، چگونه به اتاق ، شخصیت ها و دیوار ها و دکور اضافه کنیم ؟
برای این موضوع به پنل دوم مراجعه کنیم !
بخش paint:
میتوانید چهار دکمه مختلف در بالای این پنل ببینید .
avatar = برای طراحی شخصیت اصلی شماست که بیشتر از یک شخصیت نمیتوانید در بازی قرار دهید ، این شخصیت قابل کنترل است .
tile = طراحی دیوار ها و دکور که میتوانید به تعداد دلخواه در مرحله قرار دهید .
sprite = شخصیت های فرعی بازی که قابل کنترل نیستند ولی میتوانید یک متن برای آنها تعریف کنید تا اگر بازیکن به آنها برخورد کرد ، با بازیکن صحبت کنند .
item = طراحی ایتم های قابل جمع آوری مثل کلید
هرکدام از این بخش ها تنظیمات مخصوص خود را دارند . در بخش avatar یک مربع 8 در 8 برای طراحی شخصیت دارید ، حالا اگر بخواهیم برای آن انیمیشن طراحی کنیم چه؟ برای اینکار روی دکمه animation کلیک کنید تا پنل طراحی انیمیشن برای شما باز شود ، میتوانید انیمیشن های مختلف طراحی کنید تا بین انها عکس شخصیت تغییر کند .
بعد از آن، به tile مراجعه کنید ، همه ی گزینه های این بخش هم شبیه بخش اول هستند بجز گزینه wall که با فعال کردنش ، دیگر بازیکن توانایی رد شدن از آن را ندارد و اگر میخواهید به صورت دکور ازش استفاده کنید ، این گزینه را غیر فعال کنید.
در این بخش گزینه + هم فعال خواهد بود تا بتوانید ایتم های جدید هم تولید کنید ، روی هم شکلی که بودید ، در صورت کلیک روی صفحه های اتاق ، آن شکل در آنجا قرار داده میشود ! با چپ و راست بین tile های مختلف تعویض کنید . ( دقت کنید در صورت تغییر یک tile همه ی مربع هایی که در اتاق قرار دادید تغییر میکند .
برای بخش sprite هم همه ی این تنظیمات قرار دارد با یک گزینه اضافه با اسم dialog که میتوانید متن گفت و گوی شخصیت را تغییر دهید .
بخش items هم همین تنظیمات را دارد .
بخش colors:
بیتسی برای راحتی کار ، از رنگ های محدودی استفاده میکند . شما میتوانید سه رنگ را تغییر دهید .
رنگ پس زمینه
رنگ دیوار ها و دکور ها
رنگ شخصیت ها
با کلیک روی هرکدوم از سه بخش ، رنگ آن را تغییر دهید .
بخش download:
در این بخش با دکمه اول بازی را دانلود کنید ، هم میتوانید آن را برای هرکسی بفرستید تا بازی کند ، یا که مجدد با دکمه دوم همین بخش بازی را لود کنید تا تغییراتی اعمال کنید.
بیتسی ، قابلیت های بیشتری دارد که در پست های بعدی با آن ها اشنا میشویم .