Về bản chất, Internet là một hệ thống mạng, liên kết các máy tính trên toàn thế giới lại theo những chuẩn chung của nó.. Là một sinh viên công nghệ thông tin, thì với sự hiểu biết và kiế
Trang 1ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỒ ÁN CƠ SỞ 1
Trò chơi caro trực tuyến ứng dụng kỹ thuật lập
trình Socket
Đà Nẵng, ngày… tháng … năm …
Trang 3MỞ ĐẦU
Ngày nay với sự phát triển nhanh chóng của công nghệ thông tin vàInternet nên ứng dụng của nó vào nhu cầu học tập và làm việc là rất lớn.Internet đã trở thành một thành phần không thể thiếu với cuộc sống hiện đại
Về bản chất, Internet là một hệ thống mạng, liên kết các máy tính trên toàn thế giới lại theo những chuẩn chung của nó Trong các công ty cũng như trongtrường học thì việc gửi nhận các tập tin trong nội bộ công ty hay trường học làrất cần thiết để có thể dễ dàng quản lý và làm việc
Là một sinh viên công nghệ thông tin, thì với sự hiểu biết và kiến thứctích lũy được của mình trong thời gian học ở trường cũng như là tự học, nên nhóm em quyết định chọn đề tài “ Xây dựng trò chơi cờ caro bằng kỹ thuật lập trình socket” với hy vọng sẽ ứng dụng những gì đã học để thiết kế một trò chơi nhỏ, qua đó với mục tiêu để cho các sinh viên có một kiến thức tốt về lậptrình ứng dụng mạng, phát triển ứng dụng TCP
Trong quá trình học tập và miệt mài nghiêng cứu về chuyên môn của ngành, nhóm chúng em đã tiếp thu được một số kiến thức hữu ích cho bản thân, nhằm đánh giá kết quả đã đạt được trong quá trình học tập, nhóm chúng
em đã hoàn thành bài báo cáo của môn học này
Trang 4
LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn chân thành tới các thầy cô trong Khoa CNTT-TT,đặc biệt là thầy Huỳnh Ngọc Thọ đã hướng dẫn, chỉ bảo tận tình trong suốt thời giannhóm chúng em thực hiện đề tài này
Về hình thức trình bày và nội dung của bài báo cáo do còn nhiều hạn chế vềtrình độ cũng như mặt thời gian nên để tài này sẽ không tránh khỏi sai sót Nhóm emrất mong nhận được sự chỉ bảo góp ý của các thầy cô và các bạn để giúp chúng emhoàn thiện được kỹ năng lập trình cũng như bổ sung vào lỗ hỏng kiến thức cho hìnhthức và nội dung của bài báo cáo được đầy đủ hơn và sau đó là áp dụng cho những lầnthực hiện sau được tốt hơn
Trang 5NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
Trang 6
MỤC LỤC Trang MỞ ĐẦU
Chương 1 Giới thiệu đề tài 1
1.1 Lý do 1
1.2 Mục tiêu, kết quả 1
Chương 2 Cơ sở lý thuyết 2
2.1 Giới thiệu trò chơi cờ caro 2
2.1.1 Lịch sử nguồn gốc 2
2.1.2 Luật chơi cờ caro 2
2.2 Tổng quan về mạng máy tính 2
2.2.1 Khái niệm mạng máy tính 2
2.2.2 Mô hình Client-Server 3
2.3 Giới thiệu về giao thức TCP/IP 4
2.3.1 Giới thiệu TCP 4
2.3.2 Giới thiệu IP 4
2.3.3 Giới thiệu Socket 4
Chương 3 Nghiên cứu tổng quan 5
3.1 Mô hình tổng quan của hệ thống nghiên cứu 5
3.2 Thiết kế chi tiết 5
3.2.1 Trên Server 5
3.2.2 Trên Client 5
Chương 4 Triển khai xây dựng 5
4.1 Môi trường triển khai 5
4.2 Kết quả thực hiện 5
4.3 Chương trình 8
4.3.1 Cấu trúc của chương trình 8
4.3.2 Trên Client 9
4.3.3 Chương trình trên máy Client 13
Chương 5 Kết luận và Hướng phát triển 18
5.1 Ưu điểm 18
5.2 Khuyết điểm 18
5.3 Hướng phát triển 18
Trang 7Chương 1 Giới thiệu đề tài
1.1 Lý do chọn đề tài
Ngày nay do nhu cầu đời sống của con người ngày càng được nângcao, trong đó nhu cầu giải trí của con người được quan tâm đến rấtnhiều Trong đó việc giải trí bằng Game máy tính ngày càng pháttriển nhanh và lan rộng ra do sự lôi cuốn rất mạnh mẽ của nó Hầunhư ai đã sử dụng máy tính đều đã giải trí bằng một số game nào đótrên máy tính Có thể nói Game là một thể loại phong phú nhất trongtất cả các loại chương trình trên máy tính cho nên nhóm chúng emchọn đề tài “game caro online”
*Thứ nhất là giúp cho người chơi giải trí
*Thứ hai, trong quá trình học tập nhóm chúng em được sự tận tìnhchỉ bảo của thầy Huỳnh Ngọc Thọ, đã truyền đạt cho nhóm chúng
em những kiến thức hữu ích để nhóm chúng em được hoàn thành báocáo tốt hơn
*Thứ ba, việc viết game bằng ngôn ngữ Java cung cấp cho nhómchúng em có khả năng tiếp cận, tìm hiểu ngôn ngữ mới, nâng caokinh nghiệm lập trình để sau này có thể tham gia vào các dự án lớnhơn
1.2 Mục tiêu, kết quả
-Giúp cho người chơi có thể giải trí
-Xây dựng được một chương trình game caro có thể chơi trên mạng,
có thể chơi nhiều cặp với nhau
Trang 8Chương 2 Cơ sở lý thuyết
2.1 Giới thiệu trò chơi cờ caro
2.1.1 Lịch sử nguồn gốc
Cờ caro chính là môn cờ logic lâu đời và cổ xưa nhất trên Trái Đất
Cờ caro đã được sáng tạo từ nhiều nền văn minh khác nhau một cáchđộc lập Nó bắt đầu xuất hiện từ năm 2000 trước CN ở sông Hoàng
Hà, Trung Quốc Một số nhà khoa học đã tìm thấy bằng chứng chứngminh Caro đã được phát minh ở Hy lạp cổ đại và ở Châu Mỹ trướcthời Colombo Cờ Caro thuộc thể loại trò chơi bàn cờ, thi đấu trí tuệgiữa hai người
2.1.2 Luật chơi cờ caro
Cờ Caro tại mỗi thời kì có những luật chơi khác nhau nhưng về cơbản thì có các luật như sau :
2.2.1 Khái niệm mạng máy tính
Mạng máy tính là một hệ thống gồm nhiều máy tính và các thiết bị được kết nối với nhau bởi đường truyền vật lý theo một kiến trúc (Network Architecture) nào đó nhằm thu thập, trao đổi dữ liệu và chia sẽ tài nguyên cho nhiều người sử dụng Các máy tính được kết nối với nhau có thể trong cùng một phòng, một tòa nhà, một thành phố hoặc trên phạm vi toàn cầu Mạng máy tính bao gồm ba thành phần chính:
- Các máy tính;
- Các thiết bị mạng đảm bảo kết nối các máy tính với nhau;
- Phần mềm cho phép thực hiện việc trao đổi thông tin giữa các máy tính.
2
Trang 9Hệ thống mạng máy tính
2.2.2 Mô hình Client-Server
Server được hiểu là máy chủ, thường là một hệ thống máy lớn, có
bộ xử lý mạnh, có khả năng hoạt động đáng tin cậy, có khả năng lưutrữ dữ liệu lớn, nó chuyên quản lý tài nguyên (chủ yếu là cơ sở dữliệu), cung cấp các dịch vụ mạng cho các máy khách (client) sửdụng Bình thường nó chạy suốt thời gian thực và sẵn sàng chấpnhận các yêu cầu kết nối và các yêu cầu dịch vụ khác từ máy khách.Client là máy khách, nó thường được sử dụng bởi người dùng cuối
Nó hoạt động dựa trên việc sử dụng dịch vụ mà máy server cung cấp
để thực hiện các công việc mà người dùng cuối mong muốn
Quy trình hoạt động của mô hình này lặp lại 2 quá trình như sau :
- Client gửi yêu cầu lên Server
- Server nhận được yêu cầu thì sẻ xử lý thích hợp và trả lời lạiClient
Mô hình Client/Server
Trang 102.3 Giới thiệu về giao thức TCP/IP
2.3.1 Giới thiệu TCP
Giao thức TCP (Transmission Control Protocol) là giao thức hướngkết nối (connection-oriented), nó đòi hỏi thiết lập kết nối trước khibắt đầu gửi dữ liệu và kết thúc kết nối khi việc gửi dữ liệu hoàn tấttheo đúng thứ tự: thiết lập kết nối, truyền dữ liệu và kết thúc kết nối
2.3.2 Giới thiệu IP
IP là địa chỉ của một máy tính trên mạng, dựa vào địa chỉ IP giaothức TCP có thể truyền dữ liệu chính xác từ một máy này qua máy kiathông qua hệ thống mạng Ở trên mạng, một máy tính sẻ có một địa chỉ IPkhác nhau, từ địa chỉ IP có thể biết được máy nào trên mạng và ngược lại
2.3.3 Giới thiệu Socket
- Socket là một khái niệm để định vị một dịch vụ của một máy tínhtrên mạng khi kết hợp hai khái niệm IP và Port lại
- Socket có những nhiệm vụ như sau :
mà em sẻ giới thiệu ngay sau đây
4
Trang 11Chương 3 Phân tích thiết kế hệ thống
3.1 Mô hình tổng quan của hệ thống nghiên cứu
Viết 1 chương trình game caro cho phép 2 người có thể chơi với nhau qua mạng
3.2 Thiết kế chi tiết
3.2.1 Trên Server
Tạo cổng kết nối và sẵn sàng đón nhận các sự kết nối từ Client
Tạo bàn cờ Caro, hiển thị ô đánh của mình và nhận ô đánh từClient và hiển thi lên bàn Cờ
Kiểm tra trên bàn Cờ xem mình đã thắng hay là thua và thôngbáo kết quả
Tạo 1 đồng hồ đếm ngược kiểm soát thời gian suy nghĩ trong 1ván Cờ, nếu hết thời gian suy nghĩ sẽ tự động thua
Lưu lại lịch sử đấu bao gồm: tên 2 người chơi, người thắng vàtổng số Ô cờ đã đánh sau mỗi ván đấu
Nhận tin nhắn từ Client hiển thị tin nhắn và gửi trả lạ tin nhắncho Client
Khởi tạo Webcam và gửi hình ảnh trực tiếp qua cho Client
3.2.2 Trên Client
Kết nối tới Server
Tạo bàn cờ Caro, hiển thị ô đánh của mình và nhận ô đánh từServer và hiển thi lên bàn Cờ
Kiểm tra trên bàn Cờ xem mình đã thắng hay là thua và thôngbáo kết quả
Tạo 1 đồng hồ đếm ngược kiểm soát thời gian suy nghĩ trong 1ván Cờ, nếu hết thời gian suy nghĩ sẽ tự động thua
Nhận tin nhắn từ Server hiển thị tin nhắn và gửi trả lạ tin nhắncho Server
Khởi tạo Webcam và gửi hình ảnh trực tiếp qua cho Server
Chương 4 Triển khai xây dựng
4.1 Môi trường triển khai
- Hệ điều hành: Microsoft Windows 10 Home.
- IDE: Eclipse
4.2 Kết quả thực hiện
- Về cơ bản, chương trình thực hiện được các chức năng là tạo kếtnối, đánh qua lại giữa 2 người chơi, xử lí thắng thua, lưu lại lịch sử
Trang 12của ván đấu, chat qua lại giữa 2 người chơi, call Video trực tiếp giữa
2 người chơi
- Với phạm vi nhỏ của đề tài, chưa thực hiện một số chức năng mà cóthể triển khai được như: gửi các icon, gửi tin nhắn có định dạng,…giống như các phần mêm Caro hiện đang có trên Internet
- Các thao tác trên giao diện cũng chưa thực sự tiện lợi, Việc thửnghiệm chỉ mới dừng lại trên máy ở mạng LAN (Giữa máy thật vàmáy ảo) và trên máy cục bộ (Sử dụng địa chỉ localhost)
Một số hình ảnh minh họa
Hình 1: Giao diện khởi động Server
Hình 2: Giao diện khi khởi động Client
6
Trang 13Hình 3: Giao diện chính bên Server
Hình 4: Giao diện chính bên Client
Trang 14Hình 5: Giao diện lịch sử đấu4.3 Chương trình
4.3.1 Cấu trúc của chương trình
8
Trang 154.3.2 Chương trình trên máy Server
File: caroServer.java
Hình 1: Thư viện
Hình 2: Xử lý sự kiện nhập tên Server
Hình 3: Xử lý sự kiện tạo game mới
Trang 16Hình 4: Xử lý sự kiện cho nút thoát chương trình
Hình 5: Tạo bàn cờ
Hình 6: Tạo các kết nối
10
Trang 17Hình 7: Xử lí các yêu cầu Client gửi tới
Hình 8: Tạo nút gửi tin nhắn
Trang 18Hình 9: Hiển thị Ô đánh
Hình 10: Lưu lại lịch sử
Hình 11: Webcam
12
Trang 19 File: bdImgServer.java
Hình 12: Tạo hiệu ứng viền
4.3.3 Chương trình trên máy Client
File: caroClient.java
Hình 1: Thư viện
Trang 20Hình 2: Xử lý nhập tên
Hình 3: Xử lý nút tạo game mới
Hình 4: Xử lý nút thoát chương trình
14
Trang 21Hình 5: Tạo bàn cờ
Hình 6: Tạo các kết nối
Hình 7: Xử lý các yêu cầu Server gửi tới
Trang 22Hình 8: Xử lý sự kiện nút gửi tin nhắn
Hình 9: Hiển thị ô đánh
16
Trang 23Hình 10: Xử lý thua
Hình 11: Webcam
File: bdImgClient.java
Trang 24Chương 5 Kết luận và Hướng phát triển
5.1 Ưu điểm
- Xây dựng được các chức năng của một chương trình game: hệthống chat, call video, lịch sử đấu
- Cho phép nhiều cặp chơi đánh cùng lúc với nhau
- Có thể cho từng cặp chơi chat, gặp mặt, nói chuyện với nhau
5.2 Khuyết điểm
- Giao diện vẫn chưa thực sự bắt mắt
- Chưa tối ưu kích cỡ của bàn cờ
- Trao đỗi giữa client và server chưa được tốt
- Chưa kiểm soát được hết lỗi cũng như tối ưu hóa các chức năng
- Tìm hiểu thêm về ngôn ngữ Java cũng như lập trình mạng
- Mở rộng và đưa chương trình vào thực tế
18