ورود / ثبت نام سبد خرید 0
سورس کد آماده ی این بازی با زبان پایتون در گیتهاب و همچنین ویدیو آموزشی ساخت این بازی افزوده شد.
حتما قبلا شما هم بازی مار یا snake که یکی از معروفترین بازی های قدیمی در گوشی های نوکیا ساده بود را دیده اید و با آن بازی کرده اید. امروز قصد داریم با زبان برنامه نویسی پایتون ( python ) بازی سازی کنیم و باکدنویسی بازی معروف مار را پیاده سازی کنیم.
علاوه بر اینکه سرگرمی خوبی هست خیلی از نکات آموزشی زبان برنامه نویسی پایتون درون این آموزش وجود دارد که به علاقه مندان به برنامه نویسی و مخصوصا پایتون به شدت توصیه میشود که این بازی را همراه با آموزش پیاده سازی کنید و برای یادگیری بیشتر مواردی را به آن اضافه کنید یا آنرا کمی تغییر دهید.
خب بیایید آموزش را شروع کنیم ولی قبل از هرچیزی پیشنهاد میکنیم اگر حوصله ی مطالعه ی این مقاله ی آموزشی را ندارید بجای مطالعه ، ویدیو آموزشی که در زیر قرار داده ایم را تماشا کنید :
# setup window curses.initscr() win = curses.newwin(20,60,0,0) win.keypad(1) curses.noecho() curses.curs_set(0) win.border(0) win.nodelay(1)
# snake food snake = [(9,10),(9,9),(9,8)] food = (10,20)
پس snake یا مار بازی ما با پایتون در ابتدا در نقطه ی y=9 و x=10 ظاهر میشود و چون قصد داریم در شروع به سمت راست حرکت کند پس دو کاراکتر بعدی را با کم کردن مقدار x و ثابت نگه داشتن y تعریف میکنیم. در این صورت برای کاراکتر بعدی که وسط مار هست یک واحد از x کم میکنیم و برای دم مار دو واحد از x کم میکنیم که مختصات مار را تشکیل میدهند.
بعد از تعریف اولین موقعیت مکانی مار و غذای ان در صفحه باید آنها را روی صفحه ترسیم کنیم ولی از آنجایی که مار دائما در حال حرکت است ترسیم مار را باید درون یک حلقه ی بینهایت while قرار دهیم ولی غذا را همینطوری بیرون از حلقه میتوانیم پیاده سازی کنیم.
در واقع برای پیاده سازی بازی پایتون ما باید موارد زیر را ابتدا در نظر بگیریم تا بتوانیم با ذهنیت خوب کدنویسی کنیم و اشتباه یا باگی موقع کدنویسی رخ ندهد. بازی سازی با پایتون یکی از تفریحاتی هست که به یادگیری سریع پایتون کمک میکند :
لیست بالا الگوریتم کلی بازی مار با زبان پایتون هست که فقط کمی کدنویسی نیاز دارد.
کدهای الگوریتم های بالا بطور خلاصه به شکل زیر میباشد ولی اگر در درک کدهای زیر دچار مشکل هستید حتما ویدیو آموزشی که در بالا قرار دادیم را تماشا کنید :
while key != ESC: win.addstr(0,10,' score is :'+str(score)+' ') win.timeout(150 - (len(snake)//5+len(snake)//10)%120) win.addstr(0,25,' speed = '+str(150 - (len(snake)//5+len(snake)//10)%120)+' ') prev_key = key event = win.getch() key = event if event != -1 else prev_key if key not in [curses.KEY_LEFT,curses.KEY_RIGHT,curses.KEY_DOWN,curses.KEY_UP,ESC]: key = prev_key y= snake[0][0] x= snake[0][1] if key == curses.KEY_DOWN: y += 1 if key == curses.KEY_UP: y -= 1 if key == curses.KEY_RIGHT: x += 1 if key == curses.KEY_LEFT: x -= 1 snake.insert(0,(y,x)) if y == 0 : break if y == 19 : break if x == 0 : break if x == 59 : break if snake[0] in snake[1:]:break if snake[0] == food: score += 1 food = () while food == (): food = (randint(1,17),randint(1,57)) if food in snake : food = () win.addch(food[0],food[1],'*') else: last = snake.pop() win.addch(last[0],last[1],' ') win.addch(snake[0][0],snake[0][1],'#') curses.endwin() print(f'final score : {score}')
و در پایان سورس کد کامل این بازی در گیتهاب قرار گرفته و کافی است دانلود و با python اجرا کنید تا نتیجه ی نهایی بازی مار با پایتون را ببینید :
https://github.com/nikzad-avasam/snake-by-python/blob/main/snake.py
.
مقالات دیگر مرتبط با این مقاله ی آموزشی :
دوره های آموزشی مرتبط با این مقاله :
برای یادگیری پایتون خیلی عالیه ممنون از زحمات شما