Báo cáo Java Lập trình game trúc xanh Các chức năng của trò chơi: tạo mới một màn chơi, chơi lại, tạm dừng, chơi tiếp, tính điểm, thông báo kết quả, thoát khỏi trò chơi, hướng dẫn chơi, thay đổi giao diện
TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC LẬP TRÌNH ANDROID ĐỀ TÀI: LẬP TRÌNH GAME PIKACHU Giáo viên hướng dẫn: GV. LÊ HOÀN Sinh viên thực hiện: Hà Nội, 2013 MỤC LỤC 2 DANH MỤC HÌNH ẢNH 3 DANH MỤC BẢNG 4 LỜI MỞ ĐẦU Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) do Sun Microsystem đưa ra vào giữa thập niên 90. Chương trình viết bằng ngôn ngữ lập trình Java có thể chạy trên bất kỳ hệ thống nào có cài máy ảo Java (Java Virtual Machine). Java là ngôn ngữ lập trình hướng đối tượng. Sức mạnh của phương pháp lập trình hướng đối tượng thể hiện ở chỗ khả năng mô hình hoá hệ thống dựa trên các đối tượng thực tế, khả năng đóng gói và bảo vệ an toàn dữ liệu, khả năng sử dụng lại mã nguồn để tiết kiệm chi phí và tài nguyên, đặc biệt là khả năng chia sẽ mã nguồn trong cộng đồng lập trình viên chuyên nghiệp. Những điểm mạnh này hứa hẹn sẽ thúc đẩy phát triển một môi trường lập trình tiên tiến cùng với nền công nghiệp lắp ráp phần mềm với các thư viện thành phần có sẵn. Một đề tài Java phải làm nổi bật được tính chất của môn học, có tính thực tiễn và mang lại thiết thực và có thể triển khai trên thực tế. Chính vì những lý do đó chúng em đã quyết định lựa chọn đề tài Lập trình trò chơi trúc xanh để làm đề tài kết thúc môn học này. Chương trình có các yêu cầu cơ bản như: − Các chức năng của trò chơi: tạo mới một màn chơi, chơi lại, tạm dừng, chơi tiếp, tính điểm, thông báo kết quả, thoát khỏi trò chơi, hướng dẫn chơi, thay đổi giao diện. − Tương tác giao diện một người chơi, hai người chơi. − Yêu cầu về đồ họa: trò chơi phải được thiết kế sao cho dễ sử dụng, thiết kế hợp lý dễ thao tác. − Xử lý các sự kiện của người chơi trong trò chơi: lật ô, xóa ô, sự kiện nhấn nút. Trong quá trình giảng dạy, nhờ có sự hướng dẫn tận tình của thầy giáo Vũ Đức Minh cùng với sự giúp đỡ của các thầy cô trong khoa, chúng em đã hoàn thành được bài tập với đề tài Lập trình game trúc xanh viết trên ngôn ngữ Java. Từ đó chúng em đã thấy được các trình ứng dụng được tạo ra như thế nào, đồng thời giúp chúng em nắm vững được các phương pháp thuật toán, cách lập trình hướng đối tượng trên Java. Trong quá trình làm đề tài dù đã cố gắng tìm hiểu nhưng vẫn không tránh khỏi sai sót và chưa được hoàn thiện hết các chức năng. Chính vì vậy chúng em mong được sự đóng góp ý kiến của các thầy cô. Chúng em xin chân thành cảm ơn! CHƯƠNG 1. TÓM TẮT ĐỒ ÁN Phần này sẽ trình bày sơ lược về trò chơi “Trúc xanh” một trò chơi khá phổ biến hiện nay, mặc dù nghe cái tên có vẻ mới lạ. 1.1. Tổng quan Khi rảnh rỗi hoặc sau mỗi giờ làm việc căng thẳng thì mỗi người trong chúng ta đều muốn tìm cho mình một trò chơi hoặc một hoạt động để giảm căng thẳng và lấy lại tinh thần. Có thể đó là các hoạt động thể thao, hoặc chơi các trò chơi giải trí tùy thuộc vào quỹ thời gian của từng người, và với những ai có ít quỹ thời gian nhưng muốn có một trò chơi mang tính giải trí cao thì game Trúc xanh là một trong những game đáp ứng được nhu cầu đó. 5 Trúc xanh là một trò chơi được viết theo tựa của trò chơi lật hình - một trò chơi khá phổ biến hiện nay, cái tên “Trúc xanh” là do chúng em tự đặt ra, dựa theo tựa của một game lật hình nổi tiếng trên mạng. Tùy theo những hình ảnh mà trò chơi sử dụng, cái tên cho chò chơi này cũng rât khác nhau như: Đi tìm vật nuôi, Purble Place(Window 7), Critter Match … Hình 1.1: Giao diện trò chơi Critter Match. Mục tiêu chính của đề tài là giúp người chơi tăng cường trí nhớ, giác quan và thấy thoải mái tinh thần sau khi đã chinh phục được hết các ô chứa các hình. Ngoài ra chương trình còn có chức năng chơi hai người để có thể tranh tài cao thấp với nhau xem ai có thể mở được các hình ra nhiều hơn. Đề tài có các mức chơi bình thường, khó và dễ phù hợp với từng người chơi và cũng không kém tính trí tuệ khi người chơi phải tính toán sao cho tổng số lần mở các hình là ít nhất. Đồ án nêu ra chi tiết các bước thực hiện xây dựng trò chơi “Trúc Xanh” sử dụng ngôn ngữ Java và các cách tiếp cận để giải quyết các vấn đề trong trò chơi cũng những kết quả đã đạt được dựa trên một số những ví dụ thử nghiệm trong khi lập trình. 1.2. Phạm vi nghiên cứu, phạm vi ứng dụng - Phạm vi nghiên cứu: tự nghiên cứu. - Phạm vi ứng dụng: cá nhân. 1.3. Chức năng, công việc đã làm được STT Chức năng, công việc Đã làm được 1 Tạo giao diện thân thiện, dễ sử dụng. 2 Có thể chơi 1 người hoặc 2 người. 3 Random ảnh vào các button. 4 Khi đang chơi có thể tạm dừng chơi. 5 Tính điểm và lưu điểm của 10 người chơi có điểm số cao nhất vào trong file. 6 Chọn các mức độ dễ, trung bình, khó. 6 7 Hướng dẫn chơi. Bảng 1.1 Chức năng công việc đã làm được. 7 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương này sẽ trình bày về các cơ sở lý thuyết được sử dụng, mô hình thiết kế trò chơi. 2.1. Ngôn ngữ Java 2.1.1. Lịch sử ra đời Năm 1990, James Gosling được công ty Sun Microsystems giao nhiệm vụ xây dựng một phần mềm lập trình cho hàng điện dân dụng với mục tiêu là nhỏ gọn và tương thích được với nhiều thiết bị phần cứng khác nhau. Lúc đầu nhóm này định dùng C++ nhưng rồi họ nhận thấy C++ không thích hợp vì quá cồng kềnh và đòi hỏi nhiều thiết bị phần cứng để hỗ trợ Vì thế họ đã quyết định xây dựng hẳn một ngôn ngữ mới và đặt tên là Oak ( Sau này được đổi thành tên Java vì Oak đã bị trùng tên ). Đầu tiên Oak được sử dụng trong Dự án Xanh, trong đó nhóm phát triển đã đưa hệ thống kiểm soát vào các thiết bị điện dân dụng như TV, VCR, đèn, điện thoại cũng như tất cả các thiết bị máy vi tính cầm tay. Vào năm 1993, Internet phát triển, do đó các thông tin Internet được chuyển từ môi trường văn bản sang đồ hoạ. Nhóm phát triển Java cho rằng, Java nếu được phát triển sẽ là một ngôn ngữ hoàn hảo nhất cho lập trình trên Web. Vì thế họ đã xây dựng những ứng dụng nhỏ nhúng vào trang Web (gọi là Web Applets) và triển khai cả một ứng dụng hoàn chỉnh, một trình duyệt Web (gọi là hot java) để chứng tỏ khả năng mạnh mẽ của Java. Từ năm 1995, Java nhanh chóng được đón nhận như một công cụ mạnh mẽ cho việc phát triển các ứng dụng cho Internet. Các trình duyệt Web lần lượt đưa ra sự hỗ trợ cho Java, mở đầu là Netscape Communications với Netscape Navigator Web (bản 2.0 ) rồi Microsoft Explorer 3.0 . 2.1.2. Đặc điểm của ngôn ngữ java Nhỏ gọn: Java phiên bản 1.0 khá đơn giản vì kích thước của bộ biên dịch cơ bản và lớp hỗ trợ là rất nhỏ ~ 40Kbyte cho mỗi trình thông dịch và cho lớp hỗ trợ. Kích thước bộ thư viện chuẩn và lớp hỗ trợ phân tuyến chỉ khoảng 175Kbyte. Hướng đối tượng: Mọi ứng dụng viết trên Java đều phải được xây dựng trên các đối tượng và thông qua các đối tượng. Phân tán: Thư viện của Java có lớp mạng ( java.net ). Nó có khả năng truy xuất từ máy chủ ở xa, hoặc truy cập đến các đối tượng thông qua mạng cũng dễ dàng. Thông dịch: Khi file nguồn của java được biên dịch hoàn toàn sang file .class thì nó dễ dàng chạy được trên nhiều môi trường, nền tảng khác nhau chứa bộ thông dịch. 8 Mạnh mẽ: Một chương trình Java phải đòi hỏi tính chắc chắn, không dễ tuỳ tiện trong khai báo biến, Java không cung cấp biến con trỏ như các ngôn ngữ lập trình khác. Bảo mật cao: Java không chỉ là ngôn ngữ lập trình thuần tuý mà còn cung cấp nhiều mức để kiểm soát tính an toàn khi thực thi chương trình. Máy ảo: Khi mã nguồn được biên dịch dưới dạng bytecode, Java tạo ra các máy ảo trên mỗi hệ thống để các ứng dụng chạy được dễ dàng. Khả chuyển: Mã nguồn Java sau biên dịch có thể chạy được trên mọi nền tảng chỉ dựa vào máy ảo. Chính vì thế mà Java có 1 khẩu hiệu “ write once run anywhere”. Hiệu quả: Java khá chậm so với một số ngôn ngữ khác như C/C++ bởi nó phải mất công biên dịch sang file.class rồi lại thông dịch để chạy, tuy nhiên, ở các môi trường khác thì Java phát huy tương đối hiệu quả tính năng nhỏ gọn và khả chuyển của mình. Đa tuyến: Java hỗ trợ lập trình đa tuyến, lập trình song song tránh được những tính tuần tự nhàm chán, nâng cao thời gian thực thi công việc. 2.1.3. Các thành phần cơ bản về java Ký tự và tên Tập ký tự của Java bao gồm: 26 chữ cái từ ‘a’…’z’ và 26 chữ cái từ ‘A’ ’Z’. Các chữ số từ 0 9. Các ký tự như: ‘~’ / ‘ ,’ / ‘ ;’ / “ / “/ ‘ {‘/ ‘ }’/ ‘ (‘ /’ )’ … Các ký tự đặc biệt khác. Trong chương trình, sử dụng rất nhiều tới việc đặt tên, ví dụ tên đối tượng, tên biến, tên hằng, tên phương thức, lớp … vì vậy đều phải có một tên nhất định ( indentifier ). Tên là tổ hợp của bộ ký tự đã được định nghĩa trong ngôn ngữ Java ví dụ tập chữ cái, tập chữ số, các ký tự đặc biệt, dấu gạch dưới ( _ )… Không hạn chế về chiều dài của tên. Cách đặt tên trong Java được giống như cách đặt tên của các ngôn ngữ lập trình khác như C/C++, Pascal… và được định nghĩa như sau: Bao gồm tập các ký tự, mở đầu bắt buộc là chữ cái. Không có dấu cách. Không trùng với từ khoá. Java khác Pascal là phân biệt chữ hoa và chữ thường. Từ khóa Từ khoá còn gọi là key word. Nó là các từ được Java định nghĩa sẵn có ý nghĩa riêng trong chương trình. 9 Abstract Default Goto Null Synchronized Boolean Double If Package This Break Do Import Private Throw Byte Else Implements Protected Throws Case Extends Int Public Transient Catch False Enterface Return True Char Final Instanceof Short Try Class Finally Long Static Void Const Float Native Super Volatile Continue for New Switch While Bảng 1.2 Các từ khóa. Kiểu dữ liệu Các kiểu dữ liệu cơ sở là các kiểu dữ liệu “dùng sẵn “ đã được ngôn ngữ lập trình định nghĩa sẵn kiểu . Trong các ngôn ngữ đã biết các kiểu dữ liệu cơ sở là các kiểu như kiểu số nguyên, số thực, kiểu ký tự … Các kiểu dữ liệu phức hợp, hay còn gọi là các kiểu dữ liệu có cấu trúc như kiểu mảng, kiểu chuỗi ký tự, trong Java còn cung cấp các kiểu như kiểu lớp, kiểu giao diện (interface). Kiểu số nguyên: java định nghĩa 4 kiểu số nguyên: Byte, Short, Int, Long. Kiểu Float: Float được định nghĩa là kiểu số thực. Kiểu ký tự : Tất cả các dữ liệu viết ở dạng chữ ký tự được khai báo bởi từ khóa CHAR. Một ký tự được viết trong hai dấu nháy đơn ‘ ‘. Ðể tiện trao đổi thông tin cần phải sắp xếp, đánh số các ký tự, mỗi cách sắp xếp như vậy gọi là bảng mã. Bảng mã thông dụng hiện nay là bảng mã ASCII. Ép kiểu dữ liệu: Các toán tử chuyển đổi kiểu cho phép chuyển đổi dữ liệu từ kiểu này sang kiểu khác. Ép kiểu đơn giản là đặt trước biểu thức cần chuyển đổi tên kiểu dữ liệu được bọc trong cặp ngoặc đơn ( ). Kiểu logic: Một dữ liệu thuộc kiểu BOOLEAN là một đại lượng chỉ có thể nhận được một trong hai gía trị logic là TRUE (đúng) và FALSE (sai). Qui ước: TRUE > FALSE. Ví dụ các phép AND, OR, NOT, XOR. Biến và hằng Hằng Là đại lượng có giá trị không đổi. Cách khai báo hằng: Data_Type list_of_constant = variable; 10 [...]... qua bài báo cáo chúng ta có thể thấy được cách xây dựng trò chơi “ Trúc xanh Một trò chơi đơn giản nhưng đầy tính trí tuệ, tuy trò chơi khá là đơn giản nhưng việc lập trình ra nó không phải là dễ Việc lập trình cũng gặp không ít khó khăn, nhưng về cơ bản cũng đã đạt được yêu cầu đặt ra Thông qua bài tìm hiểu và xây dựng trò chơi Trúc xanh chúng em đã có thêm nhiều kinh nghiệm trong việc lập trình bằng... giúp đỡ của các thầy cô trong khoa, chúng em đã hoàn thành được bài tập với đề tài Lập trình game trúc xanh viết trên ngôn ngữ Java Từ đó chúng em đã thấy được các trình ứng dụng được tạo ra như thế nào, đồng thời giúp chúng em nắm vững được các phương pháp thuật toán, cách lập trình hướng đối tượng trên Java Trong quá trình làm đề tài dù đã cố gắng tìm hiểu nhưng vẫn không tránh khỏi sai sót và chưa... kinh nghiệm trong việc lập trình bằng ngôn ngữ Java Thiết kế code và xử lý các sự kiện trong ngôn ngữ này Việc lập trình mới chỉ đạt được các yêu cầu về các chức năng, vẫn còn nhiều thiếu sót do hạn chế về thời gian cũng như kinh nghiệm lập trình Trúc xanh là một game ứng dụng cao, mini và khá dễ cài đặt nên có khả năng ứng dụng tốt trong cuộc sống Trong quá trình giảng dạy, nhờ có sự hướng dẫn tận tình... theo cấu trúc sau: public void actionPerformed(ActionEvent event) { // events } 19 2.2 Giới thiệu trò chơi Như đã trình bày ở trên, Trúc xanh là một trò chơi khá đơn giản, các hình ảnh và nội dung của hình ảnh đưa vào chính là những cái mà chúng ta cần quan tâm Làm sao để có thể quản lý được các hình ảnh đưa vào trong trò chơi, xác định được nội dung của từng bức ảnh đó đối sánh và thông báo cho người... các thông tin cần thiết sau đó thông báo để người chơi được biết Các thông tin về điểm cao trong chế độ một người chơi sẽ được lưu lại 21 CHƯƠNG 3 PHÂN TÍCH - THIẾT KẾ Nội dung chương này sẽ trình bày về các yêu cầu đặt ra trước khi thiết kế, phân tích các chức năng rõ hơn và các mục tiêu đã đạt được của chương trình 3.1 Phân tích chương trình Yêu cầu Chương trình phải có giao diện thân thiện, dễ... các trang mạng xã hội vì khả năng cài đặt dễ dàng cũng như tính tương thích cao Trò chơi cũng có thể ứng dụng phát triển trên điện thoại di động một chiếc máy hỗ trợ ngôn ngữ java 4.4 Hướng phát triển Lập trình trò chơi trúc xanh, với ưu điểm đơn giản và dễ chơi giúp cho người chơi rèn luyện trí nhớ, nhưng cũng chính sự đơn giản đó đã làm trò chơi trở lên đơn điệu và hình ảnh đồ họa không được bắt... toàn được bắt có thể gây ra các thông báo không chính xác hay hiển thị không hoàn toàn theo ý muốn Về mặt gaio diện còn đơn giản do kỹ năng lập trình còn chưa cao, kinh nghiệm viết code còn hạn chế, dẫn đến các kỹ thuật chưa được nắm bắt hết 4.3 Khả năng ứng dụng Trúc xanh là trò chơi thử trí nhớ của người chơi, vì có rất hình ảnh giống nhau và sau khi lật ô vuông chúng lại quay về vị trí cũ khiến người... >,=, . bằng ngôn ngữ lập trình Java có thể chạy trên bất kỳ hệ thống nào có cài máy ảo Java (Java Virtual Machine). Java là ngôn ngữ lập trình hướng đối tượng. Sức mạnh của phương pháp lập trình hướng. khai cả một ứng dụng hoàn chỉnh, một trình duyệt Web (gọi là hot java) để chứng tỏ khả năng mạnh mẽ của Java. Từ năm 1995, Java nhanh chóng được đón nhận như một công cụ mạnh mẽ cho việc phát. đưa ra sự hỗ trợ cho Java, mở đầu là Netscape Communications với Netscape Navigator Web (bản 2.0 ) rồi Microsoft Explorer 3.0 . 2.1.2. Đặc điểm của ngôn ngữ java Nhỏ gọn: Java phiên bản 1.0