Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
844 KB
Nội dung
TRƯờNG ĐạI HọC VINH KHOA CÔNG NGHệ THÔNG TIN - Trịnh Đức Trung ch-ơng trình đánh cờ carô qua mạng Đồ áN TốT NGHIệP đại học Vinh 5-2009 ỏn tốt nghiệp Đánh cờ Carô qua mạng MỤC LỤC Mục lục Trang Phần mở đầu Chƣơng I Tổng quan ngôn ngữ Java 1.1 Gới thiệu ngôn ngữ Java 1.2 Vài nét ngôn ngữ Java 1.2.1 Ngôn ngữ lập trình Java 1.2.2 Máy ảo Java (Java Virtual Machine) 1.2.3 Tính dễ chuyển mang tính phần mềm 1.2.4 Java với việc quản lý nhớ 1.2.5 Java WWW (World Wide Web) 10 1.3 Một số đặc điểm bật ngơn ngữ lập trình Java 11 1.3.1 Máy ảo Java (JVM - Java Virtual Machine) 11 1.3.2 Thông dịch 12 1.3.3 Độc lập 12 1.3.4 Hƣớng đối tƣợng: 12 1.3.5 Đa nhiệm - đa luồng (MultiTasking - Multithreading) 13 1.3.6 Khả chuyển (portable) 13 1.3.7 Hỗ trợ mạnh cho việc phát triển ứng dụng 13 CHƢƠNG II Xây dựng chƣơng trình đánh cờ carô qua mạng 14 2.1 Mục đích chƣơng trình: 14 2.2 Thiết kế giải thuật cho chƣơng trình Client/Server 14 2.2.1 Giao tiếp Socket 14 2.2.2 Thiết kế giải thuật cho chƣơng trình client 17 2.2.3 Thiết kế giải thuật cho chƣơng trình server 17 2.3 Thiết kế giải thuật cho trị chơi Carơ 17 2.4 Cấu trúc chƣơng trình 18 2.4.1 Các lớp phía Client 18 2.4.1.1 Lớp ServerConnection 18 2.4.1.2 Lớp FrameCaro 20 Trang Đồ án tốt nghiệp Đánh cờ Carô qua mạng 2.4.1.3 Lớp CaroClient 22 2.4.1.4 Lớp Board 36 2.4.1.5 Lớp Cell 39 2.4.1.6 Lớp IntroCanvas 42 2.4.2 Các lớp phía Server 44 2.4.2.1 Lớp ClientConnection 44 2.4.2.2 Lớp Server 44 2.4.2.3 Lớp Gomoku 48 Chƣơng III Hƣớng Dẫn Sử Dụng Đánh Giá Chƣơng Trình “Đánh Cờ Carô Qua Mạng " 53 3.1 Hƣớng dẫn sử dụng chƣơng trình 53 3.1.1 Các yêu cầu để chạy đƣợc chƣơng trình 53 3.1.2 Thiết lập kết nối sở liệu cho chƣơng trình 53 3.1.3 Chạy chƣơng trình 53 3.1.3.1 Chạy máy chủ Carô 53 3.1.3.2 Chạy chƣơng trình đánh cờ Carơ 54 3.2 Kết xử lý 57 Tài liệu tham khảo 58 Lời cảm ơn Đồ án tốt nghiệp đại học công trình khoa học quan trọng sinh viên Tuy nhiên bắt tay vào nghiên cứu đề tài, viết báo cáo thuyết trình trƣớc hội đồng cịn nhiều bỡ ngỡ khơng tránh khỏi sai sót, mong thầy bạn thơng cảm có góp ý q báu nhằm hồn thiện cho sản phẩm Em xin chân thành cảm ơn: _ Ban giám hiệu nhà trƣờng quan tâm, tạo điều kiện thuận lợi để chúng em học tập rèn luyện tốt _ Các thầy cô khoa công nghệ thông tin tận tâm giảng dạy, truyền đạt kiến thức quý báu giúp em hoàn thành đƣợc luận văn tốt nghiệp phục vụ cho công việc em sau _ Thầy giáo PGS-TS Mai Văn Trinh hƣớng dẫn, bảo tận tình giúp em hồn thành luận văn tốt nghiệp Trang Đồ án tốt nghiệp Đánh cờ Carô qua mạng _ Các anh chị, bạn bè sinh viên lớp 45k CNTT giúp đỡ trình học tập _ Anh Lê Văn Đơng giúp em q trình tìm hiểu nghiên cứu luận văn tốt nghiệp _ Gia đình toàn thể bạn bè động viên giúp đỡ thời gian học tập làm luận văn Phần mở đầu Ngày nay, xã hội phát triển mạnh mẽ, sống xã hội ngày đƣợc cải thiện nâng cao nên nhu cầu vui chơi, giải trí….ngày lớn Ở châu Á phong trào chơi games phát triển mạnh mẽ với yêu cầu ngày cao Những games chơi độc lập máy tính ngày khơng đáp ứng đƣợc yêu cầu mà thay vào games với nhiều máy tính kết nối với Xuất phát từ nhu cầu em thực đề tài “ĐÁNH CỜ CARÔ QUA MẠNG“ Trƣớc lập trình mạng dễ gặp lỗi, khó khăn phức tạp Lập trình viên phải biết rõ mạng chí phần cứng Tuy nhiên khái niệm việc nối mạng khơng q khó Bạn muốn lấy liệu từ máy đằng đến máy đây, ngƣợc lại Nó hồn tồn giống nhƣ việc đọc ghi file, ngoại trừ điều file tồn máy xa máy định xác điều muốn làm thơng tin mà bạn u cầu hay gởi đến Trang C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng Một sức mạnh Java làm cho lập trình mạng dễ dàng Các chi tiết hạ tầng mạng đƣợc trừu tƣợng hóa nhiều tốt đƣợc Java Virtual Machine(JVM) máy cục cài Java quản lý Mơ hình lập trình bạn sử dụng giống nhƣ lập trình file vậy, thực sự, bạn việc “bọc” kết nối mạng (một socket) đối tƣợng luồng (stream) Chƣơng trình “Đánh cờ Carơ qua mạng” đƣợc xây dựng dƣới áp dụng kỹ thuật lập trình mạng ngôn ngữ Java, SunMicroSystem đƣa vào năm 1991 với ƣu điểm: _ Mã chƣơng trình rõ ràng,dễ đọc , dễ hiểu cô đọng _ Chƣơng trình đƣợc tổ chức thành Class lắp ghép lại với thành khối thống _ Mỗi Class gồm có nhiều Method đảm nhận vai trị khác chƣơng trinh _ Chƣơng trình có tính mềm dẻo cao _ Có khả tái sử dụng tài nguyên Chƣơng I TỔNG QUAN VỀ NGÔN NGỮ JAVA 1.1 Giới thiệu ngôn ngữ Java Java trở lại vào năm 1991, nhóm kĩ sƣ Sun đứng đầu có Patrick Naughton, Sun Fellow James Gosling, muốn thiết kế ngơn ngữ máy tính nhỏ, ngơn ngữ mà đƣợc sử dụng cho thiết bị nhƣ cáp điều khiển TV Bởi thiết bị khơng có nhiều lƣợng hay nhớ, ngôn ngữ phải cực nhỏ code phải chặt chẽ Bởi khác nhà sản xuất chọn CPU khác nhau, quan ngơn ngữ khơng phải lúc thích hợp với kiến trúc Dự án có tên "Green" Các yêu cầu: nhỏ, chặt chẽ, code có tảng trung lập đội quay mơ hình mà Pascel cố gắng bổ sung ngày đầu PC Niklaus Wirth, Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng ngƣời phát minh Pascal mở đƣờng cho việc thiết kế ngơn ngữ portable (có thể di chuyển đƣợc hay đa nền) ngơn ngữ có code trung gian dành cho máy giả lập (Nó thƣờng đƣợc gọi máy ảo, Java virtual machine JVM) Code trung gian đƣợc sử dụng máy có interpreter Các kĩ sƣ nhóm Green sử dụng máy ảo tốt để giải vấn đề Tuy nhiên, ngƣời Sun đến từ tảng Unix họ dựa ngôn ngữ họ C++ thay Pascal Họ tạo nên ngơn ngữ hƣớng đối tƣợng thay hƣớng thủ tục Nhƣng, nhƣ Gosling nói vấn, "Tất ngôn ngữ công cụ, kết thúc" Gosling định gọi ngơn ngữ ơng "Oak" (bởi ơng thích nhìn sồi bên ngồi cửa sổ tay phải Sun) Những ngƣời Sun sau nhận Oak tên ngơn ngữ máy tính tồn họ chuyển tên thành Java Đây lựa chọn thú vị Java tên gọi đảo Indonexia, Đây nơi nhóm nghiên cứu phát triển chọn để đặt tên cho ngơn ngữ lập trình Java chuyến tham quan làm việc đảo Hòn đảo Java nơi tiếng với nhiều khu vƣờn trồng cafe, lý thƣờng thấy biểu tƣợng ly café nhiều sản phẩm phần mềm, cơng cụ lập trình Java Sun nhƣ số hãng phần mềm khác đƣa Vào năm 1992, dự án Green phát hành sản phẩm đầu tiên, đƣợc gọi "*7." Nó thiết bị từ xa thơng minh (Nó có sức mạnh điều khiển vơ tuyến hộp inches, inches, inches) Không may thay, ko có ngƣời thích sản phẩm Sun, nhóm Green phải tìm cách để market cơng nghệ họ Tuy nhiên, không công ty chuẩn điện tử thích Sau nhóm đặt giá project để thiết kế lại hộp cáp TV làm thay đổi với dịch vụ cáp nhƣ video dựa u cầu Họ khơng có hợp đồng (Công ty đƣợc dẫn đầu Jim Clarck - ngƣời bắt đầu Netscape - công ty làm nên thành công Java) Dự án Green (với tên "First Person, Inc.") đƣợc sử dụng năm 1993 nửa năm 1994, tìm kiếm ngƣời mua cơng nghệ - khơng ngƣời đƣợc tìm (Patrich Naughton, ngƣời mà nhóm hầu hết làm cơng việc marketing, 300.000 dặm để bán công nghệ) First Person bị giải thể vào năm 1994 Trong tất điều xảy với Sun giới Web Internet Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng trƣởng thành lớn dần Chìa khố Web browser (trình duyệt) để dịch trang siêu văn lên hình Vào năm 1994, hầu hết ngƣời sử dụng Mosaic, trình duyệt web ko thƣơng mại vƣợt trung tâm siêu máy tính trƣờng Đại học Illinois năm 1993 (Mosaic đƣợc viết Marc Andreessen với 6.85$ nhƣ sinh viên chƣa tốt nghiệp làm việc dự án vừa làm vừa học Sau trở nên tiếng giàu có nhƣ ngƣời thủ lĩnh Netscape) Trong vấn SunWorld, Gosling nói vào năm 1994, nhà lập trình ngơn ngữ nhận "Chúng ta xây dựng trình duyệt tốt Nó vài thứ luồng client/ server luồng mà có số phận, làm: kiến trúc trung lập, thời gian thực, tin cậy, bảo mật - phát hành khơng thực quan trong giới workstation (các trạm) Vì xây dựng browser" Browser đƣợc xây dựng Patrick Naughton Jonathan Payne hình thành browser HotJava Browser HotJava đƣợc viết Java để thể sức mạnh Java Nhƣng nhà xây dựng có ý đến sức mạnh mà đƣợc gọi applets, họ tạo browser có khả chạy code bên trang web Điều "chứng minh công nghệ" đƣợc trình diễn SunWorld vào năm 95, xác vào ngày 23/5/1995 tạo nên hấp dẫn Java tiếp tục Vì Java xuất phát từ dự án nghiên cứu sản phẩm nhằm mục đích sinh lời, cơng ty Sun đồng ý đƣa Java Development Kit (bộ công cụ phát triển Java, bao gồm chƣơng trình dịch hệ thống đáp ứng chạy chƣơng trình) lên Internet miễn phí vào khoảng năm 1995 Trong vòng tháng kể từ cơng bố miễn phí, Java đƣợc trăm ngàn ngƣời lập trình sử dụng Hai năm sau, có tới bốn trăm ngàn nhà phát triển phần mềm Java Vì Java chạy khắp nơi, tổng thị phần tiềm tàng cho toàn nhà lập trình 250 triệu hệ thống máy tính giới Có thể nói khơng có ngôn ngữ khứ gặt hái đƣợc nhiều thành tích thời gian ngắn nhƣ Tuy nhiên, tốc độ chấp nhận Java nhanh, bạn thấy ý kiến cho có "khuyếch trƣơng đáng" Java Cũng dễ hiểu phát triển thƣờng gây ý thực tốt khác khứ Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng Sun cho đời phiên Java vào đầu năm 1996 Mọi ngƣời nhanh chóng nhận Java 1.0 khơng dành cho việc lập trình ứng dụng quan Chắc chắn, bạn sử dụng Java 1.0 để tạo đoạn text applet thần kinh để di chuyển text cách ngẫu nhiên quanh canvas Nhƣng bạn in Java 1.0 Nói cách thẳng thắn, Java 1.0 khơng sẵn sàng cho thời kì sơ khai Sự thành công phiên 1.1 lấp đầy khoảng trống lỗi, cải thiện khả phản xạ thêm vào mơ hình kiện cho lập trình GUI (Graphics User Interface) Tuy nhiên bị giới hạn Tin tức lớn JavaOne vào năm 1998 Java update lên phiên 1.2 thay cho đồ chơi GUI công cụ đồ hoạ với phiên phức tạp tinh vi đến gần với lời hứa "Viết lần, chạy nơi" ("Write Once, Run Anywhere") so với ngƣời tiền nhiệm ngày sau phiên vào tháng 12 năm 1998, phận Marketing đổi tên thành Java Standard Edition Software Development Kit version 1.2 (Java chuẩn công cụ phát triển phần mềm Phiên 1.2) Bên cạnh "Standard Edition" cịn có hai edition khác đƣợc giới thiệu: "Micro Edition dành cho thiết bị nhúng nhƣ cell phones "Enterprise Edition" dành cho việc xử lý phía server Quyển sách đề cập Standard Edition Phiên 1.3 1.4 Standard Edition bƣớc cải tiến vƣợt qua phiên đầu Java với phát triển thƣ viện chuẩn, tăng tính khả tất nhiên có việc fix lỗi Trong thời gian có nhiều thổi phồng Java applet ứng dụng phía client nhƣng Java trở thành platform - lựa chọn cho ứng dụng phía server Phiên 5.0 phiên đầu từ phiên 1.1 đƣợc update thực có ý nghĩa (Phiên khởi đầu số 1.5, nhƣng phiên số đƣợc nhảy thành 5.0 vào 2004) Sau nhiều năm tìm kiếm, kiểu chung (nhƣng tƣơng thích với template C++) đƣợc thêm vào - thách thức thêm đặc trƣng mà ko làm thay đổi máy ảo Vài điểm đặc trƣng có ích ngơn ngữ trở nên hấp dẫn C#: vịng lặp "for each", autoboxing metadata Ngơn ngữ thay đổi nguồn, nhƣng có vài ngơn ngữ số ngơn ngữ có sức thu hút chúng tơi nghĩ nhà lập trình sử dụng chúng cách hăm hở Java có phiên sau: Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp TM Đánh cờ Carô qua mạng (Java Platform, Enterprise Edition): phiên dành cho máy chủ lớn J2EE với sức mạnh xử lý dung lƣợng nhớ lớn TM J2SE (Java Platform, Standard Edition): phiên chuẩn chạy máy PC laptop với số MB nhớ Các máy tính không mạnh máy chủ nhƣng mạnh nhiều so với thiết bị di động TM J2ME (Java Platform, Micro Edition): phiên rút gọn Java cho thiết bị di động giới hạn nhớ xử lý 1.2 Vài nét ngôn ngữ Java - Hệ thống Java bao gồm số cấu phần nhƣ sau: + Ngơn ngữ lập trình Java + Java Virtual Machine (Máy o Java, thông dịch) + Các thƣ viện phần mềm kèm hệ thống + Chƣơng trình duyệt web HotJava chƣơng trình duyệt web khác thích ứng với Java - Bạn nên lƣu ý có số phần mềm bao hàm tên Java nhƣng liên quan lề với Java Chẳng hạn nhƣ javascript Đây ngôn ngữ lệnh (script language) Netscape Communications Corporation xây dựng javascript đƣợc dùng chƣơng trình duyệt Netscape để nhắc ngƣời sử dụng nhập, đọc thông tin, mở đóng cửa sổ phụ trợ v.v javascript hỗ trợ khả lập trình chƣơng trình duyệt nhƣng khơng phải ngơn ngữ ứng dụng vạn nhƣ Java Với việc xây dựng hỗ trợ Java Netscape Navigator 2.0, Netscape giúp cho việc phổ biến rộng rãi Java Đổi lại, Netscape đƣợc Sun cho phép dùng tên Java cho ngôn ngữ lệnh họ javascript chẳng liên quan tới Java, để trở thành ngƣời lập trình Java bạn không cần phải học javascript Dĩ nhiên bạn biết javascript khơng 1.2.1 Ngơn ngữ lập trình Java - Thực Java khơng đƣa nhiều ý tƣởng hoàn toàn mà đổi việc gom lại ý tƣởng hay hệ thống trƣớc Java ngơn ngữ lập trình hƣớng đối tƣợng họ nhƣ C++, Pascal hay Algol60 Các chƣơng trình Java có mơ tả liệu câu lệnh nhóm lại Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng hàm (do Java ngôn ngữ lập trình hƣớng đối tƣợng, hàm thƣờng đƣợc gọi "phƣơng pháp" (method) Các phƣơng pháp gọi tới phƣơng pháp khác Sự thực chƣơng trình đƣợc bắt đầu với phƣơng pháp có tên đặc biệt main() - Java nhanh chóng đƣợc nhiều nhà lập trình cơng nhận Các câu lệnh biểu diễn tƣơng tự nhƣ nhiều ngôn ngữ nhiều trƣờng hợp đồng nhƣ C C++ Mặc dù Java bổ sung số điểm mới, nét phân biệt Java lại đặc điểm mà bỏ qua Chẳng hạn, so sánh với C, Java khơng có: + Số học địa nhớ (con trỏ) + Bộ tiền xử lý + Câu lệnh goto + Chuyển đổi kiểu tự động + Các biến hàm tổng thể + Các định danh xác định kiểu Còn so với C++ Java khơng có: + Các mẫu (template - nhiên ngƣời ta tính đến việc bổ sung đặc điểm cho Java) + Quá tải toán tử (operator overloading) + Đa thừa kế + Đa ABI (Application Binary Interface, giao diện nhị phân ứng dụng) - Nếu bạn khơng phải ngƣời lập trình C++ bạn khơng biết số khái niệm khơng Ngay ngƣời lập trình C++ khơng thiết thành thạo tất khía cạnh Với Java bạn không cần phải biết tới chúng - Tới đây, có lẽ bạn muốn biết liệu Java có thay C++ hay khơng Trên thực tế nói Java "cạnh tranh" với C++ phƣơng diện ngôn ngữ đƣợc xem xét đến để phát triển ứng dụng Tuy nhiên, ngơn ngữ lập trình mức cao khơng thực C++ thời gian ứng dụng riêng Có lý việc ngƣời ta tiếp tục lập trình với C++ là: + Tính tƣơng thích với mã Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng d(g, title, Color.pink, titlefont, h /2 , 0); d(g, name, Color.black, namefont, h * / 4, 0); d(g, foot, Color.black, footfont, h * / 8, 0); } /*class MyMouseAdapter extends MouseAdapter { public void mousePressed(MouseEvent me) { ((Frame)getParent()).setVisible(false); } }*/ } 2.4.2 Các lớp phía Server: 2.4.2.1 Lớp ClientConnection: Lớp phản ánh trung thực ServerConnection Client Nhiệm vụ quản lý tất công việc nhập xuất từ client Lớp có bảng từ khóa đƣợc qui định trƣớc giống nhƣ lớp ServerConnection Các biến chính: id, name: Id máy khách nối với máy chủ busy: máy khách có bận hay khơng (đang chơi cờ, xem cờ) 2.4.2.2 Lớp Server: Đây lớp máy chủ Lớp chạy dƣới dạng tiểu trình, quản lý tất kết nối đến Các biến hàm chính: idcon: Bảng băm chứa danh sách kết nối ClientConnection với số id kết nối liệu đối tƣợng ClientConnection kết nối listGomoku: Lƣu danh sách đối tƣơng Gomoku, gomoku bàn cờ logic, có nhiệm vụ lƣu giữ ván cờ chung hai máy khách listSave: Danh sách thông tin ván cờ lƣu, có yêu cầu xem lại, server vào thông tin để đọc ván cờ từ sở liệu gởi cho máy khách listViewer: Danh sách ngƣời xem ván cờ họ xem, server vào để điều khiển việc gởi thông tin chung Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 47 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carơ qua mạng Các hàm chính: set(): Tạo ClientConnection đến máy khách, với tên đƣợc nhập Code: synchronized void set(String the_id, ClientConnection con) { if (idcon.get(the_id) != null) idcon.remove(the_id); if (listgomoku.get(the_id) != null) listgomoku.remove(the_id); con.setBusy(false); Enumeration e = idcon.keys(); while (e.hasMoreElements()) { String id = (String)e.nextElement(); ClientConnection other = (ClientConnection)idcon.get(id); if (!other.isBusy()) con.write("add " + other + CRLF); } idcon.put(the_id, con); broadcast(the_id, "add " + con); Enumeration ee = listgomoku.keys(); while (ee.hasMoreElements()) { String id = (String)ee.nextElement(); Gomoku other = (Gomoku)listgomoku.get(id); String id1 = other.id1, id2 = other.id2; String name1 = new String(), name2 = new String(); if (idcon.get(id1) != null) { name1 = ((ClientConnection)idcon.get(id1)).getName(); if (idcon.get(id2) != null) { name2 = ((ClientConnection)idcon.get(id2)).getName(); con.write("addview " + id1 + " " + id2 + " " + name1 + " " + name2 + CRLF); } } Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 48 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng } Enumeration es = listsave.keys(); while (es.hasMoreElements()) { String id = (String)es.nextElement(); con.write("addsave " + " " + id + " " + listsave.get(id) + CRLF); } } broadcast(): Gởi thông tin đến tất máy khách trừ máy exclude, ví dụ để báo có máy khách gia nhập vào mạng, hay xóa máy khách Code: synchronized void broadcast(String exclude, String body) { Enumeration e = idcon.keys(); while (e.hasMoreElements()) { String id = (String)e.nextElement(); if (!exclude.equals(id)) { ClientConnection = (ClientConnection)idcon.get(id); con.write(body + CRLF); } } } kill(): Xóa hẳn kết nối đến máy khách, máy khách thoát khỏi mạng Code: synchronized void kill(ClientConnection c) { String id = c.getId(); if (listviewer.get(id) != null && listgomoku.get((String)listviewer.get(id)) != null) { Gomoku gomoku = (Gomoku)listgomoku.get((String)listviewer.get(id)); ((Gomoku)listgomoku.get((String)listviewer.get(id))).deleteView(id); listviewer.remove(id); sendto(gomoku.id1, "chat " + id + " " + c.getName() + " thoat xem van co"); sendto(gomoku.id2, "chat " + id + " " + c.getName() + " thoat xem van co"); Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 49 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng } broadcast(id, "deleteview " + id); if (listgomoku.get(id) != null) listgomoku.remove(id); if (idcon.remove(id) == c) { delete(id); } } multicast(): Gởi thơng tin chung đến nhóm máy xem ván cờ Code: synchronized void multicast(Stack list, String body) { String id; if (!list.isEmpty()) { for (int i = 0; i < list.size(); i ++) { id = (String)list.elementAt(i); ClientConnection = (ClientConnection)idcon.get(id); con.write(body + CRLF); } } } play(): Ghi nƣớc vào đối tƣợng Gomoku Code: synchronized void play(String ids, int mode, int x, int y) { ((Gomoku)listgomoku.get(ids)).SetCell(mode, x, y); Gomoku gomoku = ((Gomoku)listgomoku.get(ids)); multicast(gomoku.getView(), "vplay " + ids + " " + String.valueOf(mode) + ""+ String.valueOf(x) + " " + String.valueOf(y)); if (gomoku.getWin()) { sendto(ids ,"win"); multicast(gomoku.getView(), "vwin " + ids); } Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 50 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng } refresh(): Xóa tất nƣớc Gomoku, lƣu lại từ đầu Code: synchronized void refresh(String ids) { ((Gomoku)listgomoku.get(ids)).refresh(); multicast(((Gomoku)listgomoku.get(ids)).getView(), "vrefresh"); } Và số hàm khác 2.4.2.3 Lớp Gomoku: Đây lớp quản lý ván cờ chung hai máy khách Gomoku bàn cờ logic, có nhiệm vụ lƣu nƣớc cờ xử lý thắng thua Code: public class Gomoku { public int Table[][]; public static int col = 20; public static int row = 20; public boolean Win; public String id1, id2; public Stack Viewlist; public Stack Turns; private int Mode, oppmode; public Gomoku(String i1, String i2) { Table = new int[row][col]; for (int i = 0; i < row; i++) for (int j = 0; j < col; j++) Table[i][j] = -1; id1 = i1; id2 = i2; Win = false; Viewlist = new Stack(); Turns = new Stack(); Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 51 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng } public void refresh() { for (int i = 0; i < row; i++) for (int j = 0; j < col; j++) Table[i][j] = -1; Win = false; Turns.clear(); } public void SetId(String s1, String s2) { id1 = s1; id2 = s2; } public void addView(String ids) { Viewlist.add(ids); } public void deleteView(String ids) { Viewlist.remove(ids); } public Stack getView() { return Viewlist; } public void SetCell(int mode, int x, int y) { Table[x][y] = mode; if (mode == 1) Turns.add(id1 + " " + String.valueOf(mode) + " " + String.valueOf(x) + " " + String.valueOf(y)); else if (mode == 2) Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 52 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng Turns.add(id2 + " " + String.valueOf(mode) + " " + String.valueOf(x) + " " + String.valueOf(y)); Mode = mode; oppmode = (Mode == ? : 1); CheckWin(x, y); } public void CheckWin(int x, int y) { Win = CheckH(x, y) || CheckV(x, y) || CheckD1(x, y) || CheckD2(x, y); } public boolean getWin() { return Win; } public Stack getTurns() { return Turns; } public boolean CheckH(int x, int y) { int i = x, j = y, first = -1, last = -1; while (i > && Table[i - 1][j] == Mode) i = i - 1; if (i > 0) first = Table[i - 1][j]; else first = oppmode; int count = 1; while (i < row - && Table[i + 1][j] == Mode) { i = i + 1; count ++; } if (i < row - 1) last = Table[i + 1][j]; else last = oppmode; return(count == && !(first == oppmode && last == oppmode)); Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 53 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng } public boolean CheckV(int x, int y) { int i = x, j = y, first = -1, last = -1; while (j > && Table[i][j - 1] == Mode) j = j - 1; if (j > 0) first = Table[i][j - 1]; else first = oppmode; int count = 1; while (j < col - && Table[i][j + 1] == Mode) { j = j + 1; count ++; } if (j < col - 1) last = Table[i][j + 1]; else last = oppmode; return(count == && !(first == oppmode && last == oppmode)); } public boolean CheckD1(int x, int y) { int i = x, j = y, first = -1, last = -1; while (i > && j > && Table[i - 1][j - 1] == Mode) { i = i - 1; j = j - 1; } if (i > && j > 0) first = Table[i - 1][j - 1]; else first = oppmode; int count = 1; while (i < row - && j < col - && Table[i + 1][j + 1] == Mode) { i = i + 1; j = j + 1; count ++; } Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 54 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng if (i < row - && j < col - 1) last = Table[i + 1][j + 1]; else last = oppmode; return(count == && !(first == oppmode && last == oppmode)); } public boolean CheckD2(int x, int y) { int i = x, j = y, first = -1, last = -1; while (i > && j < col - && Table[i - 1][j + 1] == Mode) { i = i - 1; j = j + 1; } if (i > && j < col - 1) first = Table[i - 1][j + 1]; else first = oppmode; int count = 1; while (i < row - && j > && Table[i + 1][j - 1] == Mode) { i = i + 1; j = j - 1; count ++; } if (i < row - && j > 0) last = Table[i + 1][j - 1]; else last = oppmode; return(count == && !(first == oppmode && last == oppmode)); } } Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 55 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng Chƣơng III HƢỚNG DẪN SỬ DỤNG va ĐÁNH GIÁ CHƢƠNG TRÌNH “ĐÁNH CỜ CARƠ QUA MẠNG 3.1 Hƣớng dẫn sử dụng chƣơng trình: 3.1.1 Các yêu cầu để chạy đƣợc chƣơng trình: - Máy phải cài JDK 1.3 trở lên - Hỗ trợ ODBC Data Source - Phải có tập tin Server.exe, Caro.exe - Thƣ mục images chứa hình ảnh bàn cờ phải nằm chung thƣ mục với tập tin trên, không giao diện bàn cờ không đẹp 3.1.2 Thiết lập kết nối sở liệu cho chƣơng trình: -Chƣơng trình có sử dụng sở liệu để lƣu ván cờ, trƣớc chạy chƣơng trình bạn cần phải tạo ODBC Data Source cho chƣơng trình System DSN -Mở Data Source (ODBC) Programs\Administrative Tools (Windows 2000/XP), Control Panel (Windows 9x) - Chọn System DSN Nhấn Add… - Chọn Microsoft Access Driver (*.mdb) Nhấn Finish - Data Source Name Gomoku Chọn Database cách nhấn Select… - Trong phần Select Database chọn tập tin Caro_DB.mdb thƣ mục DB Nhấn OK - Nhấn OK Nhấn OK Bạn hoàn thành việc thiết lập sở liệu cho chƣơng trình Bạn khơng nên thay đổi liệu tập tin Caro_DB.mdb 3.1.3 Chạy chƣơng trình: Chƣơng trình gồm tập tin Server.exe (chƣơng trình chạy phía máy chủ) Caro.exe (chƣơng trình chạy phía máy khách) 3.1.3.1 Chạy máy chủ Carô: - Nếu thiết lập sở liệu, bạn chạy tập tin Server.exe Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 56 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carơ qua mạng - Nếu chƣơng trình dịng thơng báo “Server listening on port 2009” máy chủ chạy thành công Máy chủ chạy dƣới chế độ nền, máy khách nối kết đến máy chủ để chơi cờ - Nếu chƣơng trình báo lỗi tự Bạn kiểm tra yếu tố sau: + Máy có cài JDK hay không Nếu chƣa bạn phải cài JDK 1.3 trở lên + Đã thiết lập sở liệu chƣa Nếu chƣa, xem phần thiết lập sở liệu Hình: Giao diện chạy Server 3.1.3.2 Chạy chƣơng trình đánh cờ Carơ: - Chạy tập tin Caro.exe - Nhập địa máy chủ máy chủ máy xa, máy chủ máy khách bạn không cần nhập địa máy chủ - Khi chƣơng trình báo kết nối thành cơng, bạn nhập tên vào để tham gia vào mạng - Bạn chọn đối thủ mạng để thách đấu chơi cờ, xem ván cờ đấu xem lại ván cờ lƣu cách chọn radio button tƣơng ứng theo hƣớng dẫn chƣơng trình Nếu bạn muốn trƣớc thách đấu đánh dấu vào Checkbox “Toi muon di truoc” Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 57 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carô qua mạng - Các máy khách khác chạy chƣơng trình Caro.exe để tham gia chơi cờ Có thể chạy chiều chƣơng trình Caro.exe máy, chƣơng trình đƣợc xem ngƣời chơi khác Giao diện chƣơng trình: Hình 1: Giao diện lúc nhập IP server Hình 2: Giao diện lúc nhập tên Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 58 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carơ qua mạng Hình 3: Giao diện chọn đối thủ Hình 4: Giao diện đƣợc thách đấu Hình 6: Giao diện chọn xem ván cờ đấu Hình 5: Giao diện chơi cờ Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 59 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Đồ án tốt nghiệp Đánh cờ Carơ qua mạng Hình 7: Giao diện xem ván cờ đấu Hình 8: Giao diện chọn xem lại ván cờ lƣu 3.2 Kết xử lý: Nhận xét: - Sau thời gian tìm hiểu lập trình mạng ngơn ngữ lập trình Java em đạt đƣợc số kết nhƣ: chƣơng trình minh họa rõ cách kết nối kiểu Client/Server, giao diện đơn giản, dễ sử dụng, chƣơng trình chạy ổn định, xử lý đƣợc trƣờng hợp dễ gây lỗi nhƣ hai ngƣời thách đấu ngƣời lúc, ngƣời chơi chừng Bên cạnh đó thời gian có hạn nên chƣơng trình cịn có nhiều thiếu sót nhƣ: chƣa có phần ngƣời chơi đánh với máy tính, chƣa có phần tính điểm xếp hạng ngƣời chơi, giao diện dễ sử dụng nhƣng chƣa đẹp nên cần phải cải tiến, tốc độ thị bàn cờ chậm - Hƣớng phát triển: phát triển thêm phần máy khách đánh với máy chủ Có thể phát triển thành mạng chơi cờ có đăng ký thành viên Có thể áp dụng để phát triển loại cờ khác nhƣ cờ vua, cờ tƣớng… Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn Trang 60 C.33.44.55.54.78.65.5.43.22.2.4 22.Tai lieu Luan 66.55.77.99 van Luan an.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.C.33.44.55.54.78.655.43.22.2.4.55.22 Do an.Tai lieu Luan van Luan an Do an.Tai lieu Luan van Luan an Do an Stt.010.Mssv.BKD002ac.email.ninhd 77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77.77.99.44.45.67.22.55.77.C.37.99.44.45.67.22.55.77t@edu.gmail.com.vn.bkc19134.hmu.edu.vn.Stt.010.Mssv.BKD002ac.email.ninhddtt@edu.gmail.com.vn.bkc19134.hmu.edu.vn