Tải bản đầy đủ (.doc) (29 trang)

LẬP TRÌNH GAME RẮN SĂN MỒI BẰNG NGÔN NGỮ JAVA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (337.94 KB, 29 trang )

TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN
HỮU NGHỊ VIỆT - HÀN
KHOA: CÔNG NGHỆ THÔNG TIN

BÁO CÁO
THỰC TẬP TỐT NGHIỆP

Tên:
“LẬP TRÌNH GAME RẮN SĂN MỒI BẰNG NGÔN NGỮ JAVA”

Sinh viên thực hiện: Hồ Hoàng Linh
Lớp:

CCLT07B

Họ tên GVHD:

Đoàn Thanh Sơn

Đơn vị thực tập:

Công ty Finger

Đà Nẵng , tháng 4 năm 2016


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

2

LỜI MỞ ĐẦU


Công nghệ thông tin (CNTT) ngày càng có vai trò quan trọng trong cuộc sống hàng
ngày của chúng ta. Việc ứng dụng CNTT vào các lĩnh vực trong đời sống giúp công
việc được tiến hành nhanh chóng và hiệu quả hơn. Có rất nhiều công việc mới phát
triển song song cùng với CNTT, một trong số đó là lập trình game, một hướng đi dịch
vụ mang lại hiệu quả kinh tế rất lớn.
Em chọn đề tài “Lập trình game Rắn Săn Mồi bằng ngôn ngữ Java” nhằm tìm hiểu
sâu hơn về ngôn ngữ java, từ đó viết một ứng dụng cụ thể nhằm củng cố kiến thức và
làm quen với công việc lập trình trong tương lai.
Em xin chân thành cảm ơn!

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

3

MỤC LỤC
LỜI MỞ ĐẦU.................................................................................................................................................. 2
MỤC LỤC....................................................................................................................................................... 3
DANH MỤC HÌNH ẢNH................................................................................................................................... 5
CHƯƠNG 1 : GIỚI THIỆU VỀ CÔNG TY FINGER................................................................................................. 6
1.1TỔNG QUAN VỀ CÔNG TY FINGER
1.2GIỚI THIỆU CHUNG
1.3LỊCH SỬ VÀ THÀNH TỰU CHÍNH
1.4LĨNH VỰC HOẠT ĐỘNG
1.5SƠ ĐỒ TỔ CHỨC BỘ MÁY CÔNG TY
1.6KHÁCH HÀNG CHÍNH


6
6
6
11
12
13

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT..................................................................................................................... 14
2.1SƠ LƯỢC VỀ NGÔN NGỮ JAVA
14
2.1.1Khái niệm................................................................................................................................................14
2.1.2Lịch sử ra đời..........................................................................................................................................14
2.1.3Sự phát triển của Java............................................................................................................................15
2.1.4Đặc điểm................................................................................................................................................15
2.1.5Khả năng................................................................................................................................................15
2.2MỘT SỐ TÍNH CHẤT CỦA NGÔN NGỮ JAVA
16
2.2.1 Đơn giản................................................................................................................................................16
2.2.2 Hướng đối tượng..................................................................................................................................16
2.2.3 Độc lập phần cứng và hệ điều hành......................................................................................................16
2.2.4 Mạnh mẽ...............................................................................................................................................17
2.2.5 Bảo mật.................................................................................................................................................17
2.2.6 Phân tán................................................................................................................................................18
2.2.7 Đa luồng................................................................................................................................................18
2.2.8 Linh động...............................................................................................................................................18
CHƯƠNG 3 : PHÂN TÍCH VÀ THIẾT KẾ........................................................................................................... 19
3.1 MÔ HÌNH HÓA YÊU CẦU
19
3.1.1 Xác định các tác nhân............................................................................................................................19
3.1.2 Xác định các trường hợp sử dụng (use case)........................................................................................19

3.1.2.1 Liệt kê các trường hợp sử dụng.....................................................................................................................19
3.1.2.2 Đặc tả các trường hợp sử dụng......................................................................................................................19
3.1.2.3 Biểu đồ trường hợp sử dụng.........................................................................................................................20

3.2 MÔ HÌNH HÓA KHÁI NIỆM
20
3.2.1. Các gói trong hệ thống.........................................................................................................................20
3.2.1.1 Các lớp biên...................................................................................................................................................20
3.2.1.2 Các lớp điều khiển.........................................................................................................................................21

