Mục lục:

Trò chơi Arduino Sorta Sudoku: 3 bước (có hình ảnh)
Trò chơi Arduino Sorta Sudoku: 3 bước (có hình ảnh)

Video: Trò chơi Arduino Sorta Sudoku: 3 bước (có hình ảnh)

Video: Trò chơi Arduino Sorta Sudoku: 3 bước (có hình ảnh)
Video: Normal People VS Programmers #coding #python #programming #easy #funny #short 2024, Tháng mười hai
Anonim
Trò chơi Arduino Sorta Sudoku
Trò chơi Arduino Sorta Sudoku

Rất nhiều người thích chơi Sudoku và các cháu ngoại thích trò chơi đoán, vì vậy tôi quyết định tạo một trò chơi “Sắp xếp Sudoku” di động. Trong phiên bản của tôi, trò chơi là một lưới 4x4 nhưng chỉ có một số được cung cấp. Ý tưởng là đoán phần còn lại của các số trong vài lần thử nhỏ nhất. Đó là một trò chơi đơn giản nhưng nó có thể gây nghiện khi bạn theo đuổi số điểm hoàn hảo là 15. Trò chơi đòi hỏi cả yếu tố may mắn cũng như logic và điểm số tốt nhất tôi từng thấy cho đến nay là 16. Hãy xem vì chẵn nếu bạn không quan tâm đến việc xây dựng trò chơi, có thể có một số yếu tố của phần mềm mà bạn có thể sử dụng trong một trong các dự án của riêng mình.

Bước 1: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng
Phần cứng

Phần cứng có thể dựa trên khá nhiều phiên bản Arduino. Tôi đã tạo mẫu bằng Nano và sau đó ghi mã vào chip ATMega328. Đó là cùng một con chip được sử dụng trong Nano nhưng việc sử dụng nó cho phép tạo ra một cấu trúc nhỏ gọn hơn và tiêu thụ ít điện năng hơn. Như bạn có thể thấy, tôi đã xây dựng mạch trên một bảng mạch nhỏ gắn trên mô-đun LCD. Một khía cạnh khác khác là Nano chạy ở tốc độ 16 MHz sử dụng tinh thể bên ngoài nhưng tôi đã chọn sử dụng bộ dao động 8 MHz tích hợp cho chip ATMega328. Điều đó giúp tiết kiệm các bộ phận và điện năng.

Màn hình LCD 2004 giao tiếp với Arduino theo cách giống như màn hình LCD 1602. Một sự khác biệt thú vị là ở địa chỉ của các vị trí hiển thị. Rõ ràng là có sự khác biệt bởi vì có bốn dòng thay vì hai, nhưng vào năm 2004, dòng thứ ba là phần mở rộng của dòng đầu tiên và dòng thứ tư là phần mở rộng của dòng thứ hai. Nói cách khác, nếu bạn có một chương trình thử nghiệm vừa gửi một chuỗi ký tự đến màn hình LCD, ký tự thứ 21 sẽ hiển thị ở đầu dòng thứ ba và ký tự thứ 41 sẽ quay trở lại đầu dòng đầu tiên. Phần mềm xử lý sự khác biệt đó bằng một bảng tra cứu địa chỉ LCD.

Đầu vào cho trò chơi là một ma trận chuyển đổi 4x4 tự chế. Mỗi công tắc tương ứng trực tiếp với vị trí tương đương trên màn hình. Ngoài ra còn có một công tắc nguồn và một công tắc đặt lại. Công tắc đặt lại sẽ xóa trò chơi cũ và tạo trò chơi mới.

Tôi quyết định cung cấp pin cho phiên bản của mình nên tôi đã sử dụng pin 18650 Li-ion, 3,6 volt thông thường. Điều đó yêu cầu tôi phải thêm một bảng nhỏ để cho phép sạc USB và một bảng nhỏ khác để tăng điện áp pin lên 5 volt cho màn hình LCD và chip ATMega. Các hình ảnh cho thấy các mô-đun tôi đã sử dụng nhưng cũng có những mô-đun tất cả trong một thực hiện cả hai chức năng.

Bước 2: Phần mềm

Phần mềm này giống nhau cho cả chip Nano và ATMega328. Sự khác biệt duy nhất là trong phương pháp lập trình. Tôi sử dụng phiên bản phần mềm LCD và phần mềm giải mã ma trận bàn phím của riêng mình. Đây là các tệp “bao gồm” riêng biệt cho dự án.

Các lệnh “random” và “randomSeed” được sử dụng để giúp tạo trò chơi. Tôi đã thêm một bản lưu vào EEPROM của “hạt giống” để đảm bảo rằng một chuỗi khác được tạo ra ở mỗi lần khởi động. Các dòng cho câu đố bắt nguồn từ một mảng tra cứu 24 phần tử. Ba dòng đầu tiên được chọn ngẫu nhiên từ bảng, có kiểm tra để đảm bảo rằng dòng đã chọn không xung đột với dòng trước đó. Dòng cuối cùng được điền theo cách thủ công vì sẽ chỉ có một mẫu khả thi tại thời điểm đó. Sau đó, chỉ cần quét ma trận bàn phím và chuyển các phím bấm thành số.

Để đoán một số, hãy nhấn liên tục vào công tắc tương ứng. Mỗi lần nhấn sẽ tăng số hiển thị. Nếu bạn vượt quá số bạn muốn, chỉ cần tiếp tục nhấn. Nếu bạn nhả công tắc trong một giây, công tắc sẽ khóa ở số cuối cùng được hiển thị. Nếu số không chính xác, nó sẽ xóa số đó và bạn có thể thử lại. Mỗi lần đoán sẽ làm tăng bộ đếm được hiển thị và một khi một số được đoán chính xác, công tắc ma trận đó sẽ bị vô hiệu hóa một cách hiệu quả.

Bước 3: Hiển thị

Hiển thị
Hiển thị
Hiển thị
Hiển thị
Hiển thị
Hiển thị

Dưới đây là một số hình ảnh của các màn hình khác nhau.

Đề xuất: