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

báo cáo đồ án môn JAVA

20 4,3K 23

Đ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 20
Dung lượng 759,64 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để cho em có thể lắm chắc kiến thức và tiếp cận thực tế với một sản phẩm phần mềm, em đã nhận được sự giúp đỡ tận tình từ thầy Vũ Đức Minh giáo viên hướng dẫn em trong đồ án này, cùng vớ

Trang 1

Đồ án môn học với những môn lập trình là khá phổ biến với sinh viên khoa Tin để

tự thống kê kiến thức và lên ý tưởng cho những chương trình của mình Đó là yêu cầu và cũng là thách thức đối với sinh viên khi làm quen với thực hành từ những kiến thức lý thuyết sách vở

Để cho em có thể lắm chắc kiến thức và tiếp cận thực tế với một sản phẩm phần mềm, em đã nhận được sự giúp đỡ tận tình từ thầy Vũ Đức Minh giáo viên hướng dẫn em trong đồ án này, cùng với sự góp ý của một số thành viên trong lớp để đố án của em được hoàn thành

Nhưng do có những hạn chế về kiến thức và kinh ngiệm tìm hiểu thực tế chưa có nên đồ án của em còn nhiều sai sót Em rất mong nhận được sự chỉ bảo, giúp đỡ của các thầy cô giáo và các bạn để bài của em được hoàn thiện hơn Điều quan trọng là những ý kiến của thầy cô giáo sẽ giúp em có thêm hiểu biết và kinh nghiệm để phục vụ cho những

đồ án sau này

Cuối cùng em xin gửi lời cảm ơn đến thầy hướng dẫn Vũ Đức Minh đã giúp em trong quá trình làm đồ án vừa qua

Em xin chân thành cảm ơn!

Trang 2

MỤC LỤC

Trang 3

DANH MỤC HÌNH ẢNH, SƠ ĐỒ

Trang 4

LỜI MỞ ĐẦU

Game cho phép người chơi thỏa sức khám phá và tìm hiểu kiến thức trong thế giới

ảo Bên cạnh đó còn là khả năng cho phép con người thỏa sức tương tác với bạn bè, được tăng cường khả năng giao lưu cộng đồng Ngay những ngày đầu còn trẻ, việc chơi đùa đóng một vai trò rất quan trọng, đó là cách học sơ khai của con người Qua những trò chơi, chúng ta khám phá được bản thân, mối quan hệ với bố mẹ, bạn bè, và thế giới xung quanh mình Bên cạnh sự phát triển những mối quan hệ đó, các trò chơi cũng sẽ giúp chúng ta phát triển những kỹ năng vận động và logic Chẳng hạn như chơi trò gia đình,

nó sẽ tạo nhận thức cho trẻ suy nghĩ về mái ấm, vai trò của bố mẹ Mặc khác, ngày nay với sự phát triển của xã hội công việc làm con người luôn mệt mỏi thì game lại là một trò chơi giải trí hữu hiệu

Tóm tắt đồ án:

Để thuận tiện cho việc giải trí với thời gian ngắn và mọi người có thể tranh thủ chơi trong giờ nghỉ giải lao, hay đơn giản là dành cho các em nhỏ mới hình thành nhận thức Với đề tài này em nghiên cứu và tìm hiểu cách lập trình một Game đơn giản bằng ngôn ngữ Java

Lý do chọn đề tài:

Với nhu cầu giải trí thiết yếu của con người thì game là một sản phẩm không thể thiếu Trong phần lớn trường hợp, trò chơi video không nguy hiểm đối với trẻ em Thậm chí chúng còn có thể đóng góp tích cực vào quá trình phát triển các kỹ năng quan trọng như tư duy sáng tạo, sắp xếp kế hoạch, hợp tác với người khác, tìm hiểu tri thức mới và giải quyết vấn đề Chúng giúp trẻ học được nhiều thực tế trong cuộc sống, nhưng không phải hầu hết trò chơi đó phù hợp với lứa tuổi trẻ em