3.2.2 Xác định các lớp đối tượng...................................................................................................................21
3.3. BIỂU ĐỒ HOẠT ĐỘNG
23
3.4. MỘT SỐ THUẬT TOÁN SỬ DỤNG TRONG CHƯƠNG TRÌNH
23
CHƯƠNG 4 : XÂY DỰNG CHƯƠNG TRÌNH..................................................................................................... 25
4.1TỔNG QUAN VỀ GAME RẮN SĂN MỒI
25
4.2GIAO DIỆN TRÒ CHƠI
25
4.2.1Giao diện chính.......................................................................................................................................25
4.2.2 Giao diện chơi game.............................................................................................................................26

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

4


4.2.3 Giao diện kết thúc.................................................................................................................................27
4.3. HƯỚNG DẪN SỬ DỤNG
27
4.3.1. Yêu cầu cấu hình...................................................................................................................................27
4.3.2 Màn hình chính.....................................................................................................................................27
KẾT LUẬN..................................................................................................................................................... 28
TÀI LIỆU THAM KHẢO................................................................................................................................... 29

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

5

DANH MỤC HÌNH ẢNH
HÌNH 1: LOGO CÔNG TY FINGER..................................................................................................................... 6
HÌNH 2: LỊCH SỬ HÌNH THÀNH CÔNG TY FINGER.............................................................................................7
HÌNH 3: SƠ ĐỒ TỔ CHỨC BỘ MÁY CÔNG TY.................................................................................................. 13
HÌNH 4: CÁC KHÁCH HÀNG CHÍNH CỦA CÔNG TY FINGER..............................................................................13
HÌNH 5: ĐỘC LẬP PHẦN CỨNG VÀ HỆ ĐIỀU HÀNH......................................................................................... 17
HÌNH 6: BIỂU ĐỒ TRƯỜNG HỢP SỬ DỤNG NGƯỜI CHƠI...............................................................................20
HÌNH 7: CÁC LỚP BIÊN.................................................................................................................................. 21
HÌNH 8: CÁC LỚP ĐIỀU KHIỂN....................................................................................................................... 21
HÌNH 9: CÁC LỚP ĐỐI TƯỢNG....................................................................................................................... 22
HÌNH 10: BIỂU ĐỒ HOẠT ĐỘNG.................................................................................................................... 23
HÌNH 11: GIAO DIỆN CHÍNH.......................................................................................................................... 25
HÌNH 12: GIAO DIỆN CHƠI GAME................................................................................................................. 26

HÌNH 13: GIAO DIỆN CHƠI GAME................................................................................................................. 27
HÌNH 14: GIAO DIỆN KẾT THÚC..................................................................................................................... 27

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

6

CHƯƠNG 1 : GIỚI THIỆU VỀ CÔNG TY FINGER
1.1 Tổng quan về công ty Finger

Hình 1: Logo công ty Finger
Tên công ty : Công Ty Finger
Địa chỉ: - 서서서서서 서서서서 서서서서 24-1 서서서서 11 서 (zip. 150-877)
Điện thoại - 1544-9350
Fax - 070-8224-8769
Email:
Website: />1.2 Giới thiệu chung
Công ty Finger chuyên cung cấp các giải pháp và dịch vụ tài chính qua mobile
và internet, nắm giữ và phát triển kỹ thuật Scraping màn hình trong nước vào tháng 4
năm 2001, công ty đã tạo nên một vị trí như là người lãnh đạo tiên phong trong ngành
công nghiệp PFMS. Dựa trên nền tảng kỹ thuật, công ty đã đi đúng bước trong thời đại
thông tin hóa và giá trị của dịch vụ tài chính là rất quan trọng, cung cấp các dịch vụ tốt
nhất bằng các kỹ thuật hiện đại nhất
Công ty cổ phần Finger chúng tôi (FINANCE+MANAGER) dẫn đầu về Digital
Finance Paradigm trong sứ mạng của mình và sẽ luôn nỗ lực để đáp ứng các yêu cầu
thay đổi không ngừng của khách hàng,quyết tâm phát triển thành một doanh nghiệp

