مطالب بر اساس برچسب ِ ‘برنامه نویسی’

شروع بازی نویسی با پایتون

{ پست شده در ۰۲ دی ۱۳۸۷ توسط مصطفی }
دیدگاه‌ها خاموش
لوگوی پایتون

این مطلب از وبلاگهای قبلی منتقل شده و قابلیت نظردهی ندارد.

با سلام خدمت دوستان و بازدیدکنندگان محترم،

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

چون تصمیم گرفتم بیشتر سراغ نوشتن پیرامون موراد و کارهای مورد علاقه ام بپردازم:

پایتون زبان برنامه‌نویسی تفسیری و سطح بالا ، شی‌گرا و یک زبان برنامه‌نویسی تفسیری سمت سرور قدرتمند است که توسط گیدو ون روسوم در سال ۱۹۹۰ ساخته شد. این زبان در ویژگی‌ها شبیه پرل، روبی (رابی)، اسکیم، اسمال‌تاک و تی‌سی‌ال است و از مدیریت خودکار حافظه استفاده می‌کند.

نقل شده از ویکی فارسی سایت تخصصی پایتون به زبان فارسی

پایتون به شکل پروژه‌ای بازمتن توسعه یافته است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد. نسخهٔ ۲٫۴٫۲ این زبان در تاریخ ۲۸ سپتامبر ۲۰۰۵ منتشر شد.

تاریخچه

نوشتن این زبان برای اولین بار در سال ۱۹۹۰ توسط فردی به نام گویدو ون رسوم کلید خورد. پایتون در یک محیط آموزشی ایجاد و توسعه یافته است . یعنی در کریسمس سال ۱۹۹۸ (میلادی) در موسسه ملی تحقیقات ریاضی و رایانه (CWI) شهر آمستردام. در آن زمان گیدو یک محقق در CWI بود و در زمان بیکاری خود بر روی پروژه شخصی خود یعنی پایتون کار می کرد . اولین نسخه عمومی از پایتون در ماه فوریه سال ۱۹۹۱ منتشر شد . برای مدتی نسبتاً طولانی پایتون توسط موسسه ملی تحقیقات و ابتکارات (CNRI) واقع در رستون ایالات متحده‌ امریکا توسعه می‌یافت . تا اینکه در سال ۲۰۰۰تیم توسعه دهنده پایتون به آزمایشگاه های پایتون منتقل شدند . نام پایتون از برنامه مورد علاقه سازنده آن یعنی مونتی پایتون که یک برنامه کمدی انگلیس بود گرفته شده است .

ویژگی ها

شیء گرایی

پایتون یک زبان برنامه‌نویسی شی‌گرا است و از ویژگی های پیشرفته‌ایی چون وراثت، چند شکلی، سربار گزاری عملگر و … پشتیبانی می کند. یک از ویژگی‌های پایتون که لقب چسب را برای پایتون به ارمغان آورده امکان استفاده از کد ها و کلاس‌های نوشته شده در زبانهای دیگری چون سی‌پلاس‌پلاس و‮‮ جاوا‬ است ‮که در حقیقت ‬کار‮ ‬چسباندن‮ ‬قطعات‮ ‬کد‮ ‬جدا‮ ‬و‮ ‬فقط‮ ‬نوشتن‮ ‬بدنه‮ ‬اصلی‮ ‬به‮ ‬عهده‮ ‬ پایتون ‬است‮ ‬.

آزاد

پایتون یک زبان برنامه‌نویسی آزاد و بازمتن هست.‮ می‌توانید متن آن و خود برنامه را از اینترنت دریافت یا در توسعه آن همکاری کنید .

قابلیت حمل

