Source Code Game Snake Python Terbaru Paling Keren akan Panduan Code bagikan pada postingan kali ini untuk pembelajaran bahasa pemrograman p...
Source Code Game Snake Python Terbaru Paling Keren
Minggu, Mei 17, 2020
Daftar Isi [Tampil]
Anda perlu persiapan instalasi bahasa pemrograman python ke kompunter Anda agar source code game snake python dapat bekerja dengan baik.
Persiapan Instalasi Bahasa Pemrograman Python
1. Download Python
Download Python sesuai dengan keperluan Anda, yaitu download sesuai dengan OS (Operasi Sistem) yang Anda gunakan.
Jika Anda menggunakan Windows maka download python untuk Windows, jika Anda menggunakan distro linux maka download python untuk linux, dan jika Anda menggunakan macOS maka download python untuk macOS.
2. Lakukan Instalasi Python
Setelah Anda Download Python sesuai kebutuhan Anda, maka tahap selanjutnya adalah instalasi python tersebut.
Lakukan instalasi python sampai selesai dan ikuti petunjuk-petunjuk yang ada, jadi alangkah baiknya Anda baca setiap informasi pada tahap instalasi python.
3. Download Python Pygame
Python pygame ini adalah modul python yang berfungsi untuk membuat game dengan bahasa pemrograman python.
Jadi jika tanpa modul python pygame Anda tidak akan bisa menjalankan game snake python, karena game snake python ini menggunakan modul python pygame.
Download python pygame sesuai kebutuhan Anda, ada banyak versi python pygame jadi sesuaikan dengan python yang tersinstall di komputer Anda dan sesuaikan dengan OS (Operasi Sistem) yang Anda gunakan.
4. Lakukan Instalasi Python Pygame
Instalasi python pygame sebenarnya banyak cara yang dapat Anda gunakan, salah satunya dengan mendowload terlebih dahulu python pygame yang Anda butuhkan seperti pada tahap diatas, kemudian baru di lakukan instalasi.
Untuk referensi cara install python Anda dapat membaca tutorial berikut ini https://mn-belajarpython.blogspot.com/2017/03/cara-install-pygame-di-python-3-dan-2.html.
Namun ada juga cara install python pygame otomatis hanya dengan memasukan perintah di terminal atau CMD, Anda bisa langsung menginstall python pygame dengan mudah.
Dan untuk referensi cara install python pygame otomatis ini Anda bisa membaca dari https://www.pygame.org/wiki/GettingStarted.
Jika semua tahap persiapan instalasi bahasa pemrograman python sudah Anda lakukan, maka sekarang Anda dapat mencoba membuat atau menjalankan game snake pyhon ini.
Source Code Game Snake Python Terbaru
Buka kode editor Anda, Anda tidak perlu menggunakan IDE Python karena jika melakukan copas akan ada notofikasi error, hal tersebut dikarenakan python sangat sensitif terhadap spasi dan tab.
Jadi untuk saran dari Panduan Code gunakan kode editor yang biasa Anda gunakan seperti Notepad, sublime, atau Visual Studio Code.
Kemudian copy source code game snake python berikut ini.
import pygame as pg import sys,random def collide(x1,y1,x2,y2,x3,y3,x4,y4): if (x3+x4) > x1 > x3 and (y3+y4) > y1 > y3 or (x3+x4) > x2 >x3 and (y3+y4) > y2 > y3: return True else: return False def collide2(x1,y1,x2,y2,x3,y3,x4,y4,size): if (x3+(11*size)) > x1 > x3-1 and (y3+(11*size)) > y1 > y3-1 or (x3+(11*size)) > x2 >x3-1 and (y3+(11*size)) > y2 > y3-1: return True else: return False def collide3(x1,y1,x2,y2,x3,y3,x4,y4,size): if (x3+(10*size)) > x1 > x3 and (y3+(10*size)) > y1 > y3 or (x3+(10*size)) > x2 >x3 and (y3+(10*size)) > y2 > y3: return True else: return False class snake(): def __init__(self,speed, size): self.pos = [20,20] self.image = pg.Surface((10*size,10*size)) self.image.fill((0,255,0)) self.speed = speed self.size = size self.images = [] self.old_pos = [[20,20]] self.direction = [0,0] self.score = 0 def right(self): self.direction = [self.speed,0] def left(self): self.direction = [-self.speed,0] def up(self): self.direction = [0,-self.speed] def down(self): self.direction = [0, self.speed] def update(self): if self.old_pos[-1] != self.pos: self.old_pos.append([self.pos[0],self.pos[1]]) self.pos[0] += self.direction[0] self.pos[1] += self.direction[1] a = 1 for x in self.images: x[1] = self.old_pos[int(a*((-11*self.size)/self.speed))] a+=1 def check_collisions(self, x): c=collide(self.pos[0],self.pos[1],self.pos[0]+10,self.pos[1]+10,x[0],x[1],x[0]+10,x[1]+10) return c def check_apple(self,x): c=collide2(self.pos[0],self.pos[1],self.pos[0]+10,self.pos[1]+10,x[0],x[1],x[0]+10,x[1]+10, self.size) return c def check_collisions2(self,x): c=collide3(self.pos[0],self.pos[1],self.pos[0]+10,self.pos[1]+10,x[0],x[1],x[0]+10,x[1]+10, self.size) return c def add_apple(self): self.score +=1 block = pg.Surface((10*self.size,10*self.size)) block.fill((0,255,0)) self.images.append([block,[10,10]]) class apple(): def __init__(self,size): self.pos = [random.randrange(10, 780,10),random.randrange(10,430,10)] self.image = pg.Surface((10*size,10*size)) self.image.fill((255,0,0)) class game(): def __init__(self,speed, size=1): self.screen = pg.display.set_mode((800,450)) pg.display.set_caption('Game Snake PC') self.snake = snake(speed, size) self.blocks = [] self.score = 0 self.size = size self.left,self.right,self.up,self.down = False,False,False,False self.hover = False self.click0 = False color = (0,0,0) for x in range(0,800,10): t=pg.Surface((10,10)) t.fill(color) self.blocks.append([t, [x,0]]) for x in range(0,800,10): t=pg.Surface((10,10)) t.fill(color) self.blocks.append([t, [x,440]]) for x in range(0,450,10): t=pg.Surface((10,10)) t.fill(color) self.blocks.append([t, [0,x]]) for x in range(0,450,10): t=pg.Surface((10,10)) t.fill(color) self.blocks.append([t, [790,x]]) self.apple = apple(size) def over(self): while 1: for event in pg.event.get(): if event.type == pg.QUIT: sys.exit() for x in self.blocks: self.screen.blit(x[0],x[1]) txts = pg.font.SysFont('Courier New',50).render('Game Over Score:',True,(255,255,255)) txtrect = txts.get_rect() txtrect.topleft =(20,150) self.screen.blit(txts,txtrect) txts = pg.font.SysFont('Courier New',50).render(str(self.snake.score),True,(255,255,255)) txtrect = txts.get_rect() txtrect.topleft =(600,150) self.screen.blit(txts,txtrect) pg.display.update() self.make_button((153,300,100,50),'Restart', [(255,255,255),(150,150,150)], action = lambda:restart()) if self.hover ==True: click = pg.mouse.get_pressed() if click[0] == 1: self.click0 = True if self.click0 == True: if click[0] == 0: self.buttonclick() self.click0 = False def make_button(self, pos, text, color, action=None, textsize=20): mouse = pg.mouse.get_pos() oldpos = pos rect = pg.Rect(pos) pos = rect.topleft rect.topleft = 0,0 rectangle = pg.Surface(rect.size,pg.SRCALPHA) circle = pg.Surface([min(rect.size)*3]*2,pg.SRCALPHA) pg.draw.ellipse(circle,(0,0,0),circle.get_rect(),0) circle = pg.transform.smoothscale(circle,[int(min(rect.size)*0.5)]*2) radius = rectangle.blit(circle,(0,0)) radius.bottomright = rect.bottomright rectangle.blit(circle,radius) radius.topright = rect.topright rectangle.blit(circle,radius) radius.bottomleft = rect.bottomleft rectangle.blit(circle,radius) rectangle.fill((0,0,0),rect.inflate(-radius.w,0)) rectangle.fill((0,0,0),rect.inflate(0,-radius.h)) pos = oldpos if (pos[0]+pos[2]) > mouse[0] > pos[0] and (pos[1]+pos[3]) > mouse[1] > pos[1]: self.hover = True self.buttonclick = action color = pg.Color(*color[1]) alpha = color.a color.a = 0 else: color = pg.Color(*color[0]) alpha = color.a color.a = 0 self.hover = False rectangle.fill(color,special_flags=pg.BLEND_RGBA_MAX) rectangle.fill((255,255,255, alpha),special_flags=pg.BLEND_RGBA_MIN) self.screen.blit(rectangle,pos) txts = pg.font.SysFont('Courier New',textsize).render(text,True,(0,0,0)) txtrect = txts.get_rect() txtrect.center =(pos[0]+pos[2]/2), (pos[1]+pos[3]/2) self.screen.blit(txts,txtrect) def reset(self): self.left,self.right,self.up,self.down = False,False,False,False def loop(self): self.game_over = False while self.game_over != True: self.screen.fill((35,38,117)) self.snake.update() for x in self.blocks: if self.snake.check_collisions(x[1]) == True: self.over() self.screen.blit(x[0],x[1]) a=0 for x in self.snake.images: if a !=0: if self.snake.check_apple(x[1]) == True: self.over() self.screen.blit(x[0],x[1]) a+=1 if self.snake.check_apple(self.apple.pos) == True: self.snake.add_apple() del self.apple self.apple = apple(self.size) self.screen.blit(self.apple.image,self.apple.pos) self.screen.blit(self.snake.image,self.snake.pos) for event in pg.event.get(): if event.type == pg.QUIT: sys.exit() elif event.type == pg.KEYDOWN: if event.key == pg.K_RIGHT: if self.left == False: self.reset() self.snake.right() self.right = True if event.key == pg.K_LEFT: if self.right == False: self.reset() self.snake.left() self.left = True if event.key == pg.K_UP: if self.down == False: self.reset() self.snake.up() self.up = True if event.key == pg.K_DOWN: if self.up == False: self.reset() self.snake.down() self.down = True pg.display.update() class startmenu(): def __init__(self): self.screen = pg.display.set_mode((800,450)) self.b1 = '(150, 300,100,50),"Start", [(0,255,0), (0,150,0)], action = self.start' self.b2 = '(550, 300,100,50),"Exit", [(255,0,0), (150,0,0)], action = self.exit' self.buttons = [self.b1, self.b2] self.blocks = [] self.size = 1 self.click0, self.loads = False, False color = (0,0,0) for x in range(0,800,10): t=pg.Surface((10,10)) t.fill(color) self.blocks.append([t, [x,0]]) for x in range(0,800,10): t=pg.Surface((10,10)) t.fill(color) self.blocks.append([t, [x,440]]) for x in range(0,450,10): t=pg.Surface((10,10)) t.fill(color) self.blocks.append([t, [0,x]]) for x in range(0,450,10): t=pg.Surface((10,10)) t.fill(color) self.blocks.append([t, [790,x]]) def make_text(self, x, y, text, size=20, color = (0,0,0), a = False): txts = pg.font.SysFont('Courier New', size).render(text, True, color) txtrect = txts.get_rect() txtrect.topleft = (x,y) if a == True: txtrect.center = (x,y) self.screen.blit(txts, txtrect) def make_button(self, pos, text, color, action=None, textsize=20): mouse = pg.mouse.get_pos() oldpos = pos rect = pg.Rect(pos) pos = rect.topleft rect.topleft = 0,0 rectangle = pg.Surface(rect.size,pg.SRCALPHA) circle = pg.Surface([min(rect.size)*3]*2,pg.SRCALPHA) pg.draw.ellipse(circle,(0,0,0),circle.get_rect(),0) circle = pg.transform.smoothscale(circle,[int(min(rect.size)*0.5)]*2) radius = rectangle.blit(circle,(0,0)) radius.bottomright = rect.bottomright rectangle.blit(circle,radius) radius.topright = rect.topright rectangle.blit(circle,radius) radius.bottomleft = rect.bottomleft rectangle.blit(circle,radius) rectangle.fill((0,0,0),rect.inflate(-radius.w,0)) rectangle.fill((0,0,0),rect.inflate(0,-radius.h)) pos = oldpos if (pos[0]+pos[2]) > mouse[0] > pos[0] and (pos[1]+pos[3]) > mouse[1] > pos[1]: self.hover = True self.buttonclick = action color = pg.Color(*color[1]) alpha = color.a color.a = 0 else: color = pg.Color(*color[0]) alpha = color.a color.a = 0 self.hover = False rectangle.fill(color,special_flags=pg.BLEND_RGBA_MAX) rectangle.fill((255,255,255, alpha),special_flags=pg.BLEND_RGBA_MIN) self.screen.blit(rectangle,pos) self.make_text((pos[0]+pos[2]/2), (pos[1]+pos[3]/2), text, a = True, size=textsize) def mainloop(self): while 1: self.screen.fill((35,38,117)) self.make_text(400, 150, 'Game Snake PC', color = (255,255,255), size = 80, a = True) for event in pg.event.get(): if event.type == pg.QUIT: sys.exit() for x in self.blocks: self.screen.blit(x[0],x[1]) for x in self.buttons: exec('self.make_button(' + x + ')') if self.hover ==True: click = pg.mouse.get_pressed() if click[0] == 1: self.click0 = True if self.click0 == True: if click[0] == 0: self.buttonclick() self.click0 = False pg.display.update() def start(self): self.b1 = '(150, 300,100,50),"Normal", [(0,255,0), (0,150,0)], action = self.start3' self.b2 = '(550, 300,100,50),"Big", [(0,255,0), (0,150,0)], action = self.start4' self.buttons = [self.b1,self.b2] def start3(self): self.b1 = '(150, 300,100,50),"Easy", [(0,255,0), (0,150,0)], action = self.e' self.b2 = '(283, 300,100,50),"Normal", [(0,255,0), (0,150,0)], self.n' self.b3 = '(417, 300,100,50),"Hard", [(0,255,0), (0,150,0)], action = self.h' self.b4 = '(550, 300,100,50),"Expert", [(0,255,0), (0,150,0)], action = self.ex' self.buttons = [self.b1, self.b2,self.b3,self.b4] def start4(self): self.size = 2 self.b1 = '(150, 300,100,50),"Easy", [(0,255,0), (0,150,0)], action = self.e' self.b2 = '(283, 300,100,50),"Normal", [(0,255,0), (0,150,0)], self.n' self.b3 = '(417, 300,100,50),"Hard", [(0,255,0), (0,150,0)], action = self.h' self.b4 = '(550, 300,100,50),"Expert", [(0,255,0), (0,150,0)], action = self.ex' self.buttons = [self.b1, self.b2,self.b3,self.b4] def e(self): start(0.25, self.size) def n(self): start(0.5, self.size) def h(self): start(1, self.size) def ex(self): start(2, self.size) def exit(self): sys.exit() def start(speed,size): global g,m del m g=game(speed,size) g.loop() def restart(): global g del g menu() def menu(): global m pg.init() m = startmenu() m.mainloop() menu()
Setelah Anda copy source code game snake python diatas Anda paste di kode editor Anda dan save dengan nama gamesnake.py
Jika sudah Anda bisa mencoba menjalankan game snake python terbaru paling keren dari Panduan Code.
Cara Run Source Code Game Snake Python
Anda dapat run source code game snake python tersebut dengan klik kanan pada file gamesnake.py dan klik open with kemudian pilih python.
Untuk lebih jelasnya lihat contoh pada gambar dibawah ini.
Atau Anda dapat run source code game snake python tersebut lewat terminal atau CMD, pada contoh ini Panduan Code menggunkan CMD.
Caranya buka CMD, kemudian masuk ke directory tempat Anda menyimpan file gamesnake.py tersebut contohnya cd Documents lalu enter, kemudian ketikkan perintah python gamesnake.py kemudian enter.
Maka setelah itu akan terbuka tab baru yaitu game snake python dan siap Anda coba mainkan.
Untuk lebih jelasnya lihat contoh pada gambar dibawah ini.
Kelebihan Game Snake Python Terbaru Dari Panduan Code
1. User Interface Menarik
User interface atau tampilan menarik tentu menjadi nilai plus untuk game snake python ini, berbeda dengan game snake python lainnya yang terlalu simpel.
2. Tersedia Banyak Mode Game
Pada game snake python terbaru dari Panduan Code ini tersedia banyak mode game yang bisa Anda coba.
Pertama ketika Anda klik start Anda akan ditampilkan pilihan Mode Normal atau Mode Big, mode normal yaitu ukuran ular atau snakenya kecil, sedangkan mode big ukuran ular atau snakenya besar.
Selanjutnya pada masing-masing mode game baik itu normal atau big tersedia lagi mode tingakatan kecepatan game snake, yaitu ada mode Easy, Normal, Hard, dan Expert.
Setiap tingkatan kecepatan pada game snake tersebut memiliki kecepatan yang berbeda, semakin tinggi tingkatnya maka semakin cepat laju ular atau snakenya berjalan.
Dan masih banyak kelebihan lain dari game snake python ini jadi tunggu apalagi silakahkan coba saja mainkan game snake pythonnya.
Sekian saja yang dapat Panduan Code sampaikan pada postingan kali ini semoga bermanfaat untuk Anda, dan untuk Panduan Code.
Jika Anda memiliki pertanyaan mengenai source code game snake python tersebut silahkan sampaikan pertanyaan Anda pada kolom komentar dibawah terima kasih.
Sumber Source Code https://www.pygame.org/project/3314/
Akhir kata dari Panduan Code jangan lupa titik koma.
Coba cari lagi apa yang ada inginkan pada kolom berikut:
Bantu Apresiasi Bantu berikan apresiasi jika artikelnya dirasa bermanfaat agar penulis lebih semangat lagi membuat artikel bermanfaat lainnya. Terima kasih.