làm trò chơi Puzzle sử dụng ngôn ngữ lập trình Java - Pdf 10

Đề tài tốt nghiệp:Trò chơi Puzzle Khoa CNTH-Viện ĐH Mở HN
MỤC LỤC
Lời nói đầu…………………………………………………………..2
Phần I.Giới thiệu Game Puzzle……………………………………….3
Phần II.Giới thiệu công nghệ Java và nền tảng J2SE………………...5
I. Giới thiệu chung về Java…………………………………………….5
II. Máy ảo Java-JVM…………………………………………………...7
III. Giới thiệu J2SE……………………………………………………..11
IV. Giới thiệu gói javax.swing.*………………………………………...11
Phần III.Phân tích thiết kế……………………………………………17
I. Sơ đồ phân rã chứa năng……………………………………………17
II. Sơ đồ luồng dữ liệu mức đỉnh………………………………………18
III. Cấu trúc chương trình……………………………………………….19
IV. Đặc tả chương trinh…………………………………………………25
Phần IV.Kết luận……………………………………………………..27
Page 1 of 28
SV:Phạm Công Thành-Lớp 04B1 GVHD:Nguyễn Đức Tuấn
Đề tài tốt nghiệp:Trò chơi Puzzle Khoa CNTH-Viện ĐH Mở HN
LỜI NÓI ĐẦU
Nói đến game thì chắc phần lớn mọi người đều đồng ý đó là một loại hình
giải trí có sức thu hút rất lớn,nhất là với giới trẻ hiện nay.Đặc biệt sau sự ra đời của
Internet,game online xuất hiện và nhanh chóng gây được sức hấp dẫn to lớn.Chúng
ta có thể chơi game online trên mạng,các game offline trên PC,các game trên các
dòng máy chuyên như PS2,PS3..hiện nay game cũng đang được phát triển mạnh
trên các thiết bị di động như điện thoại di động,các máy Xbox..
Ở các nước phát triển như Nhật Bản,Mỹ..có rất nhiều các công ty chuyên về
sản xuất game như Nintendo,Sony,Sega..và mỗi năm các công ty này đạt doanh thu
hàng tỷ USD.Hay với các nước đi sau như Hàn Quốc,Trung Quốc cũng có được
một ngành công nghê game rất mạnh nhờ có sự đầu tư đúng đắn và chiến lược phát
triển tốt.
Mặc dù VINASA xếp game là một trong 3 định hướng công nghệ chiến

Người chơi sẽ dịch chuyển các số theo các hướng lên xuống,sang trái phải
khi ô cạnh nó là ô trống.Độ khó của trò chơi được qui định bằng giới hạn thời gian
chơi và số lần dịch chuyển.Nghĩa là nếu người chơi chơi hết thời gian giới hạn hay
số lần dịch chuyển giới hạn sẽ bị thua.
Người chơi cố gắng xếp 8 ô về trạng thái win càng nhanh càng tốt và
càng dùng ít lần dịch chuyển càng tốt,khi win người chơi sẽ được một số điểm tính
theo công thức:
Số giây ít hơn so với giây giới hạn*3+Số lần dịch chuyển ít hơn số lần cho
phép*5
Nếu số điểm của bạn nằm trong top 5 người có điểm cao nhất thì bạn
sẽ được ghi danh vào top.
Page 3 of 28
SV:Phạm Công Thành-Lớp 04B1 GVHD:Nguyễn Đức Tuấn
Đề tài tốt nghiệp:Trò chơi Puzzle Khoa CNTH-Viện ĐH Mở HN
Cách thức chơi có vẻ rất đơn giản.Khi tìm hiểu game này có một vấn
đề khá thú vị.Đó là có phải bao giờ bạn cũng có thể đưa game về trạng thái win
như trên không?Trong game có một trạng thái mà không có ai có thể giải quyết,đó
là trạng thái sau:
1 2 3
4 5 6
8 7
Đã có rất nhiều người tham gia giải quyết tình huống này nhưng đến
nay chưa ai có thể thành công.Để biết rõ hơn về tình huống thú vị này bạn có thể
xem them tại địa chỉ sau:http://www.holotronix.com/samlloyd15.php
Chương trình được xây dựng trên nền tảng J2SE của Java.Chủ yếu là
lập trình GUI sử dụng Swing trong Java-sẽ được giới thiệu trong phần II dưới đây.
Page 4 of 28
SV:Phạm Công Thành-Lớp 04B1 GVHD:Nguyễn Đức Tuấn
Đề tài tốt nghiệp:Trò chơi Puzzle Khoa CNTH-Viện ĐH Mở HN
PHẦN II.GIỚI THIỆU VỀ JAVA VÀ NỀN TẢNG J2SE

nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP: sử dụng Java để
làm các ứng dụng web.
J2ME
Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụng Java chạy
trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay, robo và những ứng
dụng điện tử khác.
Java đã trải qua 3 bước phát triển quan trọng: Java 1.0 gắn liền với bản
JDK đầu tiên, Java 2 gắn với JDK 1.2 và Java 5 gắn với J2SDK 1.5
Ngày nay, khi nhắc đến Java người ta không còn chỉ nhắc đến Java như là
một ngôn ngữ mà nhắc đến Java như là một công nghệ hay một nền tảng phát
triển. Nó bao gồm các bộ phận:
• Máy ảo Java: JVM
• Bộ công cụ phát triển: J2SDK
• Các đặc tả chi tiết kĩ thuật (specifications)
• Ngôn ngữ lập trình (programming language)
2.Một số đặc điểm.
Java là một nền tảng phát triển các ứng dụng phần mềm có vị trí rất lớn
trong những năm cuối thể kỷ 20 đầu thế kỷ 21 .Đánh dấu sự trưởng thành của mô
hình hướng đối tượng , nó được coi là một nền tảng mang tính chất cách mạng
trong ngành phần mềm . Mô hình máy ảo Virtual Machine đã cho phép các ứng
dụng viết bằng Java có thể chạy trên nhiều hệ điều hành khác nhau.Khẩu hiệu nổi
tiếng của Java là “Write one,Run anywhere” có thể hiểu là “Viết một lần,chạy khắp
mọi nơi”
Java nhanh chóng được nhiều nhà lập trình công nhận . Các câu lệnh và các
biểu diễn tượng tự trong một số ngôn ngữ như C , C++ . Mặc dù Java đã bổ sung
khá nhiều điểm mới , nét phân biệt nhất của Java lại là những đặc điểm mà nó bỏ
qua :
Page 6 of 28
SV:Phạm Công Thành-Lớp 04B1 GVHD:Nguyễn Đức Tuấn
Đề tài tốt nghiệp:Trò chơi Puzzle Khoa CNTH-Viện ĐH Mở HN

chuyển mang của phần mềm nhiều hơn tất cả các hệ thống trước đó. Tại các cửa
hàng bán phần mềm hiện nay, có lẽ bạn sẽ thấy chủ yếu là các phần mềm dùng cho
Windows (một số chỉ cho Windows 3.1, một số cho cả Windows 95 và Windows
3.1), một số ít cho Mac và một số rất ít (có thể là không có) cho Unix. Khi Java trở
thành ngôn ngữ phổ biến thì bạn có thể chọn từ tất cả các phần mềm có trong cửa
hàng và phần mềm bạn chọn mua sẽ chạy trên tất cả các hệ thống máy tính mà bạn
có. Lúc đó mọi người có được sự lựa chọn rộng rãi hơn và giá phần mềm cũng sẽ
hạ do các nhà cung ứng phần mềm có thể phân bổ chi phí phát triển trên một thị
trường rộng lớn 250 triệu máy tính chứ không phải chỉ cho 91 triệu hệ thống
Windows 3.1 hoặc cho 20 triệu hệ thống Macintosh hoặc cho 8 triệu hệ thống
Unix.
Máy ảo Java phải được triển khai cho mỗi hệ thống máy tính và sau đó mọi
bytecode sẽ chạy được trên hệ thống đó. Ðiểm quan trọng ở đây là bytecode có khả
năng chuyển mang tổng hợp. Ðương nhiên vấn đề đặt ra là làm sao để có các JVM
thích hợp cho từng môi trường. Có lẽ vấn đề này cũng tương tự như quá trình để
cho các máy tính cá nhân (PC) là tương thích DOS trước đây.
Page 8 of 28
SV:Phạm Công Thành-Lớp 04B1 GVHD:Nguyễn Đức Tuấn
Đề tài tốt nghiệp:Trò chơi Puzzle Khoa CNTH-Viện ĐH Mở HN
Một điều lý thú là bytecode không phải chỉ dành riêng cho Java. Nếu sửa đổi
một chương trình dịch đối với một số ngôn ngữ khác như Ada hay Visual Basic để
nó sinh ra được bytecode thì cũng có thể chạy bytecode đó "ngon lành" trên JVM
trên bất kỳ máy tính nào. Ðây là một hướng mà các nhà cung ứng phần mềm đang
quan tâm. Khả năng chạy được mã trên mọi hệ thống máy tính trên hành tinh là lý
do mạnh mẽ để cải cách. ý tưởng về JVM hỗ trợ đắc lực cho hướng cải cách này.
Java có những đảm bảo tính dễ chuyển mang, bao gồm việc cung cấp cùng
một giao diện người lập trình ứng dụng (API, Application Programmer Interface)
trên mọi loại nền; cùng một giao diện nhị phân ứng dụng (ABI, Application Binary
Interface), cụ thể là máy ảo Java, trên mọi loại nền. Ngoài ra ngôn ngữ Java còn có
qui định bắt buộc một số điểm lâu nay vẫn để tuỳ thuộc vào sự cụ thể hoá của

