پارس‌کدرز چگونه کار می‌کند؟

از پارس‌کدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.

پارس‌کدرز خریداران یا کارفرمایان را به مجری‌ها /فریلنسرهای خبره‌ای متصل می‌کند که برای انجام پروژه آماده هستند.

بازی پکمن به زبان پایتون

شش ماه پیش منتشر شده

تعداد بازدید: 189

کد پروژه: 567573


شرح پروژه

 بسمه تعالی پروژه پایانی درس هوش مصنوعی 

 شرح پروژه: 

در این پروژه عامل Pacmanباید مسیرها را در دنیای خود پیدا کند. هم برای رسیدن به یک مکان خاص و هم برای خوردن غذا ها. 

دانشجویان باید الگوریتمهای جستجوی موثری برای سناریوها مختلف محیط Pacmanبنویسند. 

کد این پروژه از چندین فایل پایتون تشکیل شده است که برخی از آنها را برای تکمیل تکلیف باید بخوانید و درک کنید و برخی از آنها را نادیده بگیرید. شما می توانید تمام کدها و فایل های پشتیبان را به صورت یک آرشیو فشرده دانلود کنید. فایل search.zipرا از بخش منابع در محیط piazzaدانلود کنید. 

فایلهایی که باید برای پاسخ به پروژه ویرایش کنید: 

جای که همه الگوریتم های جستجوی شما در آن قرار دارند 
search.py
جای که همهعاملهای مبتن بر جستجوی شما تعریف خواهند شد 
searchAgents.py
:فایل های که ممکن است بخواهید به آنها نگاه کنید
pacman.py
فایل اصلی که برنامه پکمن را اجرا می کند. این فایل نوع حالت بازی را هم مشخص می کند. یعنی با دادن پارمترهای مختلف به عنوان آرگومانهای این فایل می توانید نوع حتلت بازی پکمن را تغییر دهید.
game.py
این فایل حاوی منطق نحوه عملکرد دنیای پکمن است که حاوی چندین نوع پشتیبانی شده است . Grid وAgentState, Agent, Direction :مانند
.ساختار داده های مفید برای پیاده سازی الگوریتم های جستجو 
util.py
:فایل های پشتیبای که می توانید نادیده بگ ریید
 

graphicsDisplay.py 
گرافیک برای پکمن
پشتیبای از گرافیک پکمن 
graphicsUtils.py
گرافیک اسکی IIبرای پکمن 
textDisplay.py
عوامل کن ریل ارواح 
ghostAgents.py
رابط های صفحه کلید برای کن ریل پکمن 
keyboardAgents.py
کد برای خواندن فایل های طرح بندی و ذخ ریه محتوای آنها 
layout.py
اتوگریدرپروژه - به راه حل شما امتیاز می دهد. 
autograder.py
تجزیه و تحلیل فایل های راه حل 
testParser.py
کلاس های عمومی درجه بندی تست بصورت خودکار 
testClasses.py
دایرکتوری حاوی موارد تست برای هر سوال 
/ موارد_آزمون
پروژه 1کلاس های تست خودکار درجه بندی خاص 
searchTestClasses.py
شما فقط باید بخشهایی از دو فایل search.pyو searchAgents.pyرا تغییر دهید. شما باید این فایل ها را با کد و نظرات خود ارسال کنید و هیچ یک از فایلهای اصلی دیگر را به غیر از این فایلها ارسال نکنید. 

ارزیابی: کد شما برای صحت فنی بطور خودکار درجه بندی می شود. لطفاً نام هیچ یک از توابع یا کلاس های ارائه شده در کد را تغییر ندهید، در غیر این صورت باعث خرابی ارزیابی خودکار می شوید. با این حال، صحت اجرای شما -- نه قضاوت های امیاز دهنده خودکار -- داور نهایی امتیاز شما خواهد بود. در صورت لزوم، تکالیف را به صورت جداگانه بررسی و درجه بندی می شوند تا اطمینان حاصل شود که اعتبار لازم را برای کار خود را دریافت می کنید. 

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

برای شروع کار ابتدا فایل search.zipرا در یک فولدر باز کنید. بعد با استفاده از دستور زیر بازی را اجرا کنید: 

python pacman.py 

توجه کنید که فقط pythonنسخه 2.7نصب شده باشد. همچنین برای اجرای دستور فوق باید مسیری که کامپایلر پایتون در آن قرار دارد به pathویندوز اضافه کنید. 

برای اجرای بازی در حالتهای مختلف باید از آرگومانهای خط فرمان استفاده کنید: 

-1ساده ترین حالت بازی ، حرکت پکمن به سمت غرب : 

python pacman.py --layout testMaze --pacman GoWestAgent 

-2اما حرکت به سمت غرب باعث شکست پکمن در محیطهای پیچیده خواهد شد: 

python pacman.py --layout tinyMaze --pacman GoWestAgent 

-3اگر پکمن گیر افتاد با زدن ctrl-cبرنامه را متوقف کنید. 

-4برای مشاهده راهنما و تمام آرگومانهای ممکن از دستور زیر استفاده کنید: 

python pacman.py -h 