چون پایتون با زبان قابل حمل ‏سی‮ ‬نوشته‮ ‬شده‮ ‬می‮ ‬تواند‮ ‬به‮ ‬صورت‮ ‬مجازی‮ ‬بر‮ ‬روی‮ ‬هر‮ پردازش‌گردی‮ همگردانی ‬و‮ ‬اجرا‮ ‬شود‮ ‬.‮ ‬ماشین‮ ‬مجازی (مفسر پایتون)‮ متن برنامه‮ ‬را‮ ‬خوانده‮ ‬و‮ ‬هم‌زمان‮ ‬تفسیر‮ ‬کرده‮ ‬و‮ ‬اجرا‮ ‬می‮ ‬کند‮‬.‮ ‬پس‮ ‬شما‮ ‬می‮ ‬تونید‮ ‬یک‮ ‬برنامه را‮ در ویندوز ‬بنویسید‮ ‬و‮ ‬سپس‮ ‬بدون‮ ‬تغییر‮ ‬روی‮ لینوکس ‬یا‮ مکینتاش‬ یا‮ ‬هر‮ سیستم عامل ‬و‮ سخت‌افزار ‬دیگری‮ ‬که‮ ‬ پایتون ‬روی‮ ‬آن‮ ‬نصب‮ ‬باشد‮ ‬اجرا‮ ‬کنید‮ ‬.‮

قدرتمند

پایتون زبانی چند رگه است که از زبان‌های برنامه‌نویسی تفسیری‮ (برای مثال : تی‌سی‌ال، اسکیم، پرل‮) ‬و‮ ‬زبان‌های‮ ‬سیستمی‮ (‬برای‮ ‬مثال‮‬:‮ سی‌پلاس‌پلاس، سی ‬و جاوا‮) ‬مشتق‮ ‬شده‮‬.‮ ‬بنابراین‮ ‬تمام‮ ‬سادگی‮ ‬و‮ ‬راحتی‮ ‬کار‮ زبان‌های برنامه‌نویسی تفسیری‮ ‬و‮ ‬ویژگی‬‌ها‮ ‬و‮ ‬قدرت‮ ‬زبانهای‮ ‬سطح‮ ‬پایین‮ ‬را‮ ‬داراست‮ ‬.‮

درونی سازی و گسترش

این ویژگی یکی از پرکاربرد ترین و قوی ترین ویژگی های پایتون می باشد . شما می توانید قطعه از کد را در زبانی چون ‮سی‌پلاس‌پلاس، سی ‬و جاوا ‬نوشته سپس ‬از آن‮ ‬در‮ ‬برنامه‮ ‬نوشته‮ ‬شده‮ ‬با‮ ‬پایتون‮ ‬استفاده‮ ‬کنید‮‬.‮ ‬و‮ ‬یا‮ می توان ‬از‮ ‬توابع‮ ‬کتابخانه‮ای ‬و‮ ‬کامپوننت‮ ‬هایی‮ ‬چون‮ ‬COM API‮ ماژول) با برنامه نویسی معمولی هر زبان متفاوت می باشد . می توان از کد های پایتون در زبانهای دیگر نیز استفاده کرد (درونی سازی) ‬استفاده‮ ‬کرد‮ ‬.‮ البته نوع این نوع برنامه نویسی (درونی سازی)

سهولت در یادگیری

بی شک و حداقل از نظر بسیاری از برنامه نویسان پایتون این زبان یکی از آسان ترین زبان ها برای یادگیری و استفاده می باشد و از آن به عنوان یک زبان سریع برنامه نویسی یاد می کنند . این زبان نیازی به [[کامپایلر ]] ندارد و شما مستقیما می توانید پس از نوشتن کد و با یک دستور آن را اجرا کنید . دستورات این زبان بسیار نزدیک به زبان انسان می باشد . برای مثال برنامه Hello World ‬را‮ ‬که‮ ‬اولین‮ ‬برنامه‮ ‬ساده‮ ‬می‮ ‬باشد‮ ‬را‮ ‬در‮ ‬دو‮ ‬زبان‮ سی و‮ پایتون ‬مقایسه‮ ‬کنید‮ ‬:

Hello World در سی

#include <stdio.h>
int main()
{
	printf(" Hello world ");
	return 0;
}

