Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 77 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
77
Dung lượng
4,54 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO MÁY CHƠI GAME CARO TỰ ĐỘNG DỰA TRÊN NỀN TẢNG TRÍ TUỆ NHÂN TẠO MÃ SỐ: SV2020-44 SKC 0 Tp Hồ Chí Minh, tháng 08/2020 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO MÁY CHƠI GAME CARO TỰ ĐỘNG DỰA TRÊN NỀN TẢNG TRÍ TUỆ NHÂN TẠO SV2020 - 44 Chủ nhiệm đề tài: Đỗ Phước Bảo Long TP Hồ Chí Minh, tháng năm 2020 1|Page BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO MÁY CHƠI GAME CARO TỰ ĐỘNG DỰA TRÊN NỀN TẢNG TRÍ TUỆ NHÂN TẠO SV2020 - 44 Thuộc nhóm ngành khoa học: SV thực hiện: Dân tộc: Lớp, khoa: Đỗ Phước Bảo Long Nam, Nữ: Nam Kinh 18461CL2B Năm thứ: 02 /Số năm đào tạo: 04 Ngành học: Công nghệ Kỹ Thuật Cơ Điện tử Người hướng dẫn: ThS Nguyễn Văn Sơn TP Hồ Chí Minh, tháng năm 2020 2|Page MỤC LỤC MỤC LỤC DANH MỤC BẢNG BIỂU DANH MỤC NHỮNG TỪ VIẾT TẮT THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI CHƯƠNG 1: GIỚI THIỆU 10 1.1 Tính cấp thiết đề tài 10 1.2 Ý nghĩa khoa học thực tiễn đề tài 10 1.3 Mục tiêu nghiên cứu đề tài 10 1.4 Đối tượng phạm vi nghiên cứu 10 1.5 Phương pháp nghiên cứu 10 CHƯƠNG 2: TỔNG QUAN NGHIÊN CỨU ĐỀ TÀI 12 2.1 Lịch sử đời game Tic-Tac-Toe 12 2.2 Giới thiệu Tic-Tac-Toe 12 2.3 Biến thể Tic-Tac-Toe 15 CHƯƠNG 3: CƠ SỞ LÝ THUYẾT 20 3.1 Tic-Tac-Toe 20 3.2 Chiến lược game Tic-Tac-Toe 26 CHƯƠNG 4: NGUN CỨU, TÍNH TỐN, THIẾT KẾ TIC-TAC-TOE 32 4.1 Bản chất mạch vi điều khiển – tự động hóa 32 4.2 Mạch điều khiển trung tâm 37 4.3 Cơ cấu servo 39 4.4 Giải thuật cắt tỉa Alpha-beta 44 3|Page CHƯƠNG 5: CHẾ TẠO THỬ NGHIỆM – KẾT QUẢ - ĐÁNH GIÁ 50 5.1 Lưu đồ giải thuật 50 5.2 Quy trình thực 50 5.3 Phần điều khiển hoạt động 51 5.4 Mơ hình máy thử nghiệm 51 KẾT LUẬN - ĐỀ NGHỊ 53 TÀI LIỆU THAM KHẢO 54 PHỤ LỤC 55 4|Page DANH MỤC BẢNG BIỂU 5|Page DANH MỤC NHỮNG TỪ VIẾT TẮT (E, W) Bảng có điểm E thắng W AG(2, q) Mặt phẳng thứ tự q PG(2, q) Mặt phẳng chiếu thứ tự q 6|Page BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI Thông tin chung: - Tên đề tài: Nghiên cứu, thiết kế chế tạo máy chơi game caro tự động dựa tảng trí tuệ nhân tạo - Chủ nhiệm đề tài: Đỗ Phước Bảo Long Mã số SV: 18146158 Khoa: Đào tạo chất lượng cao - Lớp: 18146CL2B - Thành viên đề tài: Stt Họ tên MSSV Lớp Khoa Đỗ Phước Bảo Long 18146158 18146CL2B Đào tạo chất lượng cao - Người hướng dẫn: ThS Nguyễn Văn Sơn Mục tiêu đề tài: Mục đích đề tài trước tiên để chế tạo thành công máy chơi game caro tự động dựa tảng trí tuệ nhân tạo Ngoài ra, người thực đề tài cịn mong muốn tích lũy thêm kinh nghiệm thơng qua việc sử dụng kiến thức học để thiết kế chế tạo sản phẩm thực tế có tính ứng dụng cao Tính sáng tạo: Thay phải ngồi trước thiết bị thơng minh để chơi tic-tac-toe ta chơi với trạm tic-tac-toe Với cấu đơn giản, người chơi chọn nước với thao tác chạm vào ô muốn đi, động hoạt động làm xoay khối cờ xuất nước chọn Khơng trị chơi giải trí mà trò chơi giúp người chơi tư duy, tăng hoạt động não thể 7|Page Kết nghiên cứu: Cơ sở lý thuyết: tìm hiểu nghiên cứu tính chất vật liệu để làm tảng sở ứng dụng tạo sản phẩm Tính tốn thiết kế khn: tính tốn thiết kế khn dập Tính tốn thiết kế máy ép: tính tốn chọn xilanh ép thủy lực, tính thiết kế khung máy chịu lực, thiết kế hệ thống tự động hóa cho máy Đóng góp mặt giáo dục đào tạo, kinh tế - xã hội, an ninh, quốc phòng khả áp dụng đề tài: Nghiên cứu thành công, thử nghiệm chạy ổn định, tương tác với người dùng tốt Làm phong phú thêm kho tàng tương tác trí tuệ nhân tạo, tìm hiểu thơng số, thuộc tính từ làm tài liệu cho nghiên cứu liên quan Công bố khoa học SV từ kết nghiên cứu đề tài (ghi rõ tên tạp chí có) nhận xét, đánh giá sở áp dụng kết nghiên cứu (nếu có): Ngày 20 tháng 08 năm 2020 SV chịu trách nhiệm thực đề tài (kí, họ tên) 8|Page Nhận xét người hướng dẫn đóng góp khoa học SV thực đề tài (phần người hướng dẫn ghi): Ngày 27 tháng 07 năm 2020 Người hướng dẫn (kí, họ tên) 9|Page { board[i] = 'X'; value = minimax(false); } else { board[i] = 'O'; value = minimax(true); } board[i] = '*'; score[i] = value; } } } if (flag == true) { max_val = -1000; for (j = 0; j < 9; j++) { if (score[j] > max_val && score[j] != 1) { max_val = score[j]; index1 = j; } } return max_val; } if (flag == false) 62 | P a g e { min_val = 1000; for (j = 0; j < 9; j++) { if (score[j] < min_val && score[j] != 1) { min_val = score[j]; index1 = j; } } return min_val; } } void loop() //The main function { myservo0.write(90); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(90); myservo5.write(90); myservo6.write(90); myservo7.write(90); myservo8.write(90); int moe; Serial.println(" -TIC TAC TOE -"); Serial.println("USER ->(O) CPU >(X)"); Serial.println(" Player first "); 63 | P a g e //if (true) // { draw_board(); up: Serial.println("Enter the move:"); { int voilA0 = digitalRead(A0); int voilA1 = digitalRead(A1); int voilA2 = digitalRead(A2); int voilA3 = digitalRead(A3); int voilA4 = digitalRead(A4); int voilA5 = digitalRead(A5); int voilA6 = digitalRead(A6); int voilA7 = digitalRead(A7); int voil11 = digitalRead(11); Serial.println("XUẤT GIÁ TRỊ INPUT"); Serial.print("voilA0: "); Serial.println(voilA0); Serial.print("voilA1: "); Serial.println(voilA1); Serial.print("voilA2: "); Serial.println(voilA2); Serial.print("voilA3: "); Serial.println(voilA3); Serial.print("voilA4: "); Serial.println(voilA4); Serial.print("voilA5: "); Serial.println(voilA5); Serial.print("voilA6: "); Serial.println(voilA6); Serial.print("voilA7: "); Serial.println(voilA7); Serial.print("voil11: "); Serial.println(voil11); // delay (2000); if ( voilA0 == HIGH ) { c = 1; moe = 1; Serial.println(" player chọn ô:" + moe ); break; }; 64 | P a g e if ( voilA1 == HIGH ) { c = 1; moe = 2; Serial.println(" player chọn ô:" + moe ); break; }; Serial.println(" player chọn ô:" + moe ); break; }; Serial.println(" player chọn ô:" + moe ); break; }; Serial.println(" player chọn ô:" + moe ); break; }; Serial.println(" player chọn ô:" + moe ); break; }; Serial.println(" player chọn ô:" + moe ); break; }; Serial.println(" player chọn ô:" + moe ); break; }; Serial.println(" player chọn ô:" + moe ); break; }; if ( voilA2 == HIGH ) { c = 1; moe = 3; if ( voilA3 == HIGH ) { c = 1; moe = 4; if ( voilA4 == HIGH ) { c = 1; moe = 5; if ( voilA5 == HIGH ) { c = 1; moe = 6; if ( voilA6 == HIGH ) { c = 1; moe = 7; if ( voilA7 == HIGH ) { c = 1; moe = 8; if ( voil11 == HIGH ) { c = 1; moe = 9; } while (c == 0); if (board[moe - 1] == '*') { board[moe - 1] = 'O'; draw_board(); if ( moe == ) { Serial.println(" player chọn ô:" + moe ); 65 | P a g e for (posD2 = 90; posD2 >= O; posD2 -= 1) delay(15); } { myservo0.write(posD2); { myservo1.write(posD3); { myservo2.write(posD4); { myservo3.write(posD5); { myservo4.write(posD6); } if ( moe == 2) { Serial.println(" player chọn ô:" + moe ); for (posD3 = 90 ; posD3 >= O; posD3 -= 1) delay(15); } } if ( moe == 3) { Serial.println(" player chọn ô:" + moe ); for (posD4 = 90 ; posD4 >= O; posD4 -= 1) delay(15); } } if ( moe == 4) { Serial.println(" player chọn ô:" + moe ); for (posD5 = 90 ; posD5 >= O; posD5 -= 1) delay(15); } } if ( moe == 5) { Serial.println(" player chọn ô:" + moe ); for (posD6 = 90 ; posD6 >= O; posD6 -= 1) delay(15); } } if ( moe == 6) { 66 | P a g e Serial.println(" player chọn ô:" + moe ); for (posD7 = 90 ; posD7 >= O; posD7 -= 1) delay(15); } { myservo5.write(posD7); { myservo6.write(posD8); { myservo7.write(posD9); } if ( moe == 7) { Serial.println(" player chọn ô:" + moe ); for (posD8 = 90 ; posD8 >= O; posD8 -= 1) delay(15); } } } if ( moe == 8) { Serial.println(" player chọn ô:" + moe ); for (posD9 = 90 ; posD9 >= O; posD9 -= 1) delay(15); } } if ( moe == 9) { Serial.println(" player chọn ô:" + moe ); for (posD10 = 90 ; posD10 >= O; posD10 -= 1) { delay(15); } myservo8.write(posD10); } // } /*else { Serial.println("Invalid Move Try different move"); goto up; }*/ 67 | P a g e //} while (true) { Serial.println("CPU MOVE "); minimax(true); board[index1] = 'X'; draw_board(); if ( index1 == ) { Serial.println("CPU đánh ô 1"); for (posD2 = 90; posD2 = O; posD10 -= 1) { delay(15); } myservo8.write(posD10); } } else { Serial.println("Invalid Move Try different move"); goto again; } if (user_won() == 1) { Serial.println("You Won "); delay(2000); break; } if (isFull() == 1) { Serial.println("Draw "); delay(2000); break; } } delay(1000); 74 | P a g e } 75 | P a g e ... DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO MÁY CHƠI GAME CARO TỰ ĐỘNG DỰA TRÊN NỀN TẢNG TRÍ TUỆ NHÂN... TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NGHIÊN CỨU, THIẾT KẾ VÀ CHẾ TẠO MÁY CHƠI GAME CARO TỰ ĐỘNG DỰA TRÊN NỀN TẢNG TRÍ TUỆ NHÂN TẠO SV2020 - 44 Thuộc nhóm ngành khoa học: SV thực... Tên đề tài: Nghiên cứu, thiết kế chế tạo máy chơi game caro tự động dựa tảng trí tuệ nhân tạo - Chủ nhiệm đề tài: Đỗ Phước Bảo Long Mã số SV: 18146158 Khoa: Đào tạo chất lượng cao - Lớp: 18146CL2B