Đồ án lập trình mạng-Xây dựng chương trình chơi game caro trên android - Pdf 14


TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN MẠNG VÀ TRUYỀN THÔNG

ĐỒ ÁN LẬP TRÌNH MẠNG
Đề tài:
ỨNG DỤNG CỜ CARO QUA MẠNG
TRÊN ANDROID
Sinh viên : Trần Quốc Nhật Trung
Lớp : 12TLT.CNTT
Cán bộ hướng dẫn : Ts. Huỳnh Công Pháp
Đà Nẵng, 06/2014
MỤC LỤC
Trang 2
DANH MỤC HÌNH VẼ
Trang 3
Game cờ Caro qua mạng trên Android
TỔNG QUAN ĐỀ TÀI
1. Giới thiệu đề tài
Cùng với sự phát triển của hệ điều hành Android – một nền tảng mã nguồn mở
cho các thiết bị di động do Google phát triển. Thúc đẩy các dòng điện thoại thông
minh của nhiều hãng điện thoại lớn trong liên tiếp ra đời và sử dụng hệ điều hành này.
Vì vậy việc phát triển ứng dụng trên nền tảng đang thu hút một lượng lớn lập trình
viên trên toàn thế giới. Cùng xu thế đó em quyết định chọn đề tài “Ứng dụng cờ Caro
qua mạng trên Android”.
Cờ Caro thuộc thể loại trò chơi bàn cờ, thi đấu tí tuệ giữa hai người. 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:
• Quân 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ó quân cờ.

cho nhau. Đường truyền là hệ thống các thiết bị truyền dẫn có dây hay không dây dùng
để chuyển các tín hiệu điện tử từ máy tính này đến máy tính khác. Các tín hiệu điện tử
đó biểu thị các giá trị dữ liệu dưới dạng các xung nhị phân (on - off). Tất cả các tín
hiệu được truyền giữa các máy tính đều thuộc một dạng sóng điện từ. Tùy theo tần số
của sóng điện từ có thể dùng các đường truyền vật lý khác nhau để truyền các tín hiệu.
Ở đây đường truyền được kết nối có thể là dây cáp đồng trục, cáp xoắn, cáp quang,
dây điện thoại, sóng vô tuyến Các đường truyền dữ liệu tạo nên cấu trúc của mạng.
1.2.2. Các mô hình phân tầng mạng
Quá trình trao đổi dữ liệu giữa hai máty tính diễn ra rất phức tạp bao gồm nhiều
công đoạn. Tại máy gửi, trước khi dữ liệu có thể truyền trên các phương tiện truyền
dưới dạng điện, sóng, ánh sáng. Dữ liệu phải trải qua quá trình biến đổi dữ liệu đầu
vào (văn bản, hình ảnh, âm thanh ), mã hóa, đóng gói,xác định lộ trình gói tin và
cuối cùng chuyển sáng các dạng tín hiệu có thể truyền tương ứng. Quá trình này xảy ra
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 5
Game cờ Caro qua mạng trên Android
ngược lại đối với máy nhận dữ liệu.Do đó để các máy tính có thể trao đổi dữ liệu máy
tính phải được thiết kế thiết kế trên một tiêu chuẩn nào đó.
 Mô hình tham chiếu OSI (Open System Interconnection)
Hình 1.1: Mô hình OSI
 Mô hình TCP/IP
Hình 1.2: Mô hình TPC/IP
1.2.3. Các mô hình ứng dụng mạng
 Mô hình Client – Server
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 6
Game cờ Caro qua mạng trên Android
Hình 1.3: Mô hình Client – Server
 Mô hình mạng ngang hàng
Hình 1.4: Mô hình Peer – to – peer
1.3. Mô hình Client – Server
Mô hình Client - Server (hay còn gọi là mô hình khách chủ) là mô hình cờ bản

