11,520 thế hệ trên mỗi đồng hồ đếm / 10,016 x 6,796 hộp / 244,596 số pop
Có bạn đi ... Thật vui.
Chà, thiết kế chắc chắn không tối ưu. Không phải từ quan điểm của hộp giới hạn (các chữ số 7 đoạn đó là rất lớn ), cũng không phải từ số lượng dân số ban đầu (có một số thứ vô dụng, và một số thứ chắc chắn có thể được làm đơn giản hơn) và tốc độ thực thi - tôi ... 'tôi không chắc.
Nhưng, này, nó thật đẹp. Nhìn:
Chạy đi!
Lấy thiết kế từ ý chính này . Sao chép toàn bộ văn bản tập tin vào clipboard.
Mới : đây là phiên bản có cả chỉ số AM và PM cho người yêu cầu.
Chuyển đến trình giả lập cuộc sống JavaScript Conway trực tuyến . Nhấp vào nhập , dán văn bản thiết kế. Bạn nên xem thiết kế. Sau đó, đi đến cài đặt và đặt bước tạo thành 512 hoặc một cái gì đó xung quanh các dòng đó, hoặc bạn sẽ phải đợi mãi để xem màn hình đồng hồ cập nhật.
Nhấp vào chạy , chờ một chút và ngạc nhiên!
Liên kết trực tiếp đến phiên bản trong trình duyệt.
Lưu ý rằng thuật toán duy nhất làm cho thiết kế khổng lồ này có thể sử dụng được là hashlife. Nhưng với điều này, bạn có thể đạt được toàn bộ đồng hồ trong vài giây. Với các thuật toán khác, thật không thực tế khi thậm chí thấy giờ thay đổi.
Làm thế nào nó hoạt động
Nó sử dụng công nghệ p30. Chỉ cần những điều cơ bản, tàu lượn và tàu vũ trụ nhẹ. Về cơ bản, thiết kế đi từ trên xuống:
- Ở trên đỉnh, có đồng hồ. Đó là một chiếc đồng hồ thời kỳ 11520. Lưu ý rằng bạn cần khoảng 10.000 thế hệ để đảm bảo màn hình được cập nhật phù hợp, nhưng thiết kế vẫn phải ổn định với đồng hồ có thời gian nhỏ hơn (khoảng 5.000 hoặc hơn - đồng hồ cần phải là bội số của 60).
- Sau đó, có giai đoạn phân phối đồng hồ. Tàu lượn đồng hồ được sao chép trong một cây cân bằng, vì vậy cuối cùng, có 32 tàu lượn đến cùng một thời điểm chính xác đến giai đoạn quầy.
- Giai đoạn truy cập được thực hiện bằng cách sử dụng chốt RS cho từng trạng thái và cho từng chữ số (chúng tôi đang tính bằng số thập phân). Vì vậy, có 10 trạng thái cho chữ số bên phải của phút, 6 trạng thái cho chữ số bên trái của minuts và 12 trạng thái cho giờ (cả hai chữ số của giờ được hợp nhất ở đây). Đối với mỗi nhóm này, bộ đếm hoạt động giống như một thanh ghi thay đổi.
- Sau giai đoạn đếm, có các bảng tra cứu. Chúng chuyển đổi các xung trạng thái để hiển thị các hành động BẬT / TẮT.
- Sau đó, màn hình hiển thị chính nó. Các phân đoạn được thực hiện đơn giản với nhiều chuỗi LWSS. Mỗi phân khúc có chốt riêng để duy trì trạng thái của nó. Tôi có thể đã tạo một logic HOẶC đơn giản cho các trạng thái chữ số để biết rằng một phân đoạn phải BẬT hoặc TẮT và thoát khỏi các chốt này, nhưng sẽ có trục trặc cho các phân đoạn không thay đổi, khi các chữ số thay đổi (vì độ trễ tín hiệu). Và sẽ có những dòng tàu lượn dài đến từ bảng tra cứu đến các phân đoạn chữ số. Vì vậy, nó sẽ không đẹp như thế. Và nó cần phải được. Đúng.
Dù sao, thực sự không có gì bất thường trong thiết kế này. Không có phản ứng tuyệt vời đã được phát hiện trong quá trình này, và không có sự kết hợp thực sự thông minh mà không ai nghĩ đến trước đây. Chỉ các bit được lấy ở đây và ở đó và đặt lại với nhau (và tôi thậm chí không chắc là mình đã làm theo cách "đúng" - tôi thực sự hoàn toàn mới đối với điều này). Nó đòi hỏi rất nhiều kiên nhẫn, tuy nhiên. Làm cho tất cả những chiếc tàu lượn đó xuất hiện đúng lúc, đúng vị trí đã bị trầy xước.
Tối ưu hóa có thể:
- Thay vì sao chép và phân phối cùng một đồng hồ gốc cho các ô truy cập n , tôi có thể chỉ cần đặt cùng một khối đồng hồ n lần (một lần cho mỗi ô truy cập). Điều này thực sự sẽ đơn giản hơn nhiều. Nhưng sau đó tôi sẽ không thể điều chỉnh nó dễ dàng bằng cách thay đổi đồng hồ tại một điểm duy nhất ... Và tôi có một nền tảng điện tử, và trong một mạch thực, điều đó sẽ là sai lầm khủng khiếp.
- Mỗi phân khúc có chốt RS riêng. Điều này đòi hỏi các bảng tra cứu để xuất cả hai xung R và S. Nếu chúng ta có một chốt chỉ chuyển trạng thái của nó từ một xung đầu vào chung, chúng ta có thể làm cho các bảng tra cứu lớn bằng một nửa. Có một chốt như vậy cho dấu chấm PM, nhưng nó rất lớn và tôi không thể đưa ra một cái gì đó thiết thực hơn.
- Làm cho màn hình nhỏ hơn. Nhưng điều đó sẽ không đẹp như thế. Và nó cần phải được. Đúng.