mạnh mẽ và thoải mái trong nguyên lý nền tảng phổ biến
1.3 Lịch sử và thành tựu chính

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

7

Hình 2: Lịch sử hình thành công ty Finger
2001
Thực hiện dịch vụ “ my finger” về thẻ ngoại hối cho hiệp hội thương mại
KOTIS
Xây dựng hệ thống xử lý khiếu nại cho công ty SamSung Card
Thực hiện dịch vụ “my finger” cho tổ chức chứng khoán đầu tư Hàn Quốc
Thực hiện dịch vụ “my finger” cho “ngân hàng JonBuk/ sinh mệnh SamSung”
Thực hiện dịch vụ “my finger” cho BC Card/ LG Card
Thực hiện dịch vụ “my finger” cho hãng Chollian, Unitel, Auction
Thực hiện dịch vụ “my finger” cho ngân hàng Busan/ Ngân hàng Hanmi
Đạt được bằng sáng chế cho Screen scraping
2002
Ký hợp đồng về cung cấp dịch vụ One Force Main cho công ty truyền thông
Hanaro
Cung cấp hệ thống thông báo nội dung nhận tiền theo thời gian thực cho công
ty tour express
Ký hợp đồng cung cấp dịch vụ quản lý tài sản cá nhân cho ngân hàng Kwang Ju
Thực hiện dịch vụ ‘Money@’ cho công ty Yongjin Comerce
Ký hợp đồng xây dựng dịch vụ tổng hợp PFMS cho Housing & Commercial

Bank
Cung cấp giải pháp quản lý nợ và tài sản cho công ty Posco
Ký hợp đồng cung cấp PFMS giữa công ty Takumi Nhật và Finger
Cung cấp giải pháp thông báo nhậntiền cho toàn chi nhánh của Flea Market
Cung cấp dịch vụ ‘Money@’ cho công ty Dacom Cyber pass
Xây dựng dịch vụ version web PFMS cho ngân hàng ngoại hối
Thực hiện dịch vụ “ My finger” cho công ty Lycos
Xây dựng dịch vụ version web PFMS cho ngân hàng Kookmin
Thực hiện dịch vụ “ My finger” cho công ty Edupia
Thực hiện dịch vụ “ My finger” cho công ty Netsgo
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

8

Thực hiện dịch vụ “ My finger” cho công ty bảo hiểm Ssangyong

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

9

2003
Cung cấp dịch vụ chi trả điện tử cho công ty Dongbang / công ty All at

Cung cấp giải pháp tổng hợp tài khoản không dây cho công ty paxnet
Cung cấp hệ thống thông báo nội dung nhận, rút tiền theo thời gian thực tế cho
công ty Samsung capital
Phát triển hệ thống quản lý quỹ cho công ty vận chuyển CJ Korea Express
Cung cấp hệ thống thông báo nội dung nhận, rút tiền theo thời gian thực tế cho
công ty du lịch Hanjin
Ký hợp đồng chương trình dịch vụ tổng hợp tài khoản cho ngân hàng ngoại hối
Hàn Quốc
Cung cấp hệ thống chi trả điện tử cho thẻ BC
2004
Cung cấp dịch vụ chứng nhận lai lịch cho ngân hàng Jeilbank
Cung cấp hệ thống thông báo nội dung nhận, rút tiền theo thời gian thực tế cho
công ty SamSung Card
Cung cấp hệ thống thông báo nội dung nhận, rút tiền theo thời gian thực tế cho
công ty dược Boryung
Ký hợp đồng cung cấp dịch vụ PFMS cho công ty truyền thông Hanaro
Cung cấp hệ thống thông báo nội dung nhận, rút tiền theo thời gian thực tế cho
công ty Tour 2000
Cung cấp hệ thống thông báo nội dung nhận, rút tiền theo thời gian thực tế cho
công ty Huyndai Card
Ký hợp đồng nhận thầu hệ thống cho ngân hàng Kookmin
Cung cấp hệ thống chi trả điện tử cho công ty Joy Dream
Ký hợp đồng nâng cấp quản lý tài sản Monita paxnet
Hệ thống thông báo nội dung nhận, rút tiền theo thời gian thực tế cho công ty
Tour Express
2005
Cung cấp dịch vụ đi kèm chi trả điện tử cho công ty hệ thống Dong Bang
Ký hợp đồng cung cấp dịch vụ Myzone KT (PFMS)
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh



Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

