1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

25 3,2K 13

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 343,11 KB

Nội dung

Đồ án lập trình mạng-Xây dựng chương trình chơi game trên android Lập trình ứng dụng mạng lập trình socket androidgame caro trên android, java

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN MẠNG VÀ TRUYỀN THÔNG

Trang 2

DANH MỤC HÌNH VẼ VI

TỔNG QUAN ĐỀ TÀI 1

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 2

1.1 Giới thiệu trò chơi cờ Caro 2

1.1.1 Lịch sử nguồn gốc 2

1.1.2 Luật chơi cờ Caro 2

1.2 Tổng quan về mạng máy tính 2

1.2.1 Khái niệm mạng máy tính 2

1.2.2 Các mô hình phân tầng mạng 2

1.3 Mô hình Client – Server 4

1.3.1 Nguyên lý hoạt động 5

1.3.2 Ưu điểm nhược điểm mô hình Client – Server 5

1.4 Giao thức TCP/IP 6

1.5 Khái niệm Socket 6

1.6 Giới thiệu hệ điều hành Android 7

1.6.1 Android là gì ? 7

1.6.2 Các phiên bản HĐH Android 7

1.6.3 Các thành phần của ứng dụng Android 8

CHƯƠNG 2: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 9

2.1 Các chức năng chính 9

2.1.1 Chương trình Server 9

2.1.2 Chương trình Client 9

2.2 Thread trong ứng dụng 9

2.3 Xây dựng chương trình Server 10

2.3.1 Tổ chức quản lý Client 10

2.3.2 Tổng quát chương trình Server 10

2.3.3 Thread giao tiếp với Client 11

2.3.4 Một số thuật toán chương trình chức năng 12

2.4 Xây dựng chương trình Client 13

2.4.1 Xây dựng bàn cờ 13

2.4.2 Thread gửi dữ liệu 15

Trang 3

2.5 Giao diện chương trình 17

2.5.1 Chương trình Server 17

2.5.2 Chương trình Client 17

CHƯƠNG 3: KẾT LUẬN VÀ ĐÁNH GIÁ 20

3.1 Kết quả đạt được 20

3.2 Tồn tại chưa giải quyết 20

3.3 Hướng phát triển 20

Trang 4

Hình 1.1: Mô hình ISO 3

Hình 1.2: Mô hình TPC/IP 3

Hình 1.3: Mô hình Client – Server 4

Hình 1.4: Mô hình Peer – to – peer 4

Hình 1.5: Mô hình Client – Server tổng quan 4

Hình 1.6: Nguyên lý hoạt động mô hình Client – Server 5

Hình 1.7: Quá trình bắt tay ba bước 6

Hình 1.8: Socket trong mô hình TCP/IP 7Y Hình 2.1: Cấu trúc danh sách Client 10

Hình 2.2: Thuật toán chương trình Server 10

Hình 2 3: Thuật toán giao tiếp với Client 11

Hình 2.4: Thuật toán đăng nhập 12

Hình 2.5: Thuật toán Đăng xuất 13

Hình 2.6: Cấu trúc bàn cờ 13

Hình 2.7: Dữ liệu bàn cờ 14

Hình 2.8: Thuật toán xử lý trong sự kiện click 14

Hình 2.9: Thuật toán thread gửi dữ liệu 1 Hình 3.1: Giao diện chương trình Server 16

Hình 3.2: Giao diện đăng nhập 17

Hình 3.3: Giao diện đăng nhập thành công 17

Hình 3.4: Giao diện mời người chơi 18

Hình 3 5: Giao diện thông báo lời mời 18

Hình 3.6: Giao diện chơi game 19

Hình 3.7: Giao diện trò chuyện 19

Trang 5

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ôngminh 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ạimỗ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:

Đề tài “Ứng dụng cở Caro qua mạng trên Android ” nhằm xây dựng một ứng

dụng trên hệ điều hành Android cho phép hai người chơi có thể thi đấu cùng nhauthông qua đường truyền Internet

Trang 6

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Giới thiệu trò chơi cờ Caro

1.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ấthiệ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ứng minh Caro đã được phát minh ở Hy lạp cổ đại và ở Châu