پروژه از تعدادی سوال تشکیل شده است که پاسخ به هر کدام باعث کسب نمره می شود: 

سوال اول: پیدا کردن یک خانه از غذا با استفاده از جستجوی اول عمق 

در ،searchAgents.pyیک SearchAgentکاملاً پیادهسازی شده را میبینید که مسیری را در دنیای Pacmanبرنامهریزی میکند و سپس آن مسیر را گام به گام اجرا میکند. الگوریتمهای جستجو برای فرمولبندی یک طرح پیاده سازی نشده اند -- این وظیفه شماست. 

ابتدا با دستور زیر چک کنید که یک عامل جستجوی پیاده سازی شده بطور صحیح اجرا می شود: 

python pacman.py -l tinyMaze -p SearchAgent -a fn=tinyMazeSearch 

دستور بالا به SearchAgentمی گوید که از tinyMazeSearchبه عنوان الگوریتم جستجوی خود استفاده کند که در search.py پیاده سازی شده است Pacmanباید با موفقیت در پیچ و خم حرکت کند. 

اکنون زمان نوشتن توابع جستجوی عمومی کامل است تا به Pacmanدر برنامه ریزی مسیرها کمک کند! کد شبه برای الگوریتم های جستجویی که می نویسید را می توانید در اسلایدهای درسی پیدا کنید. به یاد داشته باشید که یک گره جستجو نه تنها باید حاوی یک وضعیت باشد، بلکه باید اطلاعات لازم برای بازسازی مسیر (طرح) که به آن حالت می رسد نیز داشته باشد. 

نکته مهم: همه عملکردهای جستجوی شما باید فهرستی از اقداماتی ) (actionرا که عامل را از ابتدا به سمت هدف هدایت می کند، برگردانند. این اقدامات همه باید حرکات قانونی باشد (جهت های معتبر، بدون حرکت از طریق دیوار). 

نکته مهم: مطمئن شوید که از ساختارهای داده Queue ،Stackو PriorityQueueکه در util.pyبه شما ارائه شده است استفاده کنید! این پیادهسازیهای ساختار داده دارای ویژگیهای خاصی هستند که برای سازگاری با نمره دهی خودکار لازم است. 

نکته: هر الگوریتم بسیار شبیه بقیه است. الگوریتمهایUCS ،BFS ، DFSو * Aفقط در جزئیات نحوه مدیریت حاشیه متفاوت هستند. بنابراین، روی درست کردن DFSتمرکز کنید و بقیه باید نسبتاً ساده باشند. در واقع، یک پیاده سازی ممکن فقط به یک روش جستجوی کلی نیاز دارد که با یک استراتژی صف بندی خاص الگوریتم پیکربندی شده است. 

الگوریتم ) depth-first search (DFSرا در تابع depthFirstSearchدر search.pyپیاده سازی کنید. برای اینکه الگوریتم خود را کامل کنید، نسخه جستجوی گراف DFSرا بنویسید، که از گسترش هر حالتی که قبلاً بازدید شده است جلوگیری می کند. 

کد شما باید برای حالتهای محیط زیر راه حل پیدا کند: 

python pacman.py -l tinyMaze -p SearchAgent 

python pacman.py -l mediumMaze -p SearchAgent 

python pacman.py -l bigMaze -z .5 -p SearchAgent 

صفحه Pacmanپوشش وضعیتهای کاوش شده و ترتیب کاوش آنها را نشان می دهد (قرمز روشن تر به معنای اکتشاف قبلی است.) آیا ترتیب اکتشاف همان چیزی است که انتظار داشتید؟ آیا Pacmanواقعاً در مسیر رسیدن به هدف به تمام مربع های کاوش شده می رود؟ 

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

این پروژه شامل 1 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.

مهارت ها و تخصص های مورد نیاز


مهلت برای انجام

1روز

وضعیت مناقصه

بسته


درباره کارفرما

عضویت شش ماه پیش

1 پروژه ثبت شده ،
0 پروژه در حال انجام ،
0 پروژه آماده دریافت پیشنهاد ،
نرخ پذیرش پیشنهاد 0%

برای پیدا کردن پروژه‌های مشابه ثبت نام کنید و پروفایل خود را بسازید.

ورود با گوگل
یا
نام نباید خالی باشد.
نام خانوادگی نباید خالی باشد.

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟

سفارش پروژه مشابه

قادر به انجام این پروژه هستید؟

ثبت نام کنید

متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصت‌های متعددی در سایت موجود می‌باشد.

سری به پروژه‌های مشابه بزنید

روش کار در پارس‌کدرز

به رایگان یک حساب کاربری بسازید

مهارت‌ها و تخصص‌های خود را ثبت کنید، رزومه و نمونه‌کارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.

به شیوه‌ای که دوست دارید کار کنید

برای پروژه‌های دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصت‌های شغلی منحصر به فرد دسترسی پیدا کنید.

با اطمینان دستمزد دریافت کنید

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

می‌خواهید شروع به کار کنید؟

یک حساب کاربری بسازید


بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارت‌های شما است.

پیدا کردن کار (پروژه)

تماشای دمو روش کار