Chính vì lẽ đó, em viết game này với kiến thức ít ỏi mà mình thu nhận được nhằm mục đích tạo ra một game đơn giản dành cho trẻ em, đồng thời có thể vận dụng được kiến thức cơ bản mà em có nghiên cứu và làm ra đề tài này để củng cố kiến thức về lập trình ngôn ngữ Java, tạo nền móng cho các đề tài lớn sau này

Vì vậy em chọn đề tài: “Game Tìm Đường”

Trang 5

Mục tiêu của đề tài:

Nội dung của đề tài tập trung vào các kiến thức căn bản nhất của lập trình java, giúp thực hành được các kiến thức từ những bước đầu tiếp cận với công nghệ mới này và mang tính chất tham khảo học hỏi Đề tài có nói đến các vấn đề:

• Những căn bản về ngôn ngữ Java: Như làm việc với button, menubar, menuiteam, các biến, hằng…

• Bước đầu với các lệnh điều khiển: Các câu lệnh rẽ nhánh, vòng lặp…

• Đối tượng và lớp

.Phạm vi ứng dụng:

Sử dụng với các bài tập ứng dụng củng cố kiến thức như bài tập lớn Game “Tìm Đường” không thể đưa vào thực tế vì một sản phẩm phần mềm không chỉ là mã máy hay chương trình nguồn của phần mềm Một sản phẩm phần mềm bao gồm toàn bộ chương trình và các tài liệu, liên quan đến việc phát triển, bảo trì, kiểm thử và hướng dẫn sử dụng phần mềm đó Để đưa được vào sử dụng phần mềm phải đáp ứng được những yêu cầu khắt khe của khách hàng như giao diện đẹp, đảm bảo chất lượng khi chơi như không bị lỗi làm gián đoạn cuộc chơi

Phạm vi nghiên cứu:

Xoay quanh những bài học đã học ở giáo trình, bước đầu dùng lại ở các lệnh đơn giản

CHƯƠNG 1: CƠ SỞ LÝ THUẾT 1.1 Ngôn ngữ Java

1.1.1 Ngôn ngữ lập trình.

Java (đọc như "Gia-va") là một ngôn ngữ lập trình dạng lập trình hướng đối tượng(OOP) Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịchmã nguồnthành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch

mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như C++, Python, Perl, PHP, C#

Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn Dùng bộ thư viện chuẩn KFC, nhiều

Trang 6

đoạn code Java chỉ mất vài dòng trong khi C phải mất cả trang giấy Lập trình C rất hay xảy ra lỗi và khó sửa Trong Java, hiện tượng dò rỉ bộ nhớ hoàn toàn có thể tránh bằng

cách định nghĩa vài preprocessor directives như #define

1.1.2 Lịch sử.

Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems năm1991 Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này), họ dự định ngôn ngữ đó thay choC++, nhưng các tính năng giống Objective C Không nên lẫn lộn Java với JavaScript, hai ngôn ngữ đó chỉ giống tên và loại cú pháp như C Công ty Sun Microsystems đang giữ bản quyền và phát triển Java thường xuyên Tháng 04/2011, công

ti Sun Microsystems tiếp tục cho ra bản JDK 1.6.24

Java được tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA)) Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó Môi trường thực thi của Sun Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD & Windows Ngoài ra, một số công ty,

tổ chức cũng như cá nhân khác cũng phát triển môi trường thực thi Java cho những hệ điều hành khác như BEA, IBM, HP Trong đó đáng nói đến nhất là IBM Java Platform

hỗ trợ Windows, Linux, AIX & z/OS

Những chi tiết về ngôn ngữ, máy ảo và API của Java được giữ bởi Cộng đồng Java (doSun quản lý) Java được tạo ra vào năm 1991 do một số kỹ sư ở Sun, bao gồm ông James Gosling, một phần của Dự án Xanh (Green Project) Java được phát hành vào năm 1994, rồi nó trở nên nổi tiếng khi Netscape tuyên bố tại hội thảo SunWorld năm1995 là trình duyệt Navigator của họ sẽ hỗ trợ Java Về sau Java được được hỗ trợ trên hầu hết các trình duyệt như Internet Explorer (Microsoft), Firefox (Mozilla), Safari (Apple)…