Mỹ trước thời Colombo

1.1.2 Luật chơi cờ Caro

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ạimỗ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:

1.2.1 Khái niệm mạng máy tính

Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi đườngtruyền theo một cấu trúc nào đó và thông qua đó các máy tính trao đổi thông tin qua lạicho 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ínhiệ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ềucô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

Trang 7

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 đầuvà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 rangượ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áytí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

Trang 8

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

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

Trang 9

Mô hình Client - Server (hay còn gọi là mô hình khách chủ) là mô hình cờ bản

và chủ đạo nhất trong các mô hình mạng Xét cho cùng, tất cả các mô hình và côngnghệ mạng phổ biến hiện nay như mô hình mạng ngang hàng (Peer – to – Peer), môhình phân tán đề có nguồn gốc từ mô hình Client – Server

Hình 1.5: Mô hình Client – Server tổng quan

Mô hình Client – Server tổng quan gồm có một chương trình đóng vai trò làClient và một chương trình đóng vai trò Server Đối với mô hình này, một tiến trìnhServer sẽ giao tiếp và phục vụ nhiều tiến trình Client thông qua các phương tiện truyềnthông trong môi trường mạng Các tiến trình Client và Server có thể cùng chạy trênmột hay khác máy tính

1.3.1 Nguyên lý hoạt động

Tiến trình Server luôn thụ động chờ lắng nghe yêu cầu từ phía Client Do đó,theo nguyên lý hoạt động của mô hình này thì Server là tiến trình hoạt động trước đểlắng nghe yêu cầu từ phía Client

Nguyên lý hoạt động của mô hình Client – Server gồm 4 bước

 Bước 1: Client chủ động yêu cầu gửi đến Server

 Bước 2: Server nhận và xử lý yêu cầu của Client

 Bước 3: Server phản hồi kết quả cho Client

 Bước 4: Client nhận và xử lý phản hồi từ Server

Trang 10

Hình 1.6: Nguyên lý hoạt động mô hình Client – Server

1.3.2 Ưu điểm nhược điểm mô hình Client – Server

 Ưu điểm

 Cơ sở dữ liệu tập trung nhưng được xử lý phân tán

 Nâng cao khả năng bảo mật

 Khả mở rộng hệ thống tốt

 Nhược điểm

 Cần liên tục và sự ổn định đường truyền mạng

 Phụ thuộc quá lớn vào Server không tận dụng được tài nguyên hệ thống

1.4 Giao thức TCP/IP

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 khitruyề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ếtnố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ềnbằng cách gửi một phân đọan (Segment) gọi là SYN đến giao thức TCPmáy nhận

 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ácnhận và sau đó là truyền dữ liệu

Trang 11

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ìnhClient/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

Trang 12

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ệnthoạ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đang được phát triển bởi công ty Google cùng với liên minh thiết bị cầm tay mở rộng(viết tắt OHA) Ban đầu Android được phát triển bởi công ty liên hợp android, đượcgoogle hỗ trợ tài chính và mua lại vào năm 2005 Android được công bố trong năm

2007 cùng với sự thành lập của liên minh thiết bị cầm tay mở rộng(OHA), một liênđoàn bao gồm 86 thành viên là các công ty hoạt động trong các mảng phần cứng, phầnmềm, viễn thông dành cho việc thúc đẩy các tiêu chuẩn mở cho các thiết bị di động

1.6.2 Các phiên bản HĐH Android

Từ năm 2008, HDH Android đã được cập nhật rất nhiều và đã từng bước cảitiến hệ thống điều hành, bổ sung thêm các tính năng mới và sửa chữa các lỗi trongphiên bản trước Mỗi bản phát hành chính được đặt tên theo thứ tự chữ cái sau mộtmón tráng miệng hoặc thức ăn có đường

Phiên bản Tên mã Ngày phát hành

Activity: là lớp thể hiện ứng dụng Mỗi màn hình trong ứng dụng là một mở

rộng của lớp Activity Các Activity sử dụng các View tạo thành giao diện đồ họatương tác người dùng để thể hiện thông tin và phản hồi hành động của người dùng