10

Ký hợp đồng bảo tri dịch vụ quản lý quỹ cho công ty vận chuyển CJ Korea
Express
Cung cấp hệ thống thông báo nội dung nhận, rút tiền theo thời gian thực tế cho
công ty Hanwha Tour
Ký hợp đồng hệ thống hoán trả tự động cho công đoàn quản lý an toàn giao
thông đường bộ
Đăng ký bằng sáng chế “ hệ thống và phương pháp quản lý tài sản khách hàng
có sử dụng phương pháp Scraping Screen'
2006
Cung cấp giải pháp sổ chi tiêu điện tử và tích hợp tài khoản thống kê
Cung cấp máy Scraping cho ENC
Ký hợp đồng bảo trì / vận hành với công ty Monita
Ký hợp đồng phát triển kết nối tìm kiếm tài khoản có công ty Monita paxnet
Ký hợp đồng phát triển Scarping sổ tiết kiện cho công ty paxne
Vận hành và phát triển thêm sổ chi tiêu mini SKT Moneta
2007
Xây dựng dịch vụ WorkSiteBank cho ngân hàng Shin Han
Ký hợp đồng bảo trì / vận hành dịch vụ quản lý tài sản cá nhân cho ngân hàng
Kook Min
Xây dựng hệ thống đối tác kinh doanh cho ngân hàng tích hợp Shin Han
Xây dựng premium Banking cho ngân hàng Shin han/ ngân hàng JoHung
2008
Xây dựng dịch vụ tìm kiếm tài khoản CMS ngoại quốc cho ngân hàng ShinHan
Xây dựng dự án cải tiến Internet Banking ở nước ngoài cho ngân hàng Shin

Han
Xây dựng dịch vụ tổng hợp VM Mobile Banking cho ngân hàng doanh nghiệp
Xây dựng hệ thống nhân Homepage của các cơ quan cho ngân hàng Shin Han
2009
Chứng nhận viện nghiên cứu của công ty (Hiệp hội công nghiệp Hàn Quốc)
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

11

Xây dựng hệ thống Internet Banking cho chi nhánh Trung Quốc của ngân hàng
ShinHan
Hoàn tất xây dựng dịch vụ KT ShowSmartBanking
Chọn công ty xây dựng dịch vụ tổng hợp CMS và hoàn tất xây dựng
Xây dựng lại hệ thống Internet Banking Global cho ngân hàng Shin Han
Xây dựng dịch vụ IFRS cho SFG, ngân hàng Shin Han
Xây dựng dịch vụ quản lý tài sản cá nhân Citi-SKT (Mobile Money)
Nhận được giải thưởng công ty phần mềm tiêu biểu của Đại Hàn Dân Quốc
(Giải thưởng ưu tú trong lĩnh vực SW)
Đăng ký bằng sán chế “ hệ thống tạo lý thuyết tài chính và phương pháp”
2010
Hoàn tất xây dựng dịch vụ coupon, bất động sản smart phone cho ngân hàng
Shin Han
Hoàn tất xây dựng dịch vụ tìm tài khoản tổng hợp Smart Phone LGT
Hoàn tất xây dựng dịch vụ SmartPhone Banking cho ngân hàng Shin Han
Hoàn tất xây dựng dịch vụ tổng hợp CMS
Xây dựng Internet Banking Global America Shin Han

Dịch vụ Banknig iPhong cho ngân hàng doanh nghiệp
Nhận được giải thưởng công ty phần mềm tiêu biểu của Đại Hàn Dân Quốc
(Giải thưởng ưu tú trong lĩnh vực SW)
Đăng ký bằng sáng chế cho “ hệ thống và phương pháp phê duyệt có sử dụng
Mobile Money”
1.4 Lĩnh vực hoạt động
Công ty Finger trên nền tảng kỹ thuật cung cấp dịch vụ tài chính thông qua
kênh Cyber , đang cung cấp/ phát triển các giải pháp tài chính Smartphone và quản lý
quỹ tổng hợp chuyên dùng cho các doanh nghiệp ở các cơ quan tài chính trong nước.
Lĩnh vực kinh doanh chính của công ty có chia làm 3 mảng dịch vụ dựa trên giải pháp
mobile và giải pháp web tài chính với đối tượng khách hàng là các cá nhân, doanh
nghiệp, tổ chức công cộng . Ngoài ra , công ty cũng có năng lực kỹ thuật chuyên môn
trong lĩnh vực và giải pháp tùy chỉnh đa dạng sử dụng kỹ thuật scraping màn hình.
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

