2 điểm bởi GN⁺ 2024-01-11 | 1 bình luận | Chia sẻ qua WhatsApp
  • Turing Complete là một trò chơi tập trung vào trải nghiệm tự mình giải quyết vấn đề và hiểu sâu hơn các khái niệm khoa học máy tính
  • Việc học bắt đầu từ cổng logic, theo cách thử tạo các cổng khác chỉ bằng cổng nand
  • Sau đó, bằng cách kết hợp bộ nhớ và các component, người chơi mở rộng các mạch đơn giản thành hình thức gần với kiến trúc máy tính thực tế
  • Máy tính do người chơi tạo ra hướng tới mục tiêu Turing complete, tức một cấu trúc có thể tính toán các thuật toán như Turing machine
  • Người chơi xây dựng lệnh assembly trên phần cứng tự tạo và giải các câu đố lập trình dựa trên mã nhị phân

Cách học khoa học máy tính qua trò chơi

  • Turing Complete là một trò chơi lấy chủ đề khoa học máy tính
  • Phù hợp với những người thích niềm vui khám phá lời giải và khoảnh khắc nhìn sâu hơn vào những khái niệm mình tưởng đã hiểu
  • Được cung cấp trên Steam với tên Play Turing Complete

Luồng học từ mạch điện đến kiến trúc máy tính

  • Cổng logic

    • Cổng logic là thành phần cơ bản của tính toán
    • Người chơi học nền tảng về mạch điện bằng cách tạo các cổng còn lại chỉ từ một cổng nand
  • Component và bộ nhớ

    • Có thể thêm bộ nhớ lên trên các cổng logic để tạo ra các component phức tạp hơn
    • Kết hợp các thành phần đã tạo theo cách này để mở rộng thành kiến trúc máy tính thực tế
  • Kiến trúc

    • Máy tính tự lắp ráp hướng tới mục tiêu Turing complete
    • Điều này có nghĩa là một máy tính có thể tính toán các thuật toán như Turing machine
  • Assembly

    • Máy tính được lập trình bằng mã nhị phân
    • Người chơi tạo các lệnh assembly để đơn giản hóa quá trình này và giải các câu đố lập trình trên phần cứng do mình tự tạo

