Xin lỗi, câu hỏi này hơi bí truyền, nhưng tôi không thể lấy nó ra khỏi đầu!
Tôi đang xem thuật toán fade được sử dụng trong trò chơi arcade DoDonPachi (cũng như nhiều game cũ khác):
Tôi đã viết một kịch bản python để chọn ra một vài pixel và theo dõi chúng trong suốt thời gian mờ dần. Đây là một mẫu đại diện của kết quả. Hàng đầu tiên của mỗi nhóm là giá trị màu bắt đầu, trong khi mỗi hàng tiếp theo là sự khác biệt giữa giá trị màu của khung hiện tại và giá trị màu của khung trước đó.
Starting Value: (132, 66, 189)
Frame 1: [9, 9, 8]
Frame 2: [8, 8, 8]
Frame 3: [8, 8, 8]
Frame 4: [8, 8, 9]
Frame 5: [9, 9, 8]
Frame 6: [8, 8, 8]
Frame 7: [8, 8, 8]
Frame 8: [8, 8, 9]
Frame 9: [9, 0, 8]
Frame 10: [8, 0, 8]
Frame 11: [8, 0, 8]
Frame 12: [8, 0, 9]
Frame 13: [9, 0, 8]
Frame 14: [8, 0, 8]
Frame 15: [8, 0, 8]
Frame 16: [8, 0, 9]
Frame 17: [0, 0, 8]
Frame 18: [0, 0, 8]
Frame 19: [0, 0, 8]
Frame 20: [0, 0, 9]
Frame 21: [0, 0, 8]
Frame 22: [0, 0, 8]
Frame 23: [0, 0, 8]
Frame 24: [0, 0, 0]
Frame 25: [0, 0, 0]
Frame 26: [0, 0, 0]
Frame 27: [0, 0, 0]
Frame 28: [0, 0, 0]
Frame 29: [0, 0, 0]
Starting Value: (132, 0, 0)
Frame 1: [9, 0, 0]
Frame 2: [8, 0, 0]
Frame 3: [8, 0, 0]
Frame 4: [8, 0, 0]
Frame 5: [9, 0, 0]
Frame 6: [8, 0, 0]
Frame 7: [8, 0, 0]
Frame 8: [8, 0, 0]
Frame 9: [9, 0, 0]
Frame 10: [8, 0, 0]
Frame 11: [8, 0, 0]
Frame 12: [8, 0, 0]
Frame 13: [9, 0, 0]
Frame 14: [8, 0, 0]
Frame 15: [8, 0, 0]
Frame 16: [8, 0, 0]
Frame 17: [0, 0, 0]
Frame 18: [0, 0, 0]
Frame 19: [0, 0, 0]
Frame 20: [0, 0, 0]
Frame 21: [0, 0, 0]
Frame 22: [0, 0, 0]
Frame 23: [0, 0, 0]
Frame 24: [0, 0, 0]
Frame 25: [0, 0, 0]
Frame 26: [0, 0, 0]
Frame 27: [0, 0, 0]
Frame 28: [0, 0, 0]
Frame 29: [0, 0, 0]
Starting Value: (165, 156, 222)
Frame 1: [9, 8, 8]
Frame 2: [8, 8, 8]
Frame 3: [8, 8, 8]
Frame 4: [8, 9, 9]
Frame 5: [9, 8, 8]
Frame 6: [8, 8, 8]
Frame 7: [8, 8, 8]
Frame 8: [8, 9, 9]
Frame 9: [9, 8, 8]
Frame 10: [8, 8, 8]
Frame 11: [8, 8, 8]
Frame 12: [8, 9, 9]
Frame 13: [9, 8, 8]
Frame 14: [8, 8, 8]
Frame 15: [8, 8, 8]
Frame 16: [8, 9, 9]
Frame 17: [9, 8, 8]
Frame 18: [8, 8, 8]
Frame 19: [8, 8, 8]
Frame 20: [8, 0, 9]
Frame 21: [0, 0, 8]
Frame 22: [0, 0, 8]
Frame 23: [0, 0, 8]
Frame 24: [0, 0, 9]
Frame 25: [0, 0, 8]
Frame 26: [0, 0, 8]
Frame 27: [0, 0, 8]
Frame 28: [0, 0, 0]
Frame 29: [0, 0, 0]
Starting Value: (156, 90, 206)
Frame 1: [8, 8, 8]
Frame 2: [8, 8, 9]
Frame 3: [8, 8, 8]
Frame 4: [9, 9, 8]
Frame 5: [8, 8, 8]
Frame 6: [8, 8, 9]
Frame 7: [8, 8, 8]
Frame 8: [9, 9, 8]
Frame 9: [8, 8, 8]
Frame 10: [8, 8, 9]
Frame 11: [8, 8, 8]
Frame 12: [9, 0, 8]
Frame 13: [8, 0, 8]
Frame 14: [8, 0, 9]
Frame 15: [8, 0, 8]
Frame 16: [9, 0, 8]
Frame 17: [8, 0, 8]
Frame 18: [8, 0, 9]
Frame 19: [8, 0, 8]
Frame 20: [0, 0, 8]
Frame 21: [0, 0, 8]
Frame 22: [0, 0, 9]
Frame 23: [0, 0, 8]
Frame 24: [0, 0, 8]
Frame 25: [0, 0, 8]
Frame 26: [0, 0, 0]
Frame 27: [0, 0, 0]
Frame 28: [0, 0, 0]
Frame 29: [0, 0, 0]
Như bạn có thể thấy, 8 hoặc 9 bị trừ khỏi từng thành phần màu trong mỗi khung. Hơn nữa, 9 luôn xuất hiện ba khung hình sau 8, mặc dù giá trị trừ bắt đầu là khác nhau đối với mỗi thành phần màu. Cũng lưu ý rằng mỗi thành phần màu đạt 0 (nghĩa là màu đen) với chênh lệch 8 hoặc 9, không phải là phần còn lại tùy ý. Điều này có nghĩa là chu kỳ giá trị bị trừ là 8,8,8,9 không bao giờ bị phá vỡ! (Thuật toán này có thể được viết để đảm bảo rằng khung hình mờ cuối cùng trơn tru như các thuật toán khác.)
Bây giờ, điều này đánh đố tôi. Theo tính toán của tôi, nếu bạn đảo ngược quy trình - nghĩa là thực hiện chu trình 8,8,8,9 và tổng hợp lại để tìm tất cả các kết hợp có thể có trong 29 khung - bạn chỉ nhận được 52 số duy nhất. Nhưng khi nó xảy ra, mỗi thành phần màu là một thành viên của bộ này! Điều này có nghĩa là các màu được chọn riêng cho thuật toán mờ dần (không chắc) hoặc thuật toán mờ được thiết kế xung quanh bảng màu của trò chơi. Nhưng làm thế nào trên trái đất ai đó có thể nhận ra rằng nếu bạn lấy 8,8,8,9, thay đổi chu kỳ một cách thích hợp và tiếp tục trừ các số từ mỗi thành phần màu trong bảng màu của bạn, cuối cùng bạn sẽ đạt 0 cho mỗi màu? ! Có một số mẹo toán học mà tôi đang thiếu. Nó là gì?