Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Trò chơi đời sống Game Life
Nội dung xem thử
Mô tả chi tiết
Trò chơi đời sống
Trần Thông Quế và Trần Văn Lộ
Các kiểu dữ liệu trừu tượng có nhiều ứng dụng trong thực tế đó là Bảng (TABLE).
Một trong các ứng dụng của bảng là Trò chơi đời sống (GAME LIFE). Đó là bài toán
được nhà toán học Anh J.H Conway nêu ra vào năm 1970.
Trước hết ta hãy làm quen với các khái niệm cơ bản của bài toán GAME LIFE.
Về mặt toán học, ta coi đời sống của một quần thể sống diễn ra trên một bảng vuông (lưới
ô vuông) không giới hạn.
Mỗi ô vuông có thể tồn tại cơ thể sống hoặc không.
Ô vuông có một cơ thể sống gọi là tế bào sống, ngược lại gọi là tế bào chết.
Các tế bào thay đổi từ thế hệ này sang thế hệ sau tuỳ thuộc vào các tế bào sống ở lân cận.
Mỗi tế bào có tám tế bào lân cận tiếp giáp với tế bào đã cho theo các cạnh và góc.
Các tế bào thay đổi theo những quy luật sau:
- Nếu số tế bào sống lân cận với tế bào cho trước mà không nhiều hơn 1 thì đến thế hệ sau
nó sẽ chết (chết vì cô độc).
- Nếu số tế bào sống lân cận với tế bào cho trước mà là 2 hoặc 3 thì tới thế hệ sau tế bào
cho trước ấy vẫn sống.
- Nếu số tế bào sống lân cận với tế bào cho trước mà nhiều từ 4 trở lên thì đến thế hệ sau
nó sẽ chết (chết vì quá đông).
- Nếu có đúng 3 tế bào sống lân cận với một tế bào chết thì ở thế hệ sau nó sẽ trở thành tế
bào sống. Trong trường hợp còn lại, một tế bào chết thì vẫn còn chết ở thế hệ sau.
- Trong mỗi thế hệ, sự sinh ra và chết đi diễn ra đồng thời và không ảnh hưởng tới nhau.
Dưới đây là các ví dụ minh hoạ (ký tự x biểu thị tế bào sống):
Để lập trình mô tả GAME LIFE ta có thể cài đặt các thế hệ của một cộng đồng nhờ một
mảng hai chiều khá lớn (dùng PASCAL FREE). Ta quy ước 1 biểu diễn tế bào sống, 0 biểu
diễn tế bào chết.
Để xác định được sự thay đổi của các tế bào từ thế hệ này sang thế hệ khác, ta chỉ cần đếm
số tế bào sống lân cận với tế bào đang xét và áp dụng các luật từ 1 đến 4 nêu trên.
Trong chương trình dưới đây, chúng tôi biểu diễn tế bào sống bằng những ô tô màu đỏ, còn
các tế bào chết là các ô trống (có màu nền).
Chương trình này cũng tạo hai phương thức nhập liệu: một là nhập liệu từ bàn phím, hai là