12

Tài chính Kinh doanh Quản lý công quỹ Quản lý vốn
doanh
Mobile
nghiệp


Internet

banking



Global

Internet
banking



Smart

banking


Smart

wallet



Hệ thống hỗ trợ • Quản



Giải pháp IT

vốn • Giải pháp modul

quản lý tài sản tích hợp
• Standard

firm
(MIDAS on AMS) • Quản lý quỹ banking module
• Hệ thống dịch vụ doanh
nghiệp • Transit
firm

chính lien kết bên ngoài (CMS)
banking module
(F-DIS)
• Tài chính khác
• Dịch vụ quản lý
• Modul kết nối
• Hệ thống thanh tài sản cá nhân
khác
• Tablet
SAP
toán
Internet
(PFMS)
Banking
• Modul kết nối
• Quản lý góp/
service
VAN
phân
bổ
quỹ
• Car calling
• Giải
pháp

• Quản lý phí
• Forest
framework
nghiên
cứu
(FFinger
• Application
RCMS)
• Items
Frame Work for
• Dịch vụ tìm
Hunter
C/S
kiếm thương mại
• Free market
• Web FrameWork
(CM)
• XmlParser
• Tìm kiếm công


Tài

phá sản, nghỉ • Scraping solution
kinh doanh
• Screen Scraping


Mobile solution


Orchestra
1.5 Sơ đồ tổ chức bộ máy công ty
Công ty Finger có viện nghiên cứu Smart và 5 bộ phận chính với khoản 110
nhân viên
Mỗi phòng ban đều có nhân lực chuyên môn nhiều kinh nghiệm phong phú
trong lĩnh vực tài chính. Các nhân viên cũng đang nỗ lực để phát triển các dịch vụ tài
chính .

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

13

Hình 3: Sơ đồ tổ chức bộ máy công ty
1.6 Khách hàng chính
Công ty Finger là công ty tiên phong trong lĩnh vực dịch vụ tài chính phát triển
trên Smart App và quản lý vốn của doanh nghiệp cũng như cá nhân. Công ty hiện có
hơn 70 khách hàng chính là các công ty về xuất bản /du lịch, cơ quan công/bảo
hiểm/Card/ngân hàng và có khoản 40,000 doanh nghiệp hiện đang sử dụng dịch vụ do
công ty phát triển.

Hình 4: Các khách hàng chính của công ty Finger
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java