Hello World در پایتون

print "Hello World !!"

برخی از برنامه های نوشته شده با پایتون

  • بیتتورنت (BitTorrent ) : نرم افزاری برای جستجوی فایل های به اشتراک گذاشته شده و …
  • بلندر (‌Blender) : یک نرم افزار ۳ بعدی و اپن سورس بسیار معروف
  • چندلر (Chandler) : مدیر اطلاعات شخصی شامل تقویم ، میل ، کار های روزلنه ، یادداشت ها و …
  • Civilization IV : یک گیم کامپیوتری بر مبنای پایتون که از boost.python استفاده می کند
  • میلمن (Mailman) : یکی از معروفترین نرم افزار های مرتبط با ایمیل
  • Kombilo : مدیر پایگاه داده و مرورگرگیم های go
  • موین موین (MoinMoin) : یکی از قدرتمندترین و معروفتریم ویکی های موجود
  • پلون (Plone) : یک ابزار مدیریتی محتوایی اپن سورس ، قدرتمند و کاربر پسند
  • پورتاژ (Portage) : قلب توزیع جنتو . یک مدیر بستهای سیستم لینوکس
  • زوپ (zope) : یک پلاتفورم شی گرای مبتنی بر وب . زوپ شامل یک سرور نرم افزار به همراه پایگاه داده شی گرا و یک رابط مدیریتی درونی مبتنی بر وب می باشد
  • اس پی ای (SPE) : یک IDE رایگان ، اپن سورس برای سیستم عامل های ویندوز ، لینوکس ، مک که از wxGlade(طراحی رابط کاربر),PyChecker (دکتر کد) Blender(3D) پشتیبانی می کند .

این نوشته (پایتون) بخشی از کتاب پایتون می باشد .

خوب، مطلب بالا رو حتماً خوندید؟ پس دیگه الان تقریباً مواردی باب آشنایی با پایتون میدونید! برای آشنایی بیشتر و یادگرفتن اون می تونید به همین منبعی که من ازش استفاده کردم برید و مطالب اونجا رو بخونید. اینجا

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

برای مطالب امروز و روز های بعد فعلاً اینها رو داشته باشید، پست بعد در ادامه اینها خواهد بود:

قرار اینجا چی یاد بگیریم؟
چگونگی نوشتن بازی های رایانه ای بوسیله زبان برنامه نویسی پایتون. با استفاده از کتابخونه های زیر:
-PyGame
و
-PyOpenGL
ما کارمون رو با مباحثی پیرامون چگونگی نصب پایتون و کتابخانه ها و همچنین مروری کوتاه پیرامون نحوه برنامه نویسی پایتون و نکات پایه ای پای گیم (از این به بعد برای سهولت در نوشتن بجای پای گیم از پ.گ استفاده می کنم) شروع می کنیم و کم کم ساخت بازی های دو بعدی و سه بعدی رو شروع می کنیم.
حتماً خیلی دوست دارید بدونید این آموزش ها رو چه کسانی نوشته اند؟
آموزش های آتی توسط دو فرد به نام های Geoff Howland و Rene Dudfield نوشته شده است. بهتر نیست قبل از شروع مقاله بعدی اسم این دو نفر رو گوگل کنیم تا راجع بهشون اطلاع پیدا کنیم و بهتر بشناسیمشون؟
خوب حتماً می دونید پایتون چیه و حتماً تا حالا فهمیدید که چرا ما پایتون رو برای بازی سازی انتخاب کردیم (اگر جستجو کردید و چیز بدرد بخوری پیدا نکردید همینجا بیان کنید تا با هم فکری هم دیگه نکات جالبی رو برای افرادی هم که نمی دونند بدست بیاریم)
نصب پایتون و شروع به کار با آن:
خوب وقتشه شعار رو کنار بزاریم و واقعاً شروع کنیم… همینطور که می دونید اکثر افراد از دو سیستم عامل محبوب ویندوز و لینوکس استفاده می کنند (در ایران)
ویندوز
این فایل ها رو بگیرید:
خود پایتونپای گیمچند مثال برای کار – حجم فایل ها زیاد نیست…
سیستم عامل لینوکس
پایتون به صورت پیشفرض در اکثر توزیعات لینوکس نصب میشه و بسته به نوع توزیع و بسته های شناخته شده در آن (deb or rpm) خودتون در سایت هایی نظیر GetDeb و غیره و با گوگل کردن به راحتی PyGame رو پیدا کنید.
خوب حتماً می دونید چطوری پایتون رو اجرا کنید پس دیگه توضیح نمی دم (ویندوزی ها از استارت منو IDLE رو پیدا کنند (GUI پایتون))
نظرتون راجع به اجرای این چند خط کد چیه؟