1 bình luận

 
GN⁺ 2024-01-11
Ý kiến trên Hacker News
  • Tôi là kiểu người đơn giản: cứ thấy Turing Complete trên HN là để lại bình luận thiện cảm :)
    Tôi mua trò này vài năm trước, chơi thử vài màn, rồi để con trai khi đó 14 tuổi của tôi chơi trong kỳ nghỉ hè và thỉnh thoảng giúp nó. Ở màn cuối, con tôi đã viết một chương trình bằng ngôn ngữ giả hợp ngữ mà trò chơi dạy, để chiếc máy tính nó tự xây từ các cổng logic tự đi qua một mê cung ngẫu nhiên theo quy tắc bàn tay phải. Trò này thật sự tuyệt vời.
    Phàn nàn duy nhất của tôi là hồi tôi bằng tuổi đó thậm chí còn không có trò nào tương tự.
    Tôi cứ bị kẹt ở những màn giới thiệu bộ nhớ; có vẻ não tôi không tiếp nhận tốt khái niệm tick kế tiếp/trước đó. Dù vậy trên mạng có rất nhiều gợi ý và lời giải đầy đủ, nên nếu cần thì có thể nhập lời giải rồi chuyển sang màn tiếp theo.
    Bản thân trò chơi gần như đã hoàn thiện từ hơn một năm trước, và nhà phát triển đã tái triển khai toàn bộ để cải thiện hiệu năng và cho phép tạo CPU phức tạp hơn, v.v. Hy vọng khi phát hành bản cập nhật sẽ không làm hỏng thứ gì.
    Rất khuyến nghị.

    • Tôi nghĩ Rocky's Boots (1982) [0] là một trò tương tự như vậy?
      [0] https://en.wikipedia.org/wiki/Rocky%27s_Boots
    • Tôi đã bị kẹt đúng theo cách đó khi thiết kế chip bộ nhớ trong NAND to Tetris. Cuối cùng tôi phải xem đáp án phần đó; hóa ra tôi cũng không đi lệch lời giải nhiều lắm, nhưng tôi không hiểu cú pháp hoạt động.
      Điều tôi đã làm là:
      Mux(a=out, b=in, sel=load, out=muxOut)
      DFF(in=muxOut, out=DFFOut)
      Dòng cuối phải là như thế này:
      DFF(in=muxOut, out=DFFOut, out=out)
      Dù vậy Turing Complete trông như một người bạn đồng hành hoàn hảo của NAND to Tetris. Chỉ có điều dường như nó chỉ bán trên Steam, nên tôi ước có thể mua độc lập.
    • Tôi nhớ đến TIS-100Shenzhen I/O của Zachtronics.
  • Tôi rất thích thể loại game này nên bộ sưu tập game liên quan trên Steam của tôi đang dần tăng lên. Cũng có những trò không ở trên Steam, như nandgame.
    Turing Complete thuộc nhóm khá tốt trong số đó; phần mô phỏng có vẻ ổn định, và sau đợt tái cấu trúc trong giai đoạn early access ban đầu, các nhiệm vụ cũng được thiết kế khá tốt.
    Tuy nhiên UI không phải lúc nào cũng mượt, và phần hướng dẫn còn thiếu, nên có lẽ phù hợp hơn với những người đã từng đi qua quy trình tương tự trong các trình mô phỏng khác.
    Nếu bạn muốn tìm một trò tương tự giải thích khái niệm tốt hơn, tôi khuyên dùng Silicon Zeroes. Nhìn chung nó có cảm giác kém trau chuốt hơn một chút, nhưng có cấu trúc câu chuyện dễ thương, giải thích rõ hơn mỗi màn đang muốn giới thiệu điều gì, và đặc biệt xử lý các vấn đề liên quan đến clock tốt hơn nhiều.
    Nếu bạn thích phần giả hợp ngữ hơn phần mạch điện tử, tôi khuyên chơi TIS100 hoặc Shenzhen I/O.
    Nếu bạn thích các câu đố được thiết kế tốt, Human Resource Machine có thể hợp gu hơn.
    Tin này về Turing Complete cũng đáng xem: https://steamcommunity.com/app/1444480/eventcomments/3806156...
    Sau một năm không có cập nhật, vào tháng 8/2023 có tin “Xin lỗi, một bản cập nhật lớn mới sắp ra mắt!”, rồi sau đó lại tiếp tục im lặng.
    Có vẻ nhà phát triển bị sa lầy vào một đợt viết lại quy mô lớn khổng lồ và mất nhiều thời gian hơn dự kiến rất nhiều.
    Tôi đã chờ để chơi lại khi nó rời early access, nhưng lo rằng có khi mình sẽ phải chờ mãi.

    • Tôi đang cân nhắc làm một game điện toán tương tự theo phong cách Zachtronics. Hiện tôi đang làm một trình mô phỏng mạch, nhưng không biết nó có thật sự vui không, hay liệu tôi có tìm được cách làm cho nó vui không.
      Điện toán số có lợi thế về trừu tượng hóa. Bạn không cần biết định luật Ohm để nghĩ về các cổng logic.
      Khi chuyển sang điện toán tương tự, chắc chắn phải tìm cách dạy toán. Các phép toán không còn là Boolean nữa mà là sự kết hợp của nhiều phương trình điện. Dù chỉ là toán đơn giản, nó vẫn khác với tinh thần của các game lập trình thông thường.
      Dù vậy tôi tò mò không biết nghe có thú vị không, có đáng chơi thử không.
    • Nếu bạn đã phá đảo TIS-100 nhưng muốn một trải nghiệm hợp ngữ còn tẻ nhạt hơn, tôi đã đưa lên Steam một game một lệnh duy nhất (subleq) miễn phí tên SIC-1.
      https://store.steampowered.com/app/2124440/SIC1/
    • Nếu là fan Zachtronics thì tôi cũng khuyên chơi Opus MagnumExapunks. Trong Exapunks, bạn phải học một ngôn ngữ mới giống hợp ngữ để ra lệnh cho các tác nhân robot, và tôi đã chơi rất vui.
      Tôi nhớ mình chỉ chơi vài thử thách đầu của Human Resource Machine. Cảm giác câu đố quá dễ và quá trình giải cũng không khó lắm, nên tôi không đi tới phần sau.
    • Trong thể loại này, MHRD cũng rất xuất sắc. Tôi đã chơi nhiều lần. Thật vui khi biết còn có thêm các trò tương tự: https://store.steampowered.com/app/576030/MHRD/
    • Tôi tò mò không biết có game tương tự nào dạy machine learning hoặc deep learning không.
  • Vừa hay tôi mới mua trong đợt Steam Winter Sale.
    Ý tưởng rất hay, nhưng để trở thành một game đúng nghĩa hoặc một công cụ giáo dục độc lập thì cần được trau chuốt hơn nhiều.
    Với người đã có kiến thức liên quan thì ổn, nhưng với người mới bắt đầu, nó gần như ném bài toán cho họ với rất ít hướng dẫn, giảng dạy hay chuẩn bị, nên có thể sẽ là một trải nghiệm khá bực bội.
    Tôi cũng ước có tính năng hỗ trợ bố trí mạch. Khi di chuyển hoặc xoay linh kiện, nó bị tách khỏi dây nối, và phải vẽ lại từng dây thủ công. Ngay cả sau khi đã tìm ra logic đúng, việc triển khai vẫn có khá nhiều ma sát.

    • Ở một trong vài màn đầu có mẹo rằng nếu nhấp đúp vào linh kiện thì có thể di chuyển cả linh kiện và dây nối liên quan cùng nhau. Nhấp đúp sẽ tự động chọn không chỉ linh kiện mà cả các nút dây nối được kết nối. Dù vậy phần UI vẫn còn chỗ để trau chuốt thêm.
  • Tôi thật sự đã chơi trò này rất vui, và đến giờ vẫn thấy vui. Hay nhất là khi có thể ngồi chơi lâu một mạch
    Giống như Factorio, nếu nghỉ lâu rồi quay lại thì thường bắt đầu lại từ đầu còn vui hơn là chơi tiếp. Hoặc cứ ở lại sandbox giai đoạn cuối cũng được
    UI vẫn có thể được trau chuốt thêm, và trong vài năm qua đang có một đợt làm lại hiệu năng lớn nhưng vẫn chưa được phát hành. Gần đây cũng có tính năng xuất Verilog, nhưng tôi chưa thật sự dùng thử cho đàng hoàng
    Các linh kiện bổ sung được mở khóa ở giai đoạn sau khiến sandbox thật sự rất thú vị. Trò chơi cũng có hệ thống điểm, thêm yếu tố cạnh tranh, nhưng phải đi xa hơn rất nhiều so với chiếc máy tính đầu tiên mới mở khóa được
    Tôi đã chơi trò này khá nhiều trước khi quyết định học bằng khoa học máy tính ở tuổi trung niên, và nhờ vậy phần kiến trúc cơ bản trở nên rất dễ. Tôi cũng rất khuyến nghị nếu muốn ôn lại một cách thú vị
    “Thú vị” ở đây nghĩa là niềm vui khi nghịch logic Boolean trong một môi trường thân thiện, nên nếu bạn ghét ý tưởng đó thì “trò chơi” này có lẽ cũng không hợp với bạn

  • Ở công ty chúng tôi thực sự cũng đang dùng trò này và rất khuyến nghị
    Khoảng một năm trước, tôi cùng một đồng nghiệp đã chơi đến hết trong thời gian rảnh và thật sự rất thích. Chúng tôi thấy nó hoàn toàn phù hợp với các thực tập sinh/người học nghề ngành điện, vì trong chương trình đào tạo họ có học các khái niệm logic số như cổng, thanh ghi, thanh ghi dịch, bộ đếm, nhưng hiếm khi có nhiều cơ hội áp dụng chúng vào dự án thực tế
    Ngoài ra, do hạn chế về thời gian, những nội dung phát sinh như lập trình assembly cũng không còn được dạy kỹ nữa
    Chỉ cần thêm một chút hướng dẫn từ bên ngoài, trò chơi này thật sự giúp thúc đẩy mọi người hiểu cách các linh kiện logic số hoạt động và tự tay nghịch với chúng. Việc có thể đi đến mức viết một ngôn ngữ assembly đơn giản rồi dùng nó để giải đố là rất tuyệt, và cũng tạo động lực lớn cho học viên

  • Lúc mới mở trang, tôi tưởng nó trông như bản sao của Digital Logic Sim [1] của Sebastian Lague, nhưng xem video thì thấy thực tế đi sâu hơn nhiều, rất ấn tượng. Vì vậy tôi đã mua. Hy vọng trong thời gian gần tôi sẽ có lúc rảnh để thử nghịch
    1: https://sebastian.itch.io/digital-logic-sim

  • Trò chơi này có thể dễ dàng so sánh với một học kỳ nhập môn kỹ thuật máy tính, nhưng đặc biệt nhờ minigame assembly mà tôi thấy nó thú vị hơn
    Ở đại học, chúng tôi có bài tập thiết kế một số lệnh cụ thể cho CPU giả định và bài tập thiết kế một số mạch cụ thể, nhưng đó không phải là một thiết kế hoàn chỉnh hay hoạt động được
    Turing Complete thú vị ở chỗ bạn có thể tạo một CPU nhỏ hoàn chỉnh, đồng thời xây dựng kiến trúc tập lệnh của riêng mình và đào sâu đến mức nào tùy thích

  • Trò chơi tương tự: https://nandgame.com/
    Tuy nhiên Turing Complete có vẻ sâu hơn nand game

  • Tôi đã mua trò này và coi nó là một tác phẩm nghệ thuật
    Tôi không học chuyên ngành khoa học máy tính, nhưng đã làm lập trình viên khoảng 15 năm. Nhiều nội dung trong trò chơi là những thứ tôi đã biết ở mức trừu tượng hoặc từng mày mò qua với bo mạch Arduino, các dự án phụ nhỏ, v.v.
    Nhưng đây chính là giáo trình thực hành mà những người thích mày mò máy tính hằng khao khát

  • Exapunks(https://www.zachtronics.com/exapunks/) cũng đáng quan tâm. Nó dạy assembly tốt hơn lớp đại học của tôi

    • TIS-100 cũng rất tuyệt. Thậm chí còn khó hơn assembly thật
    • Không biết bạn đã thử Shenzhen I/O chưa