Java được sử dụng chủ yếu trên môi trường NetBeans và Oracle Sau khi Oracle mua lại công ty Sun Microsystems năm 2009-2010, Oracle đã mô tả họ là

"người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch"

1.1.3 Phương châm.

• Nó sẽ được "đơn giản, hướng đối tượng và quen thuộc"

• Nó sẽ được "mạnh mẽ và an toàn"

Trang 7

• Nó sẽ được "kiến trúc trung lập và di động".

• Nó sẽ được thực thi với "hiệu suất cao"

• Nó sẽ được "thể hiện, phân luồng và năng động"

• Phiên bản

1.1.4 Công cụ

NetBean IDElà một “môi trường phát triển tích hợp“ (Integrated Development Environment) kiểu như Visual Studio của Microsoft và được xem là một một bộ ứng dụng “must-download” dành cho các nhà phát triển phần mềm

NetBean IDE hỗ trợ nhiều hệ điều hành khác nhau như Windows, Mac, Linux, và Solaris NetBean bao gồm một IDE mã nguồn mở và một nền tảng ứng dụng cho phép nhà phát triển nhanh chóng tạo nên các ứng dụng dành cho web, doanh nghiệp, desktop và thiết bị di động bằng các ngôn ngữ lập trình Java, C/C++, JavaScript, Ruby, Groovy, và PHP

NetBeans IDE 7 cung cấp nhiều tính năng mới như shortcut tìm kiếm trong toàn bộ IDE gọi là QuickSearch, giao diện thận thiện hơn với người dùng, và tính năng tự động biên dịch khi lưu (Compile on Save) Ngoài việc hỗ trợ Java mọi phiên bản (Java SE, Java EE, Java ME), NetBean IDE còn là công cụ lý tưởng cho việc phát triển phần mềm bằng các ngôn ngữ PHP, C/C++, Groovy and Grails, Ruby and Rails, Ajax and JavaScript

1.2 Giới thiệu về chương trình.

Chương trình gồm một mảng 2 chiều 5x5 gồm 3 bức ảnh: mặt mếu, hình con thỏ, và chiếc cửa Nhiệm vụ của chúng ta là đi tìm đường để dẫn các hình mặt mếu về chiếc cửa nhà mình bằng cách đi qua những ô còn trống(chưa có hình), chỉ được di chuyển vào những ô chưa có hình và đi theo hình dấu cộng(+) và các ô phải liền nhau

Khéo léo tính toán các bước di chuyển để từng bước dắt những người đi lạc đường

về đúng nhà mình Bạn sẽ dành chiến thắng nếu dắt được hết các người đi lạc về đúng nhà Lưu ý khi đi bạn chỉ được đi vào những ô còn trồng và đi theo hình chữ thập không được đi tắt theo đường chéo

Kỹ thuật đổ ảnh ngẫu nhiên vào trong mảng:

• Sử dụng hàm random mảng ảnh (lấy trong thư mục đã buil)

int random(int n) {

Random rd=new Random();

return (int)(n*rd.nextDouble());

} boolean testonly(int a[],int n,int value) {

for(int i=0;i<a.length;i++) if(a[i]==value)

return true;

return false;

} for(int i = 0;i < 19; i++)

Trang 8

{ do {

tg = random(24);

}while(testonly(mang,19,tg));

mang[i] = tg;

}

• Chuyển mảnh 2 chiều về thành mảng một chiều ứng với mảng ảnh đã khai báo

for(int i = 0; i < 19;i++) arr[(int)mang[i]/5][mang[i]%5].setIcon(

new ImageIcon(Toolkit.getDefaultToolkit().getImage(

getClass().getResource(giatri[random(9)]))));

arr[4][4].removeActionListener(this);

Trang 9

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Phân tích

2.2 Yêu cầu

Chương trình phải có đủ các chức năng cơ bản: Hướng dẫn, thoát, chơi tiếp, tạm dừng Giao diện thân thiện: Có nhiều hình thù ngộ ngĩnh, sắp xếp dễ nhìn, thuận lợi cho việc tìm kiếm chứ năng