import pygame
print dir(pygame)
print dir()

خوب import از پایتون می خواد که اون ماژول رو بارگزاری کنه.
این کد هم بعدها زیاد به درد می خوره:

help(pygame.Rect)

اجرای مثال ها
در command prompt ویندوز این کدها را بنویسید:

set PATH=%PATH%;c:\Python24\
cd “\Program Files\Pygame-Docs\examples”
python chimp.py

توجه کنید که مسیر مثال ها به این بستگی داره که شما کجا اونها را از جالت فشرده زیپ خارج کرده باشید. شاید شما بخواید خط set رو توی autoexec.bat تون قرار بدید تا لازم نباشه هر دفعه برای استفاده از پایتون این رو بنویسید.
کابران سیستم عامل لینوکس هم از کدهایی نظیر زیر استفاده می کنند:

cd /usr/share/doc/python2.4-pygame/examples/
python chimp.py

خوب، تا آموزش بعدی سعی کنید برخی دیگه از مثالها رو اجرا کنید. happy4

مطالب این پست تا حدودی ترجمه از این سایت و استفاده از دانسته های قبلی خودم بود.

پ.ن: در صورتی که پیرامون این آموزش مشکلی داشتید می توانید مشکلات خودتون رو در این تاپیک از سایت دنیای آینده مطرح کنید. اما در صورتی که سوال شما پیرامون خود پایتون هستش می تونید به فروم تخصصی پایتون به فارسی مراجعه کنید. در ضمن، سوالات پیرامون نصب این ها در لینوکس رو هم می تونید در سایت هایی نظیر اوبونتوی ایران، تکنوتاکس و وبلاگ های مرتبط با لینوکس بپرسید. برخی از وبلاگ های خوب در این زمینه: اوبونتو بلاگ , مداد آی تی، کافه ی گنو و لینوکس، آموزش لینوکس و … .

پ.ن۲: لطفاً فقط به مطالب من اکتفا نکنید، اگر واقعاً می خواید بازی نویسی با پایتون رو یاد بگیری خودتون هم جستجو کنید و حتی ما رو هم از نتایجتون خبر کنید.

پ.ن۳: اگر این پست رو به صورت کامل خوندید و به دردتون خورد حتماً نظر بدید، اینجوری من بهتر می فهمم که این مطلب چقدر طرفداره!

آموزش PyGame: وارد کردن و آغاز کردن

{ پست شده در ۰۲ دی ۱۳۸۷ توسط مصطفی }
دیدگاه‌ها خاموش

این مطلب از وبلاگهای قبلی منتقل شده و قابلیت نظردهی ندارد.

با سلام و عرض پوزش به علت این وقفه ی طولانی که در نوشتن (ترجمه) مقاله و آموزش دوم PyGame ایجاد شد.

خوب بدون هیچ حرف اضافه ای به سراغ اصل مطلب میرویم. البته باید قبلاْ مقاله اول این بحث رو خونده باشید.

مقدمه

