4 điểm bởi GN⁺ 2025-05-28 | 2 bình luận | Chia sẻ qua WhatsApp
  • Lazy Tetris là một trò chơi tự động diễn ra khác với Tetris truyền thống, nơi người dùng không cần tự mình di chuyển các khối
  • Người dùng có thể bắt đầu trò chơi chỉ với một cú nhấp chuột
  • Thuật toán tìm vị trí tối ưu và tự động đặt các khối
  • Giảm thiểu sự can thiệp của người dùng và mang lại trải nghiệm thiên về quan sát
  • Khác với Tetris truyền thống, điểm đặc trưng là lối chơi thụ động

Giới thiệu về Lazy Tetris

Lazy Tetris là một trò chơi Tetris tự động mà người dùng không cần trực tiếp thao tác trong từng lượt.

Đặc điểm

  • Giảm thiểu thao tác của người dùng
    • Sau khi trò chơi bắt đầu, người dùng không cần tự điều khiển bằng các phím mũi tên mà game sẽ tự động diễn ra
  • Sử dụng thuật toán tự động
    • Thuật toán bên trong sẽ xác định vị trí tối ưu cho từng khối Tetris và đặt chúng
  • Giao diện trực quan
    • Có thể bắt đầu trò chơi chỉ với một lần nhấp vào nút "Start"
  • Tập trung vào trải nghiệm quan sát
    • Người dùng có được trải nghiệm theo dõi quá trình trò chơi tự vận hành

Điểm khác biệt so với Tetris truyền thống

  • Khác với các trò chơi Tetris thông thường, không cần nhập lệnh để di chuyển hoặc xoay khối trực tiếp
  • Toàn bộ quá trình chơi được tự động hóa, giúp dễ dàng hiểu được quá trình ra quyết định của thuật toán

Góc nhìn ứng dụng

  • Đây là một nền tảng cho phép trải nghiệm khái niệm tối ưu hóa thuật toán và tự động hóa thông qua một trò chơi đơn giản
  • Phù hợp để người mới học lập trình và thiết kế game sử dụng trong việc học các khái niệm tự động hóa

2 bình luận

 
ahwjdekf 2025-06-01