Dễ chơi: Luật chơi đơn giản, hướng dẫn cụ thể

Thời gian giới hạn: Lập kế hoạch hợp lý để viết code và hoàn thiện chương trình

2.3 Phân tích các chức năng của chương trình.

Hình 2.: Chức năng chương trình

Chức năng chương trình:

• Hướng dẫn: Sau khi chọn chơi trò chơi, giao diện trò chơi sẽ được hiển thị Trong menu “Xem” có menu “Hướng dẫn” sẽ hiển thị ra một bảng hướng dẫn các bước chơi game Giúp người chơi biết cách chơi

• Tạm dừng: Khi đang chơi game người chơi có thể tạm dừng để giữ nguyên các bước đã đi trong một khoảng thời gian để chơi tiếp, thì ta có thể chọn chức năng

“Tạm dừng” trong menu “Chơi”

• Chơi tiếp: Khi đang ở chế độ tạm dừng thì ta sẽ có chế độ để tiếp tục cuộc chơi với các bước vừa đi ta chọn chức năng “Chơi tiếp” trong menu “Chơi”

• Thoát: Khi không muốn chơi tiếp trò chơi mà cũng không muốn giữ lại các bước đi

cũ ta chọn chức năng “Thoát” Hệ thống sẽ tự động thoát chương trình nhường chỗ cho các hoạt động khác

Hướng giải quyết các chức năng:

• Hướng dẫn: Tạo một bẳng messgebox để hiện thị hướng dẫn cách chơi khi người chơi chọn chức năng “Hướng dẫn”

• Tạm dừng: Chặn mọi hoạt động có ảnh hưởng tới trò chơi, lưu lại các bước đã đi Khóa tất cả các ô button trong game để không thể tác động đến các bước đã đi, và không được chọn chức năng tạm dừng nữa Như vậy ta lên dùng các lệnh ẩn hiện các menu chức năng, tước bỏ các sự kiện click vào các button

• Chơi tiếp: Khi đang ở chế độ tạm dừng thì người chơi có thể chọn chức năng chơi tiếp khi đã sẵn sàng Khi đó ta khôi phục lại hoạt động của các button

• Thoát: Hiển thị thông báo hỏi có hay không thoát chương trình

Phác họa giao diện chức năng:

Game Tìm Đường

Thoát Chơi tiếp

Tạm dừng Hướng

dẫn

Trang 10

Tên Game

Hình 2.: Phác họa giao diện chức năng

- Trong menu “Xem” có chức năng: “Hướng dẫn” và “Thoát”

- Trong menu “Chơi” có chức năng: “Chơi tiếp ” và “Tạm dừng”

2.4 Khó khăn và hướng giải quyết.

Tạo mảng ảnh random vào trong button

Nó không thể chọn theo kiểu chỉ đường dẫn trực tiếp vào khi thiết kế vì như thế thì các ảnh ở mỗi lần chơi là cố định không tạo được sự thay đổi trong mỗi lần chơi, sẽ làm người chơi nhàm chán

Khi cho ảnh vào thì khai báo mảng ảnh là mảng một chiều còn mảng button để chứa ảnh lại là mảng 2 chiều 5x5

Hướng giải quyết:

Tạo một thư viện ảnh trong thư mục build -> classes -> TimDuong ->Images Sau đó trong chương trình tạo một mảng ảnh bao gồm các ảnh đã có trong thư viện ảnh vừa tạo Viết một hàm random ảnh, để tạo cho sự thay đổi ở mỗi lần chơi sẽ có các bước đi các hướng giải quyết là khác nhau

Biến đổi mảng button 2 chiều về mảng 1 chiều theo công thức:

• Mảng[chỉ số các phần tử] (1)

• Mảng[chỉ số hàng ][chỉ số cột] (2)

• Để chuyển (2) về dạng (1) ta có:

• Mảng[chỉ số các phần tử]= Mảng[(int)chỉ số hàng /5] [chỉ số cột %5]

Chơi Xem

Trang 12