Giao thức TCP/IP là giao thức truyền thông có kết nối và tin cậy. Là trước khi
truyền dữ liệu giao thức TCP gửi và giao thức TCP nhận phải thiết lập một kênh kết
nối. Trong quá trình truyền dữ liệu kênh kết nối này phải được duy trì.
Quá trình thiết lập kênh kết nối được thực hiện bởi một quá trình gọi là bắt tay
ba bước.
 Bước 1: Giao thức TCP máy gửi phải yêu cầu thiết lập một kênh truyền
bằng cách gửi một phân đọan (Segment) gọi là SYN đến giao thức TCP
máy nhận.
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 8
Game cờ Caro qua mạng trên Android
 Bước 2: Giao thức TCP máy nhận gửi trả lại một đoạn phân đoạn
(Segment) gọi là ACK để xác nhận đã nhận thành công.
 Bước 3: Giao thức TCP máy gửi tiếp tục gửi một phân đoạn ACK để xác
nhận và sau đó là truyền dữ liệu.
Hình 1.7: Quá trình bắt tay ba bước
1.5. Khái niệm Socket
Socket được xem là là điểm giao tiếp của ứng dụng mạng, do đó chương trình
Client/Server sẽ thực hiện hai thao tác cơ bản sau:
 Để truyền dữ liệu, chương trình chỉ cần ghi dữ liệu vào socket.
 Để nhận dữ liệu, chương trình đọc dữ liệu từ socket.
Có 2 loại socket là TCP socket và UDP socket tương ứng với 2 giao thức TCP
và UDP.
Hình 1.8: Socket trong mô hình TCP/IP
1.6. Giới thiệu hệ điều hành Android
1.6.1. Android là gì ?
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 9
Game cờ Caro qua mạng trên Android
Android là hệ điều hành(viết tắt HDH) được phát triển dựa trên nền tảng Linux,
nó được thiết kế chủ yếu dành cho các thiết bị số sử dụng màn hình cảm ứng như điện
thoại thông minh và máy tính bảng(và hiện nay là cả một số đầu phát HD). Android

tiếp tục Activity sau khi các Activity này không hoạt động hoặc hiển thị.
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 10
Game cờ Caro qua mạng trên Android
Content Provider: là thành phần lưu trữ dữ liệu chia sẻ. Content Provider quản
lí và chia sẻ cơ sở dữ liệu của ứng dụng. Chúng được coi như là phương tiện chia sẻ
dữ liệu giữa các ứng dụng.
Intent: là cấu trúc truyền thông điệp giữa các ứng dụng. Chúng ta có thể sử
dụng Intent để truyền một thông tin tới toàn hệ thống hay tới Activity hay Service định
trước để thực thi một hoạt động. Hệ thống sau đó sẽ xác định đối tượng nào sẽ thực
hiện các hoạt động phù hợp.
Broadcast Receiver: là nơi nhận các Intent. Chúng ta có thể tự tạo một
Broadcast Receiver để ứng dụng có thể nhận được các Intent phù hợp với bộ lọc đặt
trước. Broadcast Receiver tự động bắt đầu khi ứng dụng phản hồi với Intent nhận được
và biến ứng dụng trở thành hướng sự kiện một cách hoàn hảo.
Widget: thành phần trực quan của ứng dụng có thể thêm vào màn hình chính.
Là một dạng Broadcast Receiver, Widget cho phép người dùng tạo ra các ứng dụng
động, tương tác được nhúng ngay trên màn hình chính.
Notification: là thành phần thông báo cho người dùng. Hộp thoại thông báo cho
người dùng mà không gián đoạn các Activity hiện thời. Đây là kĩ thuật thông báo cho
người dùng trong một Service hay một Broadcast Receiver.
CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH
2.1. Các chức năng chính
2.1.1. Chương trình Server
Đăng nhập: Chương trình Server sẽ nhận một tên đăng nhập từ phía người
dùng gửi đến và kiểm tra nếu tên đăng nhập này đã được sử dụng chương trình Server
sẽ thông báo cho người dùng chọn một tên đăng nhập khác, ngược lại cho phép người
chơi đăng nhập vào hệ thống.
Đăng xuất: khi một người chơi gửi yêu cầu đăng xuất chương trình Server sẽ
xóa các thông tin người chơi khỏi hệ thống.
Chuyển tiếp dữ liệu: Chương trình Server sẽ nhận dữ liệu từ Client này và