Service: là thành phần chạy ẩn, cập nhật nguồn dữ liệu và thể hiện các Activity,

kích hoạt các Notification Các Service thường thực hiện các xử lí thông thường nhưtiếp tục Activity sau khi các Activity này không hoạt động hoặc hiển thị

Trang 13

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 địnhtrước để thực thi một hoạt động Hệ thống sau đó sẽ xác định đối tượng nào sẽ thựchiệ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 đặttrướ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 chongườ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ườichơ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à

chuyển tiếp dữ liệu đến Client khác nhằm cho phép các Client giao tiếp với nhau

2.1.2 Chương trình Client

Trang 14

đầu game, nếu người chơi đồng ý một ván đấu sẽ bắt đầu và chỉ kết thúc khi có mộtngười thắng cuộc hoặc một trong hai người chơi xin thua

Trò chuyện: Trong lúc một ván đấu đang diễn ra hai người người chơi có thể

gửi tin nhắn cho nhau

2.2 Thread trong ứng dụng

Thread là đơn vị nhỏ nhất của tiến trình được định thời bởi hệ điều hành vàđược bao hàm trong các tiến trình thực thi của máy tính Mỗi một thread có mộtcallstack cho các phương thức, đối số và biến cục bộ của thread đó

Khai báo và khởi động Thread

class A extends Thread {

Public void run() {…}

}

New A().start();

Trang 15

2.3 Xây dựng chương trình Server

2.3.1 Tổ chức quản lý Client

Khi một Client yêu cầu kết nối đến Server bằng cách khai báo một tên đăngnhập, nếu được chấp nhận Server sẽ lưu thông tin của Client để phục vụ liên lạc vớiClient này

Hình 2.1: Cấu trúc danh sách Client

2.3.2 Tổng quát chương trình Server

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

Sau khi kết kênh kết nối được thiết lập thread sẽ đảm nhiệm giữ kếtnối và thực hiện các yêu cầu từ Client

Trang 16

} Public void run(){ }

} New ClientThread(socket).start();

2.3.3 Thread giao tiếp với Client

Hình 2 3: Thuật toán giao tiếp với Client

Trang 17

String strData = buffReader.readLine();

Hàm readLine() sẽ thực thi khi và trả về một chuỗi kí tự mà Client gửi lên

Phân tích

yêu cầu

String arrData[] = strData.split("-");

Chuỗi kí tự Client gử lên Client có dạng: hành động - dữ liệu, do đó arrData[0] sẽ chứa thông tin về yêu cầu từ Client.

Đóng socket socComing.close();

Trước khi đóng socket ta nên đóng các BufferedReade,

InputStreamReader bằng phương thức close();

buffReader.close();inStream.colse();

**Gửi dữ liệu từ Server đến Client thực hiện lần lược các bước sau:

 Duyệt tìm trong danh sách Client mà Server đang quản lý thông quathuộc tính “Tên đăng nhập”

Sử dụng phương thức println() và flush() của đối tượng PrintWriter để

gửi dữ liệu đến Client

2.3.4 Một số thuật toán chương trình chức năng

 Chương trình đăng nhập

Trang 18

Hình 2.5: Thuật toán Đăng xuất

2.4 Xây dựng chương trình Client

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ờ

Trang 19

 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ử

 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) { } }

Trang 20

Hình 2.9: Thuật toán thread gửi dữ liệu

Trang 22

 Giao diện đăng nhập

Hình 3.2: Giao diện đăng nhập

 Giao diện sau khi đăng nhập thành công

Hình 3.3: Giao diện đăng nhập thành công

Trang 23

 Giao diện đợi người chơi chấp nhận lời mời

Hình 3.4: Giao diện mời người chơi

 Giao diện thông báo lời mời

Hình 3 5: Giao diện thông báo lời mời

Trang 24

Hình 3.6: Giao diện chơi game

 Giao diện trò chuyện

Hình 3.7: Giao diện trò chuyện

Trang 25

CHƯƠNG 3: KẾT LUẬN VÀ ĐÁNH GIÁ

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ìnhcò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ìnhcò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

Ngày đăng: 07/06/2014, 16:19

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w