Membuat Game Snake dengan Python

Game Snake atau ular-ularan yang dulu eksis banget ya suka kita mainin waktu lagi santai, sempat kepikiran buat gimana bikinnya kayanya susah banget gimana ular bisa otomatis jadi makin panjang dan semakin cepat pergerakannya di tambah lagi posisi makanan yang tidak menentu alias acak

Jadi, iseng buat finally jadi dan program game berhasil dibuat, next time semoga bisa lebih belajar buat bikin game yang lain.

First bikin file dengan nama snake.py (py is program python format) di IDE teman-teman bisa pake Atom, VSCode, IDE Python Sublime dan yang lainya. Kalau sudah tinggal copy paste aja code dibawah ini

import random
import curses

s = curses.initscr()
curses.curs_set(0)
sh, sw = s.getmaxyx()
w = curses.newwin(sh, sw, 0, 0)
w.keypad(1)
w.timeout(100)

snk_x = sw/4
snk_y = sh/2
snake =[
    [snk_y,snk_x],
    [snk_y,snk_x-1],
    [snk_y,snk_x-2]
]
food = [sh/2, sw/2]
w.addch(food[0], food[1], curses.ACS_PI)

key = curses.KEY_RIGHT

while True:
    next_key = w.getch()
    key = key if next_key == -1 else next_key

    if snake[0][0] in [0, sh] or snake[0][1] in [0, sw] or snake[0] in snake[1:]:
        curses.endwin()
        quit()

    new_head = [snake[0][0], snake[0][1]]
    if key == curses.KEY_DOWN:
        new_head[0] +=1
    if key == curses.KEY_UP:
        new_head[0] -=1
    if key == curses.KEY_LEFT:
        new_head[1] -=1
    if key == curses.KEY_RIGHT:
        new_head[1] +=1

    snake.insert(0, new_head)

    if snake[0]== food:
        food = None
        while food is None:
            nf = [
                random.randint(1, sh-1),
                random.randint(1, sw-1)
            ]
            food = nf if nf not in snake else None
        w.addch(food[0],food[1],curses.ACS_PI)
    else:
        tail = snake.pop()
        w.addch(tail[0], tail[1], ' ')

    w.addch(snake[0][0], snake[0][1], curses.ACS_CKBOARD)

Oke kalau sudah, tinggal di debug/run, kalo berhasil tampilannya akan seperti ini ya.

Jadi kita cuma butuh waktu kurang lebih 5 menit ternyata untuk bikinnya pake language program python, wahh cepet banget dan temen-temen bisa bikin cuma dalam waktu 5 detik, hahhh???? ya tinggal copypas code 😀 .

Okee jadi… itu saja versi simplenya ya, kalo mau lebih kompleks ya tentu kita tinggal tambahin aja kondisi-kondisinya. oke sekian see you next…

8 Comments

  1. Kenapa ada problemnyakaya gini ya min?
    Module ‘curses’ has no ‘curs_set’ member
    Module ‘curses’ has no ‘newwin’ member
    Module ‘curses’ has no ‘endwin’ member

Leave a Reply

Your email address will not be published. Required fields are marked *

× Mau Merchandise? bisa, Chat WA yak