Là nói hay là đánh rắm

 
GN⁺ 2025-05-28
Ý kiến trên Hacker News
  • Cảm ơn mọi người đã chơi và để lại những đề xuất, bình luận hay. Cuối tuần này rất có thể tôi sẽ thêm một số đề xuất: multi-bag thay vì hoàn toàn ngẫu nhiên, bỏ tự động xóa khi kết thúc game, làm trống hold khi reset game, đổi tên thành LAZY PUBLIC DOMAIN BLOCK GAME, v.v.
    UX có lẽ cũng cần tốt hơn. Có những đề xuất đã được triển khai rồi, nhưng có vẻ chưa trực quan hoặc khó tìm
    Nhấp vào ghost sẽ bật mảnh ghost. Cá nhân tôi không thích mảnh ghost nên luôn tắt, và vì đây là game của tôi nên mặc định cũng tắt
    Chạm trái/phải để xoay trái/phải; phím mũi tên lên và Shift trên bàn phím cũng xoay trái/phải; Delete là UNDO, Enter là HOLD
    Có thể kéo bằng cảm ứng hoặc kéo bằng chuột để di chuyển mảnh, cũng có thể kéo lên. Không cần nhấp trực tiếp vào mảnh, có thể kéo từ bất cứ đâu
    Chạm hai ngón là DROP, tôi tự chơi như vậy và thấy rất đã. Chạm ba ngón là HOLD
    Trên iOS, nếu lưu vào màn hình chính thì sẽ chơi như một app toàn màn hình
    Khi làm “Tetris” (xóa bốn hàng cùng lúc), một nút quà bí mật sẽ xuất hiện, nhưng đó chỉ là liên kết tới sách của tôi. Vì mọi thứ tôi làm đều là trò moi tiền vô hồn mà
    Vì khá lười nên tôi ngồi trên sofa, dùng điện thoại kết hợp rosebud.ai và ChatGPT để làm. Tối ưu hiệu năng thì phải mở laptop và tự làm, phần đó đúng là giống công việc thật nên tôi không thích lắm. Dù vậy vibe coding vẫn vui
    Game này tôi làm cho chính mình để chơi theo cách tôi thích, và tôi rất vui khi người khác cũng thích

    • Multi-bag có thể hơi quá phức tạp. Cách hay là giữ một cửa sổ trượt gồm n mảnh gần nhất như TGM, rồi rút lại tối đa m lần cho tới khi ra mảnh không có trong cửa sổ đó
      Tôi nhớ thường n là 4, m là 6. Dễ triển khai, hoạt động tốt và cũng không tạo cảm giác quá dễ đoán như single bag
      Nếu nạp sẵn hai mảnh S và hai mảnh Z vào cửa sổ lúc đầu, có thể giảm xác suất chúng xuất hiện ở giai đoạn mở đầu, đỡ khó chịu hơn
    • Tôi thích thái độ “mình làm game cho mình, người khác thích thì tốt”
      Khi tới lần hold đầu tiên, tôi quên mất phím nên phải quay về màn hình chính để kiểm tra, và nhấp chuột vào “hold” thì không có gì xảy ra. Nếu có danh sách phím ở bên cạnh hoặc bên dưới “hold” thì tốt
      Xem thử mẫu sách thấy có vẻ thú vị, có khi tôi sẽ mua thật. Trông cũng có thể làm thành game bài
      Cũng tốt cho người có con. Có thể dừng ngang bất cứ lúc nào, rất tuyệt
    • Nghe như cuối cùng bạn sẽ muốn phát minh ra MS Excel vậy
    • Lỗi: khi kéo, rất hay xuất hiện văn bản bị chọn. Các tùy chọn đọc to hoặc tạo liên kết bật lên, rồi sau đó không thể kéo vật thể trên trang được nữa
    • Có lẽ nên căn theo cách điều khiển của tetris.com chính thức
  • Những thứ bạn làm thật sự rất vui. Xem cả thứ nhỏ kỳ quặc này do cùng một người làm nữa: https://passwordbasket.com :)

    • Tôi chưa từng nghĩ trình tạo mật khẩu có thể vui, nhưng giờ đã đổi ý. Giờ tôi tin rằng trình tạo mật khẩu cũng nên vui
    • Tôi cười lớn tới mức lo có thể đã làm phiền hàng xóm. Thật sự xuất sắc
    • Tuyệt vời. Việc cố tạo mật khẩu “passwordpassword” rất thú vị
      Nhân tiện, kết quả tốt nhất với thiết lập mặc định là Pa.s, sau đó tôi nổi cáu với một chuỗi không thể nhận ra và chơi lại
    • Cảm ơn rất nhiều. Đó là tất cả những gì tôi muốn nghe trên đời
    • Hay đấy, và sẽ còn hay hơn nếu các ký tự của mật khẩu được tạo rơi thẳng vào cái giỏ. Chỉ là ý kiến cá nhân thôi
      Và cũng làm tôi nhớ tới The Password Game:
      https://news.ycombinator.com/item?id=36493715
  • Tôi chơi thử một lúc mà không thấy mảnh L nào xuất hiện. Có vẻ các mảnh được chọn ngẫu nhiên
    Nếu muốn giảm stress hơn nữa, có thể dùng hệ thống single bag. Nó nằm ở cuối trang trong liên kết dưới đây
    [1] https://strategywiki.org/wiki/Tetris/Pieces#L_piece

    • Ý tưởng tuyệt vời. Cảm ơn đã chia sẻ, tôi sẽ thêm multi-bag
    • Tôi cũng gặp chuyện tương tự với mảnh I, và cứ cố chấp chừa các khe rộng một ô rồi tiếp tục xếp hàng. Cuối cùng khi các mảnh I xuất hiện và tôi hoàn tất, cảm giác cực kỳ thỏa mãn
  • Nhân chuyện các bản triển khai Tetris khác thường, tôi đã làm một bản clone Tetris dựa trên cosmopolitan libc dành cho người dùng màn hình chữ nổi
    Tức là các mảnh “rơi” theo chiều ngang, và các khối được render bằng chữ nổi Unicode
    https://github.com/mlang/betris
    Xin gửi lời cảm ơn lớn tới @jart. cosmo thật sự giúp ích rất nhiều cho công việc TUI đa nền tảng

    • Trước đây tôi từng làm một thứ giống Tetris thường, nhưng có thể di chuyển mảnh lên trên để chống lại trọng lực. Thực ra lối chơi không thay đổi nhiều
      Cuối cùng, khi đi đủ xa, tốc độ nhấn ‘lên’ không thắng nổi trọng lực, và trọng lực chiến thắng
    • Tôi rất thích cosmo. Cảm ơn @jart đã phát triển nó
  • Khi chơi, tôi có một suy nghĩ thú vị về việc thứ này liên hệ thế nào với công việc startup
    Ngay cả khi đã loại bỏ ràng buộc thời gian và trọng lực, lại còn có undo, vẫn rất dễ đưa ra những lựa chọn duy trì cấu trúc nhưng để lại các khoảng trống khó lấp. Cuối cùng chúng dẫn tới đống lộn xộn khó dọn
    Dù có thể nhìn trước phần nào, vẫn khó thoát khỏi tâm lý con người muốn sắp cấu trúc để chờ một mảnh cụ thể có thể đến hoặc không đến trong tương lai gần. Nó phần nào giống việc xây cho những khách hàng không tồn tại hoặc có thể sẽ chẳng bao giờ tới
    Dù có mọi lợi thế, bạn vẫn có thể tự đẩy mình vào ngõ cụt và thất bại
    Nếu dành thời gian quan sát, có rất nhiều điều học được từ game này

  • Dù vậy, khi cố chơi Tetris “toàn màn hình”, tôi đã tự giết mình. Không hiểu sao tôi luôn tìm được cách đưa stress trở lại

    • Tôi không hiểu vì sao đó lại là stress. Câu đố tìm cách lấp đầy màn hình tạo cảm giác vui và thư giãn
      Tuy nhiên, để chơi kiểu đó thì tôi muốn có vài cải tiến
      Đừng kết thúc game ngay khi một mảnh chạm hàng trên cùng; hãy cho tiếp tục miễn là vẫn còn chỗ để đặt. Vừa xem lại thì có vẻ không phải lúc nào cũng vậy, mà chỉ khi vị trí đặt mảnh tiếp theo không vừa
      Ngay cả khi không còn chỗ, nếu vẫn còn hàng có thể xóa thì đừng kết thúc game. Game chỉ nên kết thúc khi hoàn toàn không còn hành động nào khả thi. Lý tưởng nhất là khi kết thúc game đừng tự động xóa sân chơi, hãy để người chơi ngắm kết quả, và thêm nút reset để xóa thủ công
      Khi bắt đầu lại, có vẻ hold nên được làm trống. Hold lớn hơn cũng hay. Điểm số thì sao? Thư giãn không có nghĩa là không thể cạnh tranh
      Áp lực thời gian tạo cảm giác stress với tôi, nhưng nếu có thời gian giải và sai cũng không mất tiến trình thì câu đố khó vẫn ổn
      Trước khi game kết thúc, tôi đã lấp được 17 hàng mà không xóa một hàng nào. Có ai thắng được không? Chắc cần khá may mắn với các mảnh xuất hiện ở cuối :-)
    • Không hiểu sao nghe như một ẩn dụ khá hợp về cuộc đời
  • Yêu cầu tính năng: để lười hơn nữa, sẽ tốt nếu cho xem trước vị trí mảnh sẽ hạ xuống như hình ghost

    • Có nút bật/tắt ghost ở bên phải
  • Tôi thích cách kéo mảnh xuống để đặt vào vị trí hơn. Việc mảnh đã xuống tận dưới và thả tay rồi mà vẫn phải bấm ‘drop’ riêng thì hơi khó chịu và không trực quan
    Sẽ tốt nếu khi thả kéo lúc mảnh đang chạm đáy thì tự động drop
    Dù vậy vẫn vui và thư giãn

  • Rất thích. Nó khiến tôi xem xét vai trò của áp lực thời gian trong game và vì sao việc tinh chỉnh nó lại là cốt lõi
    Khi có quá nhiều thời gian, game dễ hơn rất nhiều, tới mức với tôi nó mất vui. Chính điểm đó lại rất hay

  • Wow, ý tưởng thật sự tuyệt vời. Điều khiển trên di động cũng có độ hoàn thiện rất cao
    Không có các vấn đề như zoom ngẫu nhiên, chọn văn bản, cuộn kỳ lạ, và cảm giác như một app đã tải về