Thử thách: Viết chương trình ngắn nhất triển khai tự động hóa di động Trò chơi Cuộc sống của John H. Conway . [ liên kết ]
CHỈNH SỬA: Sau khoảng một tuần cạnh tranh, tôi đã chọn được người chiến thắng: pdehaan , vì đã quản lý để đánh bại giải pháp Matlab bằng một ký tự với perl.
Đối với những người chưa từng nghe nói về Game of Life, bạn sẽ có một lưới ô vuông (lý tưởng là vô hạn). Các ô có thể sống (lấp đầy) hoặc chết (trống). Chúng tôi xác định ô nào còn sống trong bước thời gian tiếp theo bằng cách áp dụng các quy tắc sau:
- Bất kỳ ô sống nào có ít hơn hai người hàng xóm còn sống sẽ chết, như thể do dân số ít hơn.
- Bất kỳ phòng giam nào có nhiều hơn ba người hàng xóm còn sống sẽ chết, như thể do quá đông.
- Bất kỳ ô sống nào có hai hoặc ba người hàng xóm sống tiếp tục sống cho thế hệ tiếp theo.
- Bất kỳ tế bào chết nào có chính xác ba hàng xóm sống đều trở thành tế bào sống, như thể bằng cách sinh sản.
Chương trình của bạn sẽ đọc trong tệp văn bản ASCII 40x80 ký tự được chỉ định làm đối số dòng lệnh, cũng như số lần lặp (N) để thực hiện. Cuối cùng, nó sẽ xuất ra tệp ASCII out.txt trạng thái của hệ thống sau N lần lặp.
Đây là một ví dụ chạy với các tệp có liên quan:
in.txt:
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
..................................XX............................................
..................................X.............................................
.......................................X........................................
................................XXXXXX.X........................................
................................X...............................................
.................................XX.XX...XX.....................................
..................................X.X....X.X....................................
..................................X.X......X....................................
...................................X.......XX...................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
Lặp lại 100 lần:
Q:\>life in.txt 100
Kết quả đầu ra (out.txt)
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
..................................XX............................................
..................................X.X...........................................
....................................X...........................................
................................XXXXX.XX........................................
................................X.....X.........................................
.................................XX.XX...XX.....................................
..................................X.X....X.X....................................
..................................X.X......X....................................
...................................X.......XX...................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
Những quy định:
- Bạn cần sử dụng I / O tệp để đọc / ghi tệp.
- Bạn cần chấp nhận một tệp đầu vào và số lần lặp làm đối số
- Bạn cần tạo out.txt (ghi đè nếu nó tồn tại) ở định dạng được chỉ định
- Bạn không cần phải xử lý các cạnh của bảng (bao quanh, lưới vô hạn. Vv)
- EDIT: Bạn làm cần phải có dòng mới trong tập tin đầu ra của bạn.
Người chiến thắng sẽ được xác định bằng số ký tự.
Chúc may mắn!