14

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.1 Sơ lược về ngôn ngữ Java
2.1.1 Khái niệm
Java được biết đến như một ngôn ngữ hướng đối tượng (OO - object-oriented),
bạn có thể sử dụng ngôn ngữ này để lập trình hướng đối tượng. Điều này rất khác so
với lập trình thủ tục, và có thể hơi lạ lùng đối với hầu hết các lập-trình-viên-khônghướng-đối-tượng. Bước đầu tiên bạn phải hiểu đối tượng là gì, vì đó là khái niệm cơ sở
của OOP.
2.1.2 Lịch sử ra đời
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems
năm 1991. 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 ty 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 (do Sun 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ăm 1995 là trình duyệt Navigator của họ sẽ hỗ trợ Java. Về sau Java đượ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".
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

15

2.1.3 Sự phát triển của Java
• 1990: Ngôn ngữ Oak được tạo ra bởi James Gosling trong dự án Green của
• Sun MicroSystems nhằm phát triển phần mềm cho các thiết bị dân dụng.
• 1995: Oak đổi tên thành Java.
• 1996: trở thành chuẩn công nghiệp cho Internet.
2.1.4 Đặc điểm
• Ngôn ngữ hoàn toàn hướng đối tượng (Pure OOP).
• Ngôn ngữ đa nền: "Viết một lần , Chạy trên nhiều nền”.
• Ngôn ngữ đa luồng (multi-threading): xử lý và tính toán song song.
• Ngôn ngữ phân tán (distributed): cho phép các đối tượng của một ứng dụng
được phân bố và thực thi trên các máy tính khác nhau.
• Ngôn ngữ động: cho phép mã lệnh của một chương trình được tải từ một máy
tính về máy của người yêu cầu thực thi chương trình.
• Ngôn ngữ an toàn: hạn chế các thao tác nguy hiểm cho máy tính thật.
• Ngôn ngữ đơn giản, dễ học, kiến trúc chương trình đơn giản, trong sáng.

2.1.5 Khả năng
• Ngôn ngữ bậc cao.
• Có thể được dùng để tạo ra các loại ứng dụng để giải quyết các vấn đề về số,
xử lý văn bản, tạo ra trò chơi, và nhiều thứ khác.
• Có các thư viện hàm hỗ trợ xây dựng giao diện (GUI) như AWT, Swing, …
• Có các môi trường lập trình đồ họa như JBuilder, NetBeans, Eclipse, …
• Có khả năng truy cập dữ liệu từ xa thông qua cầu nối JDBC
• Hỗ trợ các lớp hữu ích, tiện lợi trong lập trình các ứng dụng mạng (Socket)
cũng như truy xuất Web hay nhúng vào trong trang Web (Applet).
• Hỗ trợ lập trình phân tán (Remote Method Invocation) cho phép một ứng dụng
có thể được xử lý phân tán trên các máy tính khác nhau.
• Lập trình trên thiết bị cầm tay (J2ME).
• Xây dựng các ứng dụng trong môi trường xí nghiệp (J2EE).
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

16

2.2 Một số tính chất của ngôn ngữ Java
Java là ngôn ngữ lập trình được phát triển từ ngôn ngữ lập trình C/C++. Nó kế
thừa, phát huy các thế mạnh của ngôn ngữ C/C++ và lược bỏ đi các cú pháp phức tạp
của C/C++. Ngôn ngữ lập trình Java có một số đặc trưng tiêu biểu: đơn giản, hướng
đối tượng, độc lập phần cứng và hệ điều hành, mạnh mẽ, bảo mật, phân tán, đa luồng
và linh động.
2.2.1 Đơn giản
Những người thừa kế mong muốn phát triển một ngôn ngữ dễ học và quen thuộc
với đa số người lập trình. Do vậy Java loại bỏ các đặc trưng phức tạp của C và C++

như:


Loại bỏ thao tác con trỏ, thao tác định nghĩa chồng đoán tử



Không cho phép đa kế thừa mà sử dụng các giao diện



Không sử dụng lệnh “goto”cũng như file header (.h)



Loại bỏ cấu trúc “struct” và “union”

2.2.2 Hướng đối tượng
Java là ngôn ngữ lập trình thần hướng đối tượng, mọi chương trình viết trên Java
đều phải được xây dựng trên các đối tượng. Nếu trong C/C++ ta có thể tạo ra các hàm
(chương trình con không gắn với đối tượng nào) thì trong Java ta chỉ có thể tạo ra các
phương thức (chương trình con gắn liền với một lớp cụ thể). Trong Java không cho
phép các đối tượng có tính năng đa kế thừa mà được thay thế bằng các giao diện
(interface)
2.2.3 Độc lập phần cứng và hệ điều hành
Đối với các ngôn ngữ lập trình truyền thống như C/C++, phương pháp biên dịch
được thực hiện như sau:

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh



Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

17

Hình 5: Độc lập phần cứng và hệ điều hành
2.2.4 Mạnh mẽ
Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu.


Kiểu dữ liệu phải khai báo tường minh



Java không sử dụng con trỏ và các phép toán con trỏ



Java kiểm tra tất cả các truy nhập đến mảng, chuỗi khi thực thi để đảm bảo
rằng các truy nhập đó không ra ngoài giới hạn kích thước.



Trong các môi trường lập trình truyền thống, lập trình viên phải tự mình
cấp phát bộ nhớ, trước khi chương trình kết thúc thì phải tự giải phóng bộ
nhớ đã cấp. Vấn đề có thể nảy sinh khi lập trình viên quên giải phóng bộ
nhớ đã xin cấp trước đó. Trong chương trình Java, lập trình viên không
phải bận tâm đến việc cấp phát bộ nhớ. Quá trình cấp phát, giải phóng
được thực hiện tự động, nhờ dịch vụ thu nhặt những đối tượng không còn

sử dụng nữa (garbage collection).



Cơ chế bẫy lỗi của Java giúp đơn giản hóa quá trình xử lý và hồi phục sau
lỗi.

2.2.5 Bảo mật
Java cung cấp một môi trường quản lý thực thi chương trình với nhiều mức để kiểm
soát tính an toàn:
• Ở mức thấp nhất, dữ liệu và các phương thức được đóng gói bên trong lớp.
Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp.
• Ở mức thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và tuân theo
các nguyên tắc của Java.
• Mức thứ ba được đảm bảo bởi trình thông dịch; chúng kiểm soát xem bytecode
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

18

có đảm bảo các quy tắc an toàn trước khi thực thi không.
• Mức thứ tự kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm
giới hạn truy suất trước khi nạp vào hệ thống.
2.2.6 Phân tán
Java được thiết kế để hỗ trợ các ứng dụng chạy trên mạng bằng các lớp mạng
(java.net). Hơn nữa, Java hỗ trợ nhiều nền chạy khác nhau nên chúng được sử dụng
rộng rãi như là công cụ phát triển trên Internet – nơi sử dụng nhiều nền khác nhau.

2.2.7 Đa luồng
Chương trình Java cung cấp giải pháp đa luồng (Multithreading) để thực thi các
công việc đồng thời. Chúng cũng cung cấp giải pháp đồng bộ giữa các luồng. Đặc tính
hỗ trợ đa luồng này cho phép xây dựng các ứng dụng trên mạng chạy hiệu quả.
2.2.8 Linh động
Java được thiết kế như một ngôn ngữ động để đáp ứng cho những môi trường
mở. Các chương trình Java chứa rất nhiều thông tin thực thi nhằm kiểm soát và truy
nhập đối tượng lúc chạy. Điều này cho phép khả năng liên kết mã động.

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

19

CHƯƠNG 3 : PHÂN TÍCH VÀ THIẾT KẾ
3.1 Mô hình hóa yêu cầu
3.1.1 Xác định các tác nhân
Người chơi.
3.1.2 Xác định các trường hợp sử dụng (use case)
3.1.2.1 Liệt kê các trường hợp sử dụng
- Khởi động trò chơi
- Đóng trò chơi
- Tùy chọn
- Chơi game
- Dừng game
- Tính điểm (High score)
3.1.2.2 Đặc tả các trường hợp sử dụng

• Khởi động trò chơi:
- Tác nhân: Người chơi
- Mô tả: Khi bắt đầu chơi thì người chơi cần phải khởi động trò chơi.
• Đóng trò chơi:
- Tác nhân: Người chơi
- Mô tả: Để đảm bảo an toàn thông tin, dung lượng máy, khi kết thúc trò chơi,
người chơi phải đóng trò chơi.
• Tùy chọn:
-

Tác nhân: Người chơi

-

Mô tả: Người chơi thực hiện bấm phím Space để chơi game.

• Chơi game:
-

Tác nhân: Người chơi

-

Mô tả: Giao diện trò chơi được mở ra, người chơi sẽ chơi ở đây.

• Dừng game:
-

Tác nhân: Người chơi


Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

-

20

Mô tả: Khi đang chơi game nhấn phím Space để tạm dừng và nhấn lại phím
Space để tiếp tục chơi game.

• Tính điểm:
-

Tác nhân: Người chơi

-

Mô tả: Dừng game và hiển thị số điểm đạt được khi game kết thúc.

3.1.2.3 Biểu đồ trường hợp sử dụng
 Biểu đồ trường hợp sử dụng Người chơi

Dong Tro Choi

Khoi Dong Tro Choi

Tuy Chon


Choi Game

Nguoi Choi

Dung Game

Tinh Diem

Hình 6: Biểu đồ trường hợp sử dụng Người chơi
3.2 Mô hình hóa khái niệm
3.2.1. Các gói trong hệ thống
3.2.1.1 Các lớp biên
Lớp biên là lớp nằm trên đường biên của hệ thống với phần thế giới còn lại. Nó
có thể là biểu mẫu, báo cáo hoặc giao diện.
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

21

Trò chơi Rắn Săn Mồi có những lớp biên như sau:

FrmKhoiDongTroChoi

FrmChoiGame

FrmDongTroChoi


FrmDungGame

FrmTuyChon

FrmTinhDiem

Hình 7: Các lớp biên
3.2.1.2 Các lớp điều khiển
Lớp điều khiển là lớp làm nhiệm vụ điều khiển mọi hoạt động của các lớp khác.
Tương ứng với mỗi Use Case có thể sẽ có một lớp điều khiển làm nhiệm vụ gửi
thông điệp cho các lớp liên quan.
Trò chơi Rắn Săn Mồi có những lớp điều khiển sau:

CtlKhoiDongTroChoi

CtlChoiGame

CtlDongTroChoi

CtlDungGame

CtlTuyChon

CtlTinhDiem

Hình 8: Các lớp điều khiển
3.2.2 Xác định các lớp đối tượng
Mô hình khái niệm hay còn gọi là mô hình đối tượng là cách biểu diễn các khái
Khoa: Công nghệ thông tin – Lớp: CCLT07B

Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

22

niệm (đối tượng), các thực thể của phạm vi bài toán.
Dựa vào việc áp dụng các phương pháp khác nhau, chúng tôi đã xác định được
các lớp đối tượng của trò chơi Rắn Săn Mồi như sau:
-

RanAnMoiJava: Lớp này chứa các đối tượng khởi tạo và bắt đầu trò
chơi.

-

GameScreen: Lớp này chứa các hàm vẽ giao diện, vẽ con rắn, vẽ khung

-

Data: Lớp này load hình ảnh trong resource để cắt nhỏ ảnh

-

ConRan: Lớp này chứa các thuộc tính của con rắn lúc khởi tạo, lấy tọa
độ mồi, tốc độ, vẽ rắn.

-


Animation: Tạo ảnh động cho rắn khi di chuyển.
ConRan
ConRan()
resetGame()
setVector()
toaDoCoNamTrongThanRan()
Point layToaDoMoi()
int getCurrentSpeed()
update()
veRan()

GameScreen
GameScreen()
run()
paintBg()
veKhung()
paint()

RanAnMoi
RanAnMoi()
keyTyped()
keyPressed()
keyReleased()

Animation
addImage()
update()
Image getCurrentImage()

Data

loadImage()
loadAllAnim()

Hình 9: Các lớp đối tượng

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

23

3.3. Biểu đồ hoạt động

Play

Choi game

Hình 10: Biểu đồ hoạt động
3.4. Một số thuật toán sử dụng trong chương trình
 Thuật toán lấy tọa độ mồi ngẫu nhiên.
public Point layToaDoMoi(){
Random r = new Random();
int x;
int y;
do{
x= r.nextInt(19);
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh



Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

24

y = r.nextInt(19);
}while(toaDoCoNamTrongThanRan(x,y));

return new Point(x,y);
}
 Thuật toán dừng trò chơi khi đầu rắn đụng thân rắn:
for(int i = 1;iif(x[0]==x[i]&&y[0]==y[i]){
GameScreen.isPlaying=false;
GameScreen.isGameOver=true;

GameScreen.diem=0;
GameScreen.CurrentLevel=1;
}
}

Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


Lập trình game Rắn Săn mồi bằng ngôn ngữ Java

25


CHƯƠNG 4 : XÂY DỰNG CHƯƠNG TRÌNH
4.1 Tổng quan về game Rắn Săn Mồi
 Giới thiệu bài toán
Với sự xuất hiện của một kỷ nguyên mới – Kỷ nguyên của các trò chơi hiện đại
đã và đang làm giới trẻ say đắm, bên cạnh đó những trò chơi cổ điển cũng làm
nổi dậy niềm đam mê, muốn vượt qua mọi thử thách của trò chơi. Tất cả được
hiện thực hóa vào trò chơi Rắn Săn Mồi.
 Đặc điểm nổi bật
-

Một game giao diện thân thiện, đơn giản, dễ sử dụng

-

Thử thách người chơi với tốc độ tăng dần

-

Một game cổ điển được hiện thực hóa với hình ảnh đẹp mắt.

4.2 Giao diện trò chơi
4.2.1 Giao diện chính

Hình 11: Giao diện chính
Khoa: Công nghệ thông tin – Lớp: CCLT07B
Hồ Hoàng Linh


×