وارد کردن و آغاز کردن در پPyGame کار بسیار آسانی است و همچنین آنقدر انعطاف پذیر است که به شما امکان این را میدهد که بر هرچه به وقوع می پیوندد نظارت و کنترل داشته باشید. PyGame مجموعه ای از ماژول های مختلف در یک بسته ی پایتون است که برخی از این ماژول ها در C و بعضی دیگر بوسیله پایتون نوشته شده اند. همچنین برخی از این ماژول ها اختیاری هستند و لازم نیست همیشه مهیا باشند.

متنی که پیش رو دارید (این مقاله) تنها مقدمه ای سریع بر نحوه کارکرد و عملیاتی که هنگام وارد کردن در PyGame انجام میدهید رخ میدهد است و در صورتی که نیازی به توضیح شفافتری دارید بهتر است مثال های PyGame را ببینید و اجرا کنید.

وارد کردن (Import)

در ابتدا ما تنها بسته ی PyGame را وارد می کنیم. برای انجام اینکار به صورت زیر عمل می کنیم:

import pygame
from pygame.locals import *

خط اول ضروری ترین و مهمترین خط است. این خط تمامی ماژول هایی که در دسترس هستند را به بسته PyGame وارد می کند. خط دوم اختیاری و تنها برای ایجاد محدودیت به کار میرود.

نکته ی مهم دیگری که باید در ذهن خود داشته باشید این است که بسیاری از ماژول های PyGame اختیاری هستند. برای مثال ماژول قلم یک نمونه از این ماژول های اختیاری است! هنگامی که شما ؛PyGame را وارد می کنید؛ PyGame چک می کند تا ببیند که ماژول قلم ها در دسترس است یا خیر؟ اگر این ماژول در دسترس باشد به عنوان pygame.font وارد می شود ولی اگر در دسترس نباشد این اتفاق نمی افتد. این کار تست کردن اینکه در دسترس است یا نه را برای آینده آسان تر می کند.

آغاز کردن (Init)

قبل از اینکه شما بخواهید و یا بتوانید هیچ گونه کاری با PyGame انجام دهید نیاز دارید تا آنرا آغاز کنید. این کار بسیار آسان به به صورت زیر عملی است:

pygame.init()

کد فوق تمامی ماژول های PyGame را آغاز می کند. البته شما نیازی به آغاز کردن تمامی ماژول ها ندارید و می توانید به صورت دستی خودتان ماژول های مورد نیاز را آغاز کنید. برای مثال: برای فقط آغاز کردن ماژول قلم ها از کد زیر استفاده میشود:

pygame.font.init()

به منظور اینکه مطمئن شوید که ماژول مورد نظر آغاز شده و رد نشده باشد از تابع “get_init()” استفاده میشود که در صورتی که ماژول مورد نظر درست آغاز شده باشد مقدار درست (True) را بازگشت میدهد.

شما می توانید از تابع init() برای هر ماژول به تعداد چند بار استفاده نمایید.

خارج شدن (Quit)

همچنین ماژول هایی که آغاز شده اند همیشه یک تابع quit() دارند که عمل پاک کردن (خارح شدن!) را انجام میدهد. البته خود PyGame در هنگام پایان یافتن پایتون این کار را به صورت خودکار انجام میدهد.

خب. این مقاله هم به انتهای خودش رسید و امیدوارم که از نکات و موارد ذکر شده در آن حداکثر استفاده را بکنید.

هر گونه کپی برداری از این ترجمه ها تنها با ذکر نام مترجم (مصطفی سپهریان) و آدرس این وبلاگ بلامانع است.

با تشکر

= – - – لینک های مرتبط با این مقاله – - -  =

لینک مقالات به زبان اصلی

سایت PyGame و سایت Python

فروم های دنیای آینده برای پرسیدن سوالات و مشکلات

مقاله نخست: شروع بازی سازی با پایتون

پی نوشت: به تازگی به همراه برخی از دوستان در انجمن های سایت اوبونتوی ایرانی قصد داریم که شروع به انجام پروژه ای متن باز برای ساخت بازی های دوبعدی کوچک (مینی گیم) کنیم. شما هم می توانید به ما ملحق شوید.