TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN MÔN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI XÂY DỰNG CHƯƠNG TRÌNH CỜ VUA Sinh viên thực hiện BÙI QUANG ĐIỆP NGUYỄN DUY TRƯỜNG HOÀNG MINH PHƯƠ[.]
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN MÔN ĐỒ HỌA MÁY TÍNH
ĐỀ TÀI:
XÂY DỰNG CHƯƠNG TRÌNH CỜ VUA
Sinh viên thực hiện : BÙI QUANG ĐIỆP
NGUYỄN DUY TRƯỜNG HOÀNG MINH PHƯƠNG Giảng viên hướng dẫn : NGÔ QUỐC TẠO
Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM
Khóa : 2019 -2024
Trang 2PHIẾU CHẤM ĐIỂM STT Họ và tên sinh viên Nội dung thực hiện Điểm Chữ ký
1
Bùi Quang Điệp
2
Nguyễn Duy Trường
3
Hoàng Minh Phương
Họ và tên giảng viên
Giảng viên chấm 1:
Giảng viên chấm 2:
Trang 3MỤC LỤC
Trang 4LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy cô trường Đại học Điện lực, đặc biệt là các thầy cô khoa Công nghệ thông tin của trường đã tạo điều kiện thuận lợi cho em thực hiện bản báo cáo
Đặc biệt em xin gửi đến thầy Ngô Quốc Tạo – người đã tận tâm hướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận
về môn học Trong thời gian được học tập và thực hành dưới sự hướng dẫn của thầy, em không những thu được rất nhiều kiến thức bổ ích, mà còn được truyền sự say mê và thích thú đối với bộ môn Đồ họa máy tính
Mặc dù đã rất cố gắng hoàn thiện báo cáo, tuy nhiên, do bước đầu đi vào thực
tế, tìm hiểu và xây dựng báo cáo trong thời gian có hạn và kiến thức còn hạn chế, nên báo cáo “Xây dựng chương trình cờ vua” chắc chắn sẽ không thể tránh khỏi những thiếu sót Chúng em rất mong nhận được sự quan tâm, thông cảm và những đóng góp quý báu của các thầy cô và các bạn để báo cáo này được hoàn thiện hơn
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Trang 5LỜI MỞ ĐẦU
Như chúng ta đã thấy trong những năm gần đây sự phát triển vượt bậc về công nghệ đồ họa đã mang lại cho con người chúng ta vô vàn sự tiện nghi, những trải nghiệm mới mẻ, chân thực
Đồ họa máy tính góp phần quan trọng làm cho giao tiếp của con người và máy tính trở nên thân thiện gần gũi hơn.Trong lĩnh vực kỹ thuật máy tính, đồ họa máy tính càng ngày càng phát triển mạnh mẽ Đồ họa máy tính là một lĩnh vực của khoa học máy tính nghiên cứu về ở toán học, các thuật toán cũng như các kĩ thuật
để cho phép tạo, hiển thị và điều khiển hình ảnh trên màn hình máy tính Đồ họa máy tính có liên quan ít nhiều đến một số lĩnh vực như đại số, hình học giải tích, hình học họa hình, quang học, và kĩ thuật máy tính, đặc biệt là chế tạo phần cứng
(các loại màn hình, các thiết bị xuất, nhập, các vỉ mạch đồ họa ).
Là sinh viên khoa Công Nghệ Thông Tin trường Đại học Điện Lực Em cũng được tiếp xúc với môn học đồ họa máy tính Với những kiến thức em đã được học và được sự hướng dẫn của thầy Ngô Quốc Tạo em đã thực hiện đề tài
“Xây dựng chương tình cờ vua ” Trong quá trình thực hiện nghiên cứu, chúng em
đã sử dụng thư viện đồ họa SFML đang được sử dụng rộng rãi hiện nay
Trang 6CHƯƠNG I: TỔNG QUAN 1.1.Lý do chọn đề tài
Với những bạn mới bắt đầu học lập trình căn bản với C/C++ lên và bắt đầu tiếp xúc với một engine game lớn và đồ sộ như Cocos 2Dx, Unity thì rất là khó và khá là mất thời gian vì các bạn không hiểu bản chất bên trong engine đó được viết như thế nào từ load hình ảnh lên game, sử dụng cái gì để vẽ, hiện thực FPS
Thì đối với thư viện SFML là một thư viện cung cấp cho chúng ta một số các chức năng cơ bản như vẽ các hình học lên cửa sổ, xử lý event input output, play audio và đặc biệt là thư viện này được viết bằng C/C++ và build trên nhiều nèn tảng khác nhau nên rất linh động nên dây là một thư viện cực kì bổ ích cho các bạn nào muốn xây dựng một engine game của chính mình
1.2.Mô tả đề tài
Nhăm hiêu rõ hơn vê tông quan cung như môi trương thư viện SFML Tư đo phân tich sư anh hương trong ngôn ngữ lập trình, giup năm băt môt cach chi tiêt,
cu thê hơn vê thư viện Tư đo, co thê đanh gia va phân tich, xây dựng chương trình qua thư viện SFML này
1.3.Đặt vấn đề
Đôi tương nghiên cưu: Nghiên cưu va tim hiêu sư dung qua thư viện SFML
đê hiêu rõ cac vân đê hỗ trợ về đồ họa
1.4.Cấu trúc báo cáo
-Chương 1: Tổng quan
-Chương 2: Phân tích yêu cầu
-Chương 3: Thiết kế ứng dụng
Trang 7CHƯƠNG II: PHÂN TÍCH YÊU CẦU 2.1.SFML là gì
SFML (là viết tắt của Simple and Fast Multimedia Library) là một API di động và dễ sử dụng để lập trình đa phương tiện Nó được viết bằng C ++ với các ràng buộc có sẵn cho C, D, Python, Ruby, OCaml, Net và Go Nó có thể được coi
là một thay thế hướng đối tượng cho SDL SFML khá giống với SDL2 nhưng do viết theo hướng OOP nên việc lập trình sẽ dễ dàng hơn nhiều so với SDL2
SFML cung cấp đồ họa 2D được tăng tốc phần cứng bằng OpenGL, hỗ trợ cửa sổ OpenGL và cung cấp các mô-đun khác nhau giúp dễ dàng lập trình đa phương tiện và trò chơi
Nó cung cấp một giao diện đơn giản với các thành phần khác nhau cho máy tính của bạn, để giảm bớt sự phát triển của trò chơi và các ứng dụng đa phương tiện Nó bao gồm 5 modules (Audio, Graphics, Network, System, Window):
+ System: gồm các class liên quan với hệ thống như làm thời gian, xử lí unicode
+ Window: liên quan tới việc tạo, đóng và xử lí sự kiện cửa số
+ Graphics: bao gồm các class về việc render đồ họa
+ Audio: bao gồm các class về xử lí âm thanh, ta có thể dùng để phát một file nhạc hoặc ghi âm cho máy tính và lưu thành file
+ Network: mạng
Trang web SFML cung cấp gói SDK hoàn chỉnh trong một gói và hướng dẫn
để giảm bớt các nhà phát triển Mã nguồn SFML được cung cấp theo các điều khoản của giấy phép zlib / png
Ngoài ra, SFML có thể chạy trên nhiều hệ điều hành khác nhau như Windows, Linux, MacOS Tuy nhiên thì hiện tại, vẫn chưa có thể chạy trên Android với IOS
Trang 82.2.Cách thêm thư viện SFML trên Visual Studio
✔ Bước 1: Cài đặt dev C:
- Nếu chưa cài đặt Visual Studio trên máy tính chúng ta thực hiện 2 bước sau: + Tải tập tin cài đặt Devc từ:
http://www.Taingay/Downloads/ Devc + Thực thi tập tin cài đặt và làm theo hướng dẫn để cài VS
✔ Bước 2: Tải bản pre-built SFML:
- Vào trang chủ của SFML tại link: https://www.sfml-dev.org/
- Tại trang chủ chọn Download rồi chọn SFML 2.5.1
- Tại đây, ta sẽ thấy các bản pre-built cho các phiên bản của Visual Studio Các bản này phân ra làm 2 loại: 32bit và 64bit Nếu ta chọn bản 32bit thì khi build ra chương trình có thể chạy trên cả windows 32bit và 64bit Còn nếu ta cài đặt bản 64bit thì khi build ra chương trình chỉ chạy được trên windows 64bit Vì vậy, ta nên chọn phiên bản cài đặt phù hợp với nhu cầu và mục đích sử dụng Ở đây, nhóm em sẽ tải bản cho Dev C 32bit
✔ Bước 3: Cài đặt SFML vào project
- Giải nén tập tin SFML-2.5.1.zip ra thư mục SFML-2.5.1
- Tạo project mới trên VS
- Cấu hình project:
+ Chọn chuột phải vào tên project sau đó chọn Property
+ Sau khi mở, tại khung Configuration chọn All Configuration rồi chọn đến mục C++ -> General -> Additional Include Directories -> Edit Tại đây, chọn đến thư mục include trong thư mục SFML đã tải về
+ Tiếp theo các bạn chọn đến mục Linker -> General -> Additional Library Directories -> Edit Tại đây, các bạn chọn đến thư mục lib trong thư mục SFML đã tải về
Trang 9+ Sau đó các bạn đến mục Linker > Input > Additional Dependencies
-> Edit Tại đây, gõ̃ như sau:
sfml-network.lib
sfml-window.lib
sfml-system.lib
sfml-graphics.lib
sfml-audio.lib
+ Sau khi cài đặt xong ở All configuration, ta tiến hành cài đặt ở Debug
+ Tại khung Configuration chọn Debug rồi chọn đến mục C++ -> General -> Additional Include Directories -> Edit Tại đây, chọn đến thư mục include trong thư mục SFML đã tải về
+ Tiếp theo các bạn chọn đến mục Linker -> General -> Additional Library Directories -> Edit Tại đây, các bạn chọn đến thư mục lib trong thư mục SFML đã tải về
+ Sau đó các bạn đến mục Linker > Input > Additional Dependencies
-> Edit Tại đây, gõ̃ như sau:
sfml-network-d.lib
sfml-window-d.lib
sfml-system-d.lib
sfml-graphics-d.lib
sfml-audio-d.lib
+ Vào thư mục bin của SFML để tìm các file dll bị thiếu (openal32.dll, audio-d-2.dll, graphics-d-2.dll, network-d-2.dll, system-d-2.dll, sfml-window-d-2.dll) và paste vào thư mục Debug của project
+ Cuối cùng nháy OK để hoàn tất các quá trình
Trang 102.3.Tổng quan về chương trình
- Chương trình cờ vua là một trò chơi điển tử thân thiện, có đồ họa hai chiều đơn giản Đây là một chương trình yêu cầu đến trí tuệ
2.4.Yêu cầu chức năng
- Người chơi tiến hành di chuyển quân cờ theo luật đi của từng con
- khi quân cờ trùng vào nước đi thì lập tức ăn được quân cờ của đối phương
2.5.Yêu cầu phi chức năng
- Giao diện thân thiện, dễ sử dụng
- Cấu hình nhẹ, dễ cài đặt
Trang 11CHƯƠNG III: THIẾT KẾ ỨNG DỤNG 3.1.Cài đặt thuật toán
Trang 163.2 Kết quả thực nghiệm
Trang 18KẾT LUẬN
Trong thời gian nghiên cứu và vận dụng những kiến thức đã được trang bị ở nhà trường và các lĩnh vực khác Chúng em đã viết được chương trình cờ vua nhằm mục đích giải trí lành mạnh Chúng em hy vọng rằng những khái niệm này là tiền đề giúp chúng em phát triển mạnh hơn về những thể loại game khác chất lượng hơn, hay hơn để phục vụ cho nhu torng cầu cuộc sống chúng ta
Trong quá trình thực hiên đê tai, chung em đã nhận được sự giúp đỡ tận tình của thầy Ngô Quốc Tạo giúp chung em hoàn thành tốt bao cao này Vì thời gian làm bao cao hạn hẹp, kinh nghiệm thực tế chưa nhiều nên bao cao không tránh khỏi những sai sót, rất mong sự góp ý của thầy
Trong quá trình thực hiện đề tài có rất nhiều ý tưởng hay, độc đáo Nhưng do kiến thức của chúng em hạn hẹp và thời gian không cho phép nên chúng em chưa thể thực hiện được những ý tưởng đó Tuy nhiên chúng em đã cố gắng để xây dựng một chương trình hoàn chỉnh nhất, đẹp nhất Trong quá trình xây dựng chương trình, nhóm chúng em khó tránh khỏi những sai sót Vì vậy em rất mong rằng thầy
và các bạn cùng góp ý với nhóm em để có thể hòa thành sản phẩm một cách hoàn chỉnh nhất