Tải bản đầy đủ (.doc) (24 trang)

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGĐỒ ÁN CƠ SỞ 1 ĐỀ TÀI: Trò chơi caro trực tuyến ứng dụng kỹthuật lập trình Socket

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (828.67 KB, 24 trang )

ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

ĐỒ ÁN CƠ SỞ 1
ĐỀ TÀI:

Trị chơi caro trực tuyến ứng dụng kỹ
thuật lập trình Socket

Sinh viên thực hiện : TRẦN QUỐC NGUYÊN
MSSV
: 19IT181
Lớp
: 19IT3
Sinh viên thực hiện : PHẠM QUỐC VĂN
MSSV
: 19IT211
Lớp
: 19IT3
Giảng viên hướng dẫn : TS. HUỲNH NGỌC THỌ

Đà Nẵng, ngày… tháng … năm …


ĐẠ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 …


MỞ ĐẦ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 tồn thế giới
lại theo những chuẩn chung của nó. Trong các cơng ty cũng như trong trườ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ức
tí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ập trì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ề chun 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 q trình học tập, nhóm chúng em đã
hồn thành bài báo cáo của môn học này.


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 gian
nhó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 em rấ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 em hoà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ình thứ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ần thực hiện sau được tốt
hơn.


NHẬN XÉT
(Của giảng viên hướng dẫn)
.......................................................................................................................
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
………………………………………………………


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


Chươ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âng
cao, trong đó nhu cầu giải trí của con người được quan tâm đến rất

nhiều. Trong đó việc giải trí bằng Game máy tính ngày càng phát
triển nhanh và lan rộng ra do sự lôi cuốn rất mạnh mẽ của nó. Hầu
như 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 trong
tất cả các loại chương trình trên máy tính cho nên nhóm chúng em
chọn đề tài “game caro online” .
*Thứ nhất là giúp cho người chơi giải trí.
*Thứ hai, trong q trình học tập nhóm chúng em được sự tận tình
chỉ 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 hồn thành báo
cáo tốt hơn.
*Thứ ba, việc viết game bằng ngôn ngữ Java cung cấp cho nhóm
chúng em có khả năng tiếp cận, tìm hiểu ngơn ngữ mới, nâng cao
kinh nghiệm lập trình để sau này có thể tham gia vào các dự án lớn
hơ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.

1


Chươ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 Hồng
Hà, Trung Quốc. Một số nhà khoa học đã tìm thấy bằng chứng chứng
minh Caro đã được phát minh ở Hy lạp cổ đại và ở Châu Mỹ trước
thờ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 :
* Qn cờ được sử dụng là X và O.
* Hai người đi luân phiên nhau, mỗi lần đi là một lượt và khơng
trùng với ơ đã có qn cờ.
* Mỗi bên được xác định thắng khi tạo thành một hàng dọc, ngang
hoặc chéo 5 qn cờ của mình.
* Trị chơi kết thúc khi có một bên thắng hoặc khơng cịn ở trong
trên bàn cờ.

2.2 Tổng quan về mạng máy tính
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 tồ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


Hệ 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ưu
trữ 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ấp
nhậ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 q trình như sau :
- Client gửi yêu cầu lên Server.
- Server nhận được u cầu thì sẻ xử lý thích hợp và trả lời lại
Client

Mơ hình Client/Server

3


2.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ướng
kết nối (connection-oriented), nó địi hỏi thiết lập kết nối trước khi
bắ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ất
theo đú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 giao
thức TCP có thể truyền dữ liệu chính xác từ một máy này qua máy kia
thông qua hệ thống mạng. Ở trên mạng, một máy tính sẻ có một địa chỉ IP
khá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ính
trê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 :
 Gắn một cổng trên máy
 Lắng nghe các kết nổi.
 Kết nối/Đóng kết nối đến máy tính ở xa qua cổng đã gắn
 Gửi/nhận dữ liệu
 Lắng nghe dữ liệu đến

Thực chất, Socket chẳng qua là sự kết hợp giữa địa chỉ IP của máy tính
và cổng Port mà ứng dụng sử dụng. Chính vì sự kết hợp đó mà nó trở
thành một khái niệm mà từ đó, các ngơn ngữ lập trình có chứa các gói, các
giao diện lập trình (API) để hỗ trợ các nhà lập trình dễ dàng trong việc lâp
trình liên quan đến mạng qua giao thức TCP. Điển hình là ngơn ngữ Java
mà em sẻ giới thiệu ngay sau đây.


4


Chươ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ông
báo kết quả.
 Tạo 1 đồng hồ đếm ngược kiểm soát thời gian suy nghĩ trong 1
vá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ắn
cho 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ông
báo kết quả.
 Tạo 1 đồng hồ đếm ngược kiểm soát thời gian suy nghĩ trong 1
vá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ắn
cho 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 .

5


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ết
nối, đánh qua lại giữa 2 người chơi, xử lí thắng thua, lưu lại lịch sử
củ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


Hình 3: Giao diện chính bên Server

Hình 4: Giao diện chính bên Client

7


Hình 5: Giao diện lịch sử đấu

4.3

Chương trình
4.3.1 Cấu trúc của chương trình

8


4.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

9


Hình 4: Xử lý sự kiện cho nút thố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


Hình 7: Xử lí các u cầu Client gửi tới

Hình 8: Tạo nút gửi tin nhắn

11


Hình 9: Hiển thị Ơ đánh

Hình 10: Lưu lại lịch sử

Hình 11: Webcam


12


 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

13


Hì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 thốt chương trình

14


Hì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


15


Hình 8: Xử lý sự kiện nút gửi tin nhắn

Hình 9: Hiển thị ô đánh

16


Hình 10: Xử lý thua

Hình 11: Webcam

 File: bdImgClient.java

Hình 12: Tạo hiệu ứng viền

17


Chươ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.

5.3 Hướng phát triển
- Cần bổ sung thêm nhiều chức năng để chương trình game trở nên
hồn chỉnh hơn.
- Tìm hiểu và hoàn thiện một số chức năng của chương trình game
chưa được thực hiện.
- 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



×