CHƯƠNG 3: KẾT QUẢ 3.1 Giao diện của chương trình.

Hình 3.: Giao diện chính của game

Mô tả chức năng: Người chơi có thể tùy chọn các chức năng như “Tạm dừng”,

“Chơi tiếp” hoặc xem “Hướng dẫn”hoặc có thể “Thoát ” chương trình

3.2 Giao diện chức năng “Hướng dẫn”.

Trang 13

Hình 3.: Giao diện của chức năng hướng dẫn.

Mô tả: Sau khi chọn chức năng “Hướng dẫn” sẽ ra một bảng thông báo hướng dẫn cách chơi

3.3 Giao diện chức năng “Tạm dừng”.

Hình 3.: Giao diện chức năng tạm dừng

Mô tả: Người chơi chọn chức năng tạm dừng để giữ lại các bước đã đi trong một khoảng thời gian tùy ý Muốn chơi tiếp thì phải chọn “Chơi tiếp”

Trang 14

3.4 Giao diện chức năng “Chơi tiếp”.

Hình 3.: Giao diện chức năng chơi tiếp

Mô tả: Sau khi đã chọn chức năng “Tạm dừng” để dừng chương trình, ta chọn chức năng

“Chơi tiếp” để tiếp tục hoạt động của chương trình

3.5 Giao diện chức năng “Thoát.”

Hình 3.: Giao diện chức năng thoát

Mô tả: Sau khi đã chọn chức năng “Thoát” hệ thống sẽ ra thông báo hỏi Yes hay No thoát trò chơi

Trang 15

3.6 Code chương trình.

package javaapplication2;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.lang.Thread;

import java.net.URL;

import java.util.*;

import java.util.logging.Level;

import java.util.logging.Logger;

import javax.swing.Timer;

import javax.swing.ImageIcon;

import javax.swing.text.StyledEditorKit;

public class JavaApplication2 extends JFrame implements ActionListener {

Random rd=new Random();

JButton arr[][];

JFrame fr;

JPanel panel;

MenuBar mnb;

Menu mn[];

MenuItem it[];

int index;

String giatri[]={"Images/anh6.png","Images/anh6.png","Images/anh5.png",

"Images/anh5.png","Images/anh6.png","Images/anh5.png","Images/anh5.png",

"Images/anh5.png", "Images/anh5.png"};

void chayluon()

{

int[] mang = new int[19];

int tg = 0;

fr = new JFrame("Tìm Đường");

panel = new JPanel();

arr = new JButton[5][5];

panel.setLayout(new GridLayout(5,5));

mnb =new MenuBar();

mn=new Menu[2];

it=new MenuItem[4];

mn[0]= new Menu("Xem");

mn[1]= new Menu("Chơi");

mnb.add(mn[0]);

mnb.add(mn[1]);

it[0]=new MenuItem("Hướng dẫn");

it[1]=new MenuItem("Thoát");

it[2]=new MenuItem("Tạm dừng");

Ngày đăng: 03/07/2015, 22:51

HÌNH ẢNH LIÊN QUAN

Hình 2.: Chức năng chương trình. - báo cáo đồ án môn JAVA
Hình 2. Chức năng chương trình (Trang 9)
Hình 2.: Phác họa giao diện chức năng. - báo cáo đồ án môn JAVA
Hình 2. Phác họa giao diện chức năng (Trang 10)
Hình 3.: Giao diện chính của game - báo cáo đồ án môn JAVA
Hình 3. Giao diện chính của game (Trang 12)
Hình 3.: Giao diện chức năng tạm dừng. - báo cáo đồ án môn JAVA
Hình 3. Giao diện chức năng tạm dừng (Trang 13)
Hình 3.: Giao diện của chức năng hướng dẫn. - báo cáo đồ án môn JAVA
Hình 3. Giao diện của chức năng hướng dẫn (Trang 13)
Hình 3.: Giao diện chức năng thoát - báo cáo đồ án môn JAVA
Hình 3. Giao diện chức năng thoát (Trang 14)

TỪ KHÓA LIÊN QUAN

w