cả không gian nhớ, gây tràn. Một số ngôn ngữ như COBOL-74 không trang bị khả
năng quản lý bộ nhớ động (do vậy một số chương trình hết sức khó viết hoặc
không thể viết được). Một số ngôn ngữ khác như Pascal, C, C++ lại trút gánh nặng
quản lý bộ nhớ lên vai người lập trình. Thậm chí người lập trình còn phải quan tâm
xem phần nào của bộ nhớ đang được sử dụng và phải giải phóng phần nào của bộ
nhớ khi cần thiết. Những chuyện này dẫn đến nhiều loại lỗi khác nhau của các
chương trình, phổ biến là lỗi không giải phóng được bộ nhớ gây ra các "lỗ hổng"
không bao giờ được khai báo lại trong bộ nhớ. Còn tệ hơn là các lỗi gây ra do việc
cố giải phóng những phần bộ nhớ còn đang sử dụng dẫn đến hỏng hoặc mất dữ
liệu.
Các chương trình Java được quản lý về bộ nhớ ở mức hệ thống và người lập
trình không bao giờ phải lo lắng về chuyện đó. Thư viện thời gian chạy của Java sẽ
giám sát các cấu trúc dữ liệu. Khi không còn một tham chiếu nào tới một cấu trúc
dữ liệu thì nó không thể là đang được sử dụng vì chương trình không có cách gì để
đọc hoặc ghi nó. Lúc đó nó sẽ là đối tượng của việc dọn dẹp bộ nhớ.
Java hướng tới việc dọn dẹp bộ nhớ tự động. Việc dọn dẹp bộ nhớ tự động
ảnh hưởng tới tính năng vì nó liên quan đến các quá trình khác chạy trong nền sau
để giám sát việc sử dụng bộ nhớ. Tuy nhiên thực tế đã chỉ ra rằng, ở đây cũng có
một sự cân nhắc đáng giá. Một hệ thống nhỏ thực hiện dọn dẹp bộ nhớ tự động đã
dẫn tới sự cải thiện rất lớn thông qua việc gỡ bỏ một loạt các lỗi của các chương
trình Java. Có thể so sánh, các chương trình C++ chịu trách nhiệm quản lý các
đống (heap) bộ nhớ của riêng chúng do vậy chúng phải có mã dài hơn, mất nhiều
thời gian gỡ rối hơn và các chương trình lớn thường dẫn tới các lỗi rất khó phát
hiện và xử lý về việc dọn dẹp bộ nhớ.
III.Giới thiệu nền tảng J2SE
J2SE : là viết tắt của Java 2 Standard Edition - Vừa là một đặc tả , vừa là
một nền tảng thực thi (bao gồm cả phát triển và triển khai) cho các ứng dụng Java.
J2SE cung cấp các API , các kiến trúc chuẩn , các thư viện và các công cụ cốt lõi
nhất để xây dựng các ứng dụng Java .
Mặc dù J2SE là nền tảng thiên về phát triển các sản phẩm chạy trên máy tính

thành phần đồ họa xây dựng bằng JFC có khả năng biến đổi theo dáng
dấp của giao diện do lập trình viên chỉ định.
- Có sẵn trong thư viện chuẩn JDK từ bản 1.2 trở lên.
2. javax.swing :
- Là một gói nằm trong thư viện JFC gồm nhiều Class và giao diện
(Interfaces) hỗ trợ mạnh cho việc lập trình giao diện đồ họa trên JDK.
Các thành phần của Swing thường được bắt đầu bằng chữ J : Jbutton,
JTextField , Jlabel , JcheckBox , JRadioButton,….
3.Một số gói điển hình của Lớp Swing :
Page 11 of 28
SV:Phạm Công Thành-Lớp 04B1 GVHD:Nguyễn Đức Tuấn


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