Skip to content

Commit de25145

Browse files
Merge pull request steam-bell-92#1410 from Kirtan-pc/add-wasd-controls-2048
feat: add case-insensitive WASD controls to 2048 game
2 parents e3698d5 + d638d6a commit de25145

1 file changed

Lines changed: 13 additions & 23 deletions

File tree

games/2048-Game/2048-Game.py

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def __init__(self, root):
7777

7878
self.instruction_label = tk.Label(
7979
root,
80-
text="🎮 Controls: ← ↑ → ↓ | Merge same numbers | Goal: 2048 🎯",
80+
text="🎮 Controls: WASD / ← ↑ → ↓ | Merge same numbers | Goal: 2048 🎯",
8181
font=("Arial", 10),
8282
fg="#6a635b",
8383
)
@@ -262,29 +262,21 @@ def check_game_over(self):
262262
return True
263263

264264
def handle_keypress(self, event):
265-
key = event.keysym
266-
moved = False
267-
268-
if key == "Left":
269-
moved = self.move_left()
270-
271-
elif key == "Right":
272-
moved = self.move_right()
273-
274-
elif key == "Up":
275-
moved = self.move_up()
276-
277-
elif key == "Down":
278-
moved = self.move_down()
279-
280-
else:
265+
key = event.keysym.lower() if len(event.keysym) == 1 else event.keysym
266+
move_map = {
267+
"Left": self.move_left, "a": self.move_left,
268+
"Right": self.move_right, "d": self.move_right,
269+
"Up": self.move_up, "w": self.move_up,
270+
"Down": self.move_down, "s": self.move_down,
271+
}
272+
if key not in move_map:
281273
return
282-
283-
274+
275+
moved = move_map[key]()
284276

285277
if moved:
286278
self.add_new_tile()
287-
self.moves_left -=1
279+
self.moves_left -= 1
288280

289281
if self.score > self.high_score:
290282
self.high_score = self.score
@@ -294,9 +286,7 @@ def handle_keypress(self, event):
294286

295287
# FIXED BUG:
296288
# Game over is now checked even when no movement happens
297-
if self.check_game_over():
298-
self.game_over()
299-
if self.moves_left<=0:
289+
if self.check_game_over() or self.moves_left <= 0:
300290
self.game_over()
301291

302292
def game_over(self):

0 commit comments

Comments
 (0)