'만두 4개'란? 파이썬으로 만들 게임 이름입니다. 일종의 땅따먹기 게임이라 생각하시면 됩니다.
만두 4개 게임 요구 사항 ¶
- 3가지 모드 (1p, 2p, 1 vs 2)
- P2P 플레이 가능
- 높은 점수순으로 5위까지 저장
- 화면 인터페이스는 각 플레이어 위쪽 모서리에 '점수, 목숨, 내땅' 출력
- 게임 진행 시간 - 60초
- 목숨 3번
- 아이템
- 플레이어 속도 높이기
- 진행 시간 5초 늘리기
- 목숨 늘리기
- 업그레이드
- 3초간 멈추기
- 미사일
- 플레이어 속도 높이기
소스 코드 ¶
Upload='ManDu0.2.py'
~cpp from Tkinter import * MAX_WIDTH, MAX_HEIGHT = 314, 314 GAP = 7 CELL = 15 speed = 5 ovalSize = 1 rightLimit = 10 traceList = [] def keypress(event = None): global key key = event.keysym print key global i,direction if key in ['Right', 'Left', 'Up', 'Down', 'Space']: global dir global x, y global row, col if i == 0: row, col = GAP, GAP direction ='NONE' print row, col dir = key #traceList = [] if direction == 'Right' and key != 'Right': traceList.append((row,col)) elif direction == 'Left' and key != 'Left': traceList.append((row,col)) elif direction == 'Up' and key != 'Up': traceList.append((row,col)) elif direction == 'Down' and key != 'Down': traceList.append((row,col)) print traceList #ball = canvas.create_oval(x - 1, y - 1, x + CELL + 1, y + CELL + 1, fill='white', outline = 'white') #canvas.coords(ball, x - 1, y - 1, x + CELL + 1, y + CELL + 1) #img2 = canvas.create_oval(1, 1, 13, 13, fill='white', outline = 'white') #Right =0, Left=1, Up=2, Down=3 if dir == 'Right'and'Space' and x <= MAX_WIDTH-GAP-10 : x += speed canvas.move("oval", speed,0) canvas.create_line(row, col, row+speed, col, fill="red") row=row+speed direction='Right' elif dir == 'Left' and x >2: x -= speed canvas.move("oval", -speed,0) canvas.create_line(row, col, row-speed, col, fill="red") #canvas.create_line(x, y, row, col, fill="red") #print row, col, x, y row=row-speed direction='Left' elif dir == 'Up' and y > 2: y -= speed canvas.move("oval", 0,-speed) canvas.create_line(row, col, row, col-speed, fill="red") col=col-speed direction='Up' elif dir == 'Down' and y <= MAX_HEIGHT - GAP - 10: y += speed canvas.move("oval", 0,speed) canvas.create_line(row, col, row, col+speed, fill="red") col=col+speed direction='Down' #canvas.create_rectangle(GAP, GAP, MAX_WIDTH - GAP, MAX_HEIGHT - GAP) #canvas.create_image(x, y, anchor=NW, image=playerImg) #if dir == 'Right' and x < MAX_WIDTH - GAP - 10: # canvas.create_line(row, col+8, row + speed, col+8, fill="red") #elif dir == 'Left' and x > 2: # canvas.create_line(row + speed + 8, col+8, row + 8, col+8, fill="red") #elif dir == 'Up' and y > 2: # canvas.create_line(row + 8, col+ speed + 8, row + 8, col + 8 , fill="red") #elif dir == 'Down' and y < MAX_HEIGHT - GAP - 10: # canvas.create_line(row + 8, col, row + 8, col +speed, fill="red") i = i + 1 print i #elif key in ['Space']: # if key in ['Right', 'Left', 'Up', 'Down']: # print 'aaa' if __name__ == '__main__': root = Tk() root.title('Python Ground Eat') canvas = Canvas(root, width = MAX_WIDTH, height = MAX_HEIGHT, bg='white') canvas.create_rectangle(GAP, GAP, MAX_WIDTH - GAP, MAX_HEIGHT - GAP) canvas.pack(expand=YES, fill=BOTH) x = 2 y = 2 i = 0 #playerImg = PhotoImage(file='images/worm.gif') img = canvas.create_oval(x,y,x+10,y+10,width = 0, fill="red", tags="oval") #canvas.create_image(x, y, anchor=NW, image=playerImg) #canvas.create_image(x, y, anchor=NW, image=oval) root.bind("<Key>", keypress) root.mainloop()
~cpp import Tkinter import Image import ImageTk root = Tkinter.Tk() canvas = Tkinter.Canvas(root, width = 400, height = 300) canvas.pack() backImg = Image.open("wall.gif") frontImg = ImageTk.PhotoImage(Image.open("background.gif")) CELL = 10 (WIDTH, HEIGHT) = backImg.size imgList = [[None for i in range(WIDTH / CELL)] for j in range(HEIGHT / CELL)] row = 0 while(row != HEIGHT / CELL): col = 0 while(col != WIDTH / CELL): box = (col * CELL, row * CELL, col * CELL + CELL, row * CELL + CELL) imgList[row][col] = ImageTk.PhotoImage(backImg.crop(box)) col += 1 row += 1 canvas.create_image(0, 0 , anchor=Tkinter.NW, image = frontImg) row = 0 while(row != HEIGHT / CELL): col = 0 while(col != WIDTH / CELL): canvas.create_image(col * CELL, row * CELL , anchor=Tkinter.NW, image = imgList[row][col]) col += 1 row += 1 root.mainloop()