27/08/2019, 23:21

Lạ kỳ game Rắn Săn Mồi đồ họa cực xấu, dùng chính mã nguồn của mình để làm màn chơi

Rắn Săn Mồi bản mới mới độc nhất vô nhị với hình ảnh cực kỳ thô sơ, nhưng ẩn chứa trong đó là khả năng lập trình đầy “ảo ma” khi sử dụng chính bộ mã nguồn của game để làm màn chơi? Có lẽ không cần phải nói quá nhiều về Rắn Săn Mồi – tựa game huyền thoại từng “làm ...

Rắn Săn Mồi bản mới mới độc nhất vô nhị với hình ảnh cực kỳ thô sơ, nhưng ẩn chứa trong đó là khả năng lập trình đầy “ảo ma” khi sử dụng chính bộ mã nguồn của game để làm màn chơi?

Có lẽ không cần phải nói quá nhiều về Rắn Săn Mồi – tựa game huyền thoại từng “làm mưa làm gió” trên các dòng máy điện thoại đen trắng thời điểm đầu những năm 2000. Bên cạnh phiên bản gốc đã thành kinh điển, đã có hàng trăm phiên bản khác nhau được ra đời.

Tuy nhiên, đã bao giờ bạn hình dung ra một Rắn săn mồi bản mới, thuộc dạng độc nhất vô nhị với hình ảnh cực kỳ thô sơ, nhưng ẩn chứa trong đó là khả năng lập trình đầy “ảo ma” khi sử dụng chính bộ mã nguồn của game để làm màn chơi?

Theo đó, không rõ vì quá rảnh rỗi hay đơn giản vì muốn khoe khoang khả năng lập trình siêu đẳng của mình, lập trình viên Taylor Conor đã tạo ra một phiên bản Rắn săn mồi có tên gọi Quinesnake. Nhìn qua tựa game này, chắc hẳn bạn sẽ chẳng thấy ấn tượng chút nào. Đồ họa của game cực xấu, với phần hình ảnh Con rắn và mồi được tạo nên từ những dòng ký tự trông khá…khó hiểu (?!)

Lạ kỳ game Rắn Săn Mồi đồ họa cực xấu, dùng chính mã nguồn của mình để làm màn chơi - Ảnh 1.

Tuy nhiên, đây lại chính là những điểm độc đáo nhất của QuineSnake. Tựa game này thực chất một dạng chương trình được gọi là Quine – hay còn được biết với tên gọi chương trình tự in bản thân (self-replicating program) trong khoa học máy tính.  Điều đặc biệt của dạng chương trình này ở chỗ, nó không nhận bất kì một dữ liệu đầu vào nào. Chức năng duy nhất của Quine chỉ đơn giản là dùng chính bộ mã nguồn của mình để tạo ra một phiên bản sao chép.

Thông thường, chúng ta “chơi game” khi trò chơi ghi nhận các dữ liệu đầu vào từ thiết bị nội vi như bàn phím của người chơi. Tuy nhiên, nếu QuineSnake là một chương trình Quine, làm thế nào để chúng ta có thể “chơi” được tựa game này?

Lạ kỳ game Rắn Săn Mồi đồ họa cực xấu, dùng chính mã nguồn của mình để làm màn chơi - Ảnh 2.

Đương nhiên, tác giả của game đã sử dụng một chút chiêu trò để “lách luật”. Cụ thể, Quinesnake sử dụng một vòng lặp sự kiện (event loop) để theo dõi và ghi nhận các dữ liệu đầu vào từ thao tác bàn phím của bạn. Trong khi các dòng mã liên tục được Quine in ra từ mã nguồn của mình, vòng lặp sự kiện dựa trên các dữ liệu này để làm nổi bật (bằng cách tô màu) một phần ký tự, qua đó tạo nên phần hình ảnh con rắn đang đuổi theo mồi giữa vô vàn dòng code.

Nói cách khác, hãy thử coi những dòng mã tạo ra trò chơi giống như một chương trình (con) được nhúng bên trong  mã nguồn chương trình Quine. Bản thân Quine vẫn làm đúng chức năng của nó khi tự tạo ra một bản in dựa trên mã nguồn của mình. Và đương nhiên, chương trình không hề nhận bất kỳ dữ liệu đầu vào nào  – khá “hack não” và ảo ma đúng không?

TechTalk via GenK

0