Hình 2.2: Thuật toán chương trình Server
Hành động Mã lệnh
Tạo socket
Gán cổng
ServerSocket serverSocket = new ServerSocket(port);
Port: số hiệu cổng có giá trị 1 – 65356.
Lắng nghe Socket socket = serverSocket.accept();
Khi hàm accept thực hiện thì một đối tượng socket được tạo ra.
Nghĩa là một kênh kết nối đã được thiết lập.
Khởi chạy
thread giao
tiếp
Sau khi kết kênh kết nối được thiết lập thread sẽ đảm nhiệm giữ kết
nối và thực hiện các yêu cầu từ Client.
Class threadClient extent Thread{
Private Socket socComing;
Public threadClient(Socket soc){
this.socComing = soc;
}
Public void run(){ }
}
New ClientThread(socket).start();
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 13
Game cờ Caro qua mạng trên Android
2.3.3. Thread giao tiếp với Client
Hình 2. 3: Thuật toán giao tiếp với Client
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 14
Game cờ Caro qua mạng trên Android
Hành động Mã lệnh
Lắng nghe

2.4.1. Xây dựng bàn cờ
 Cấu trúc bàn cờ: bàn cờ có tất cả 100 ô được chia thành 9 dòng, 9 cột và được
đánh số từ 0-99 như hình vẽ.
Hình 2.6: Cấu trúc bàn cờ
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 16
Game cờ Caro qua mạng trên Android
 Xác định các vị trí trên bàn cờ: dữ liệu bàn cờ được lưu trong một danh sách,
với mỗi phần tử trong danh sách chứa thông tin của một ô trên bàn cờ. Giả sử
ta ta có vị trí ô X các vị trí A, B, C, D, E, F, G, H (Hình 2.6) được xác định
theo công thức:
A = X – 10 E = X + 10
B = X – 9 F = X + 9
C = X + 1 G = X – 1
D = X + 11 H = X – 11
 Dữ liệu bàn cờ: với mỗi ô sẽ nhận 1 trong 3 giá trị X, O, N với X quân cờ
người chơi thứ nhất, O quân cờ người chơi thứ hai, N ô trống.
Hình 2.7: Dữ liệu bàn cờ
 Sự kiện click trên bàn cờ: để bắt được sự kiện người chơi click trên bàn cờ cần
sử dụng đối tượng OnItemClickListener được khai báo như sau:
OnItemClickListener click = new OnItemClickListener(){
@Override
Public void onItemClick(AdapterView<?> a, View a, int pos,long arg3)
{ } }
Hình 2.8: Thuật toán xử lý trong sự kiện click
2.4.2. Thread gửi dữ liệu
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 17
Game cờ Caro qua mạng trên Android
Hình 2.9: Thuật toán thread gửi dữ liệu
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 18
Game cờ Caro qua mạng trên Android

qua mạng.
3.2. Tồn tại chưa giải quyết
 Do kỹ thuật lập trình còn hạn chế, chưa có kinh nghiệm nên chương tình
còn tồn tại nhiều lỗi và ngoại lệ.
 Thuật toán kiểm tra người thắng cuộc chưa thực sự tối ưu.
 Chưa tự động kết nối lại khi đường truyền bị ngắt.
3.3. Hướng phát triển
 Do kỹ thuật lập trình còn hạn chế, chưa có kinh nghiệm nên chương tình
còn tồn tại nhiều lỗi và ngoại lệ.
 Giao diện chưa được đẹp mắt.
 Chương trình chưa tối ưu.
Trần Quốc Nhật Trung - 12TLT.CNTT Trang 23


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status