SlideShare a Scribd company logo
1 of 55
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
Tải tài liệu tại kết bạn zalo : 0973.287.149
BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------
BÁO CÁO BTL
ĐỒ ÁN CHUYÊN NGÀNH CNPM
Đề tài : Tìm Hiểu JAVA Và Xây Dựng Game Mario
Giảng viên hướng dẫn : Ths. Nguyễn Văn Tỉnh
Nhóm thực hiện : Nhóm 21
Mai Huy Cảnh
Ngô Văn An
Trần Văn Tam
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
Tải tài liệu tại kết bạn zalo : 0973.287.149
Hà Nội, tháng 11 năm 2015
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
Tải tài liệu tại kết bạn zalo : 0973.287.149
LỜI CẢM ƠN
Ngày nay, cùng với sự vươn lên của đất nước, hòa vào đó Công nghệ thông tin
là một ngành đã có những bước phát triển mạnh mẽ không ngừng và nó đã trở thành chiếc
chìa khóa dẫn đến thành công cho nhiều cá nhân, tổ chức. Với những ứng dụng của mình,
công nghệ thông tin đã góp phần mang lại nhiều lợi ích mà không ai có thể phủ nhận được.
Đặc biệt là trong lĩnh vực quản lý kinh tế, công nghệ thông tin đã góp phần tạo ra sự thay
đổi nhanh chóng cho bộ mặt xã hội.
Trong quá trình thực hiện đề tài nhóm đã gặp phải không ít khó khăn và trở ngại, tuy
nhiên, với sự giúp đỡ của bạn bè, cùng sự hướng dẫn tận tình, chỉ bảo cặn kẽ của giảng
viên Ths. Nguyễn Văn Tỉnh, cuối cùng chúng em cũng đã cố gắng hoàn thành đề tài này
với tất cả sự cố gắng và nỗ lực. Chúng em xin được gửi lời cảm ơn tới những người bạn đã
góp ý và giúp đỡ nhóm, và đặc biệt là cảm ơn thầy, người đã giúp chúng tôi xác định được
những yêu cầu và mục tiêu đề tài, truyền dạy các kĩ năng nghiệp vụ cũng như hướng dẫn
cho chúng tôi cách thức thực hiện đề tài..
Do kiến thức thực tế và hiểu biết còn hạn chế nên trong quá trình hoàn thành báo cáo
không tránh khỏi sai sót, nhóm chúng em rất mong sự góp ý đóng góp của thầy và các bạn
để nhóm có thể hoàn thiện bài tập lớn được tốt hơn.
Chúng em xin chân thành cảm ơn!
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
1
Nội Dung
MỞ ĐẦU.............................................................................................................................3
1. Đề tài .........................................................................................................................3
2. Lý do chọn đề tài.......................................................................................................3
3. Mục đích - mục tiêu của đề tài. .................................................................................4
4. Bố cục đề tài..............................................................................................................4
PHẦN I: TÌM HIỂU JAVA.................................................................................................6
I. Giới thiệu về java. .....................................................................................................6
1. Lịch sử java.........................................................................................................6
2. Java là gì? ...........................................................................................................6
3. Đặc điểm của java...............................................................................................6
4. JVM là gì?...........................................................................................................9
5. Các phiên bản JDK.............................................................................................9
II. Tìm hiểu Java. .........................................................................................................10
1. Khái niệm lớp và đối tượng..............................................................................10
2. Từ khóa và cách đặt tên....................................................................................10
3. Kiểu dữ liệu ......................................................................................................11
4. Toán tử trong java.............................................................................................12
5. Một số cấu trúc điều khiển trong Java..............................................................16
6. Access modifier ................................................................................................20
7. Một số từ khóa trong trong java .......................................................................21
8. Mảng.................................................................................................................23
9. Thread...............................................................................................................25
10. BufferedImager.................................................................................................27
11. AudioClip .........................................................................................................29
III. Tìm hiểu java swing.............................................................................................31
1. JFrame...............................................................................................................32
2. JPanel................................................................................................................33
3. JLabel................................................................................................................34
4. JTextField .........................................................................................................36
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
2
5. JButton..............................................................................................................39
Phần II: Quy trình làm game ...........................................................................................41
I. Giới thiệu.................................................................................................................41
1. Trước tiên phát triển trò chơi là sự cộng tác, phối hợp. ...................................41
2. Sự khởi đầu.......................................................................................................41
3. Quá trình xây dựng game hoàn chỉnh...............................................................42
II. Tổng quát, phát triển game gồm 4 giai đoạn:..........................................................43
1. Giai đoạn tiền sản phẩm/ý tưởng......................................................................43
2. Đặc tả lập trình. ................................................................................................44
3. Lập trình, đồ họa, nhạc, hiệu ứng âm thanh. ....................................................44
4. Thử nghiệm, kiểm định, đóng gói. ...................................................................47
PHẦN III: Xây Dựng Game.............................................................................................49
I. Phân tích các đối tượng trong game........................................................................49
II. Biểu đồ Uc hệ thống................................................................................................50
Tổng kết............................................................................................................................51
Tài liệu tham khảo...........................................................................................................52
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
3
MỞ ĐẦU
1. Đề tài
Tên đề tài:
- Tìm hiểu về Java Xây dựng Game Mario
2. Lý do chọn đề tài.
- Hiện nay, ngành Công nghệ thông tin đã có những bước phát triển nhanh chóng
về ứng dụng của nó trong mọi lĩnh vực trong cuộc sống trên phạm vi toàn thế
giới nói chung và việt nam nói riêng. Công nghệ thông tin là một phần không
thể thiếu của cuộc sống văn minh, góp phần đẩy mạnh công cuộc công nghiệp
hóa hiện đại hóa đất nước. Việc ứng dụng những thành quả của khoa học công
nghệ vào trong đời sống, trong công tác là hết sức thiết yếu. Ứng dụng của
công nghệ thông tin kết hợp với truyền thông hóa được xem là một trong những
yếu tố mang tính quyết định trong hoạt động của công ty, các tổ chức,. . . nó
đóng vai trò quan trọng và không thể thiếu. Công nghệ thông tin và truyền
thông hóa góp phần làm thay đổi suy nghĩ, lối mòn tư duy của mỗi con người,
nó giúp con người năng động hơn, kết nối nhanh hơn ở mọi lúc mọi nơi làm
tăng mức độ hiệu quả, năng suất của công việc.
- Java là một công nghệ xây dựng 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. Nó được coi là công nghệ mang tính
cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạy
thống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần. Là một ngôn ngữ
bậc cao như C, C++, Perl, SmallTalk,.. cho nên có thể được dùng để tạo ra các
ứ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
- Trong quá trình tìm hiểu chúng em thấy rất hứng thú với Bộ công cụ hỗ trợ việc
tạo giao diện người dùng (GUI). Swing là một bộ công cụ tiện ích, là một phần
của ngôn ngữ lập trình Java tổng thể nó hỗ trợ cho người dùng tạo ra các cửa sổ
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
4
windows, các layout cho phần mềm, tạo ra các control cho phép người dùng
tương tác nên chúng em đã quyết định sử dụng bộ công cụ này của Java để xây
dựng game Mario để thấy rõ được khả năng mạnh mẽ của nó.
3. Mục đích - mục tiêu của đề tài.
 Mục đích:
- Nắm chắc được được kỹ năng và kiến thức về lập trình.
- Tìm hiểu về lập trình hướng đối tượng trong java.
- Tìm hiểu về bộ công cụ Swing trong java để xây dựng game.
- Nắm bắt được quy trình làm game hoàn chỉnh và theo tiêu chuẩn.
 Mục tiêu:
- Vận Dụng được tính chất của lập trình Hướng Đối Tượng.
- Ứng dụng của Swing vào việc xây dựng Game Mario.
4. Bố cục đề tài.
Nội dung gồm 2 phần :
Phần I: Mở đầu
- Phần này bao gồm các thông tin về đề tài như:
+ Tên đề tài.
+ Mục đích.
+ Lý do để xây dựng đề tài.
Phần II: Nội dung (gồm 3 chương)
 Chương I: Tìm hiểu về Java
- Chương này nhóm tiền hành tìm hiểu về ngôn ngữ lập trình hướng đối
tượng Java. Về phương pháp lập trình hướng đối tượng trong Java, bộ công cụ
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
5
hỗ trợ việc tạo giao diện người dùng, một số thuộc tính cần dung trong java
Swing phục vụ cho nhóm làm game Mario
 Chương II: Tìm hiểu về quy trình làm game
- Trong chương này, nhóm sẽ nêu ra các quy trình làm game hoàn chỉnh: từ
khi bắt đầu một dự án cho đến khi sản phẩm được kiểm tra và đóng gói để sẵn
sàng đưa ra thị trường phục vụ người dùng .
 Chương III: Xây dựng game
- Chương này sẽ bao gồm kịch bản Game và các đối tượng được xây dựng
trong Game.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
6
PHẦN I: TÌM HIỂU JAVA
I. Giới thiệu về java.
1. Lịch sử java.
- Năm 1990, James Gosling, Bill Joy, Patrick Naughton (Sun MicroSystem) phát
triển ngôn ngữ Oak (có nghĩa là “Cây xồi”; do bên ngoài cơ quan của ông
Gosling có trồng nhiều loại cây này).
- Năm 1995 đổi tên thành Java.
- Ngày 27 tháng 1 năm 2010, Sun bị hãng Oracle Corporation mua với giá
US$7,4 tỷ, theo một thỏa ước ký ngày 20 tháng 4 2009. Một tháng sau đó, Sun
được nhập với Oracle USA để trở thành Oracle America, Inc.
2. Java là gì?
- Là một ngôn ngữ OOP đầy đủ, không thể viết 1 ứng dụng hướng thủ tục trong
Java.
- Có thể giải các họ bài toán như những ngôn ngữ lập trình khác.
- Sử dụng 2 cơ chế: Thông dịch | Biên dịch.
- Viết mã một, chạy nó bất cứ nơi nào, bất cứ lúc nào, mãi mãi.
3. Đặc điểm của java
- Đơn giản ( simple). Tương tự như C++ nhưng bỏ bớt các đặc tính phức tạp của
C++ như: quản lý bộ nhớ, pointer, overload toán tử, không dùng include, bỏ
struct, union.
- Hướng đối tượng (OO). Mọi thứ trong Java là đối tượng
- Phân tán (Distributed). Nhắm đến phân bố ứng dụng trên mạng, ứng dụng độc
lập platform.
- Mạnh (Robust). Định kiểu mạnh, tường minh, kiểm tra lúc biên dịch và kiểm tra
khi thông dịch trước khi thực thi -> Giới hạn được lỗi; kiểm tra truy xuất phần
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
7
tử của mảng, chuỗi lúc thực thi, kiểm tra ép kiểu run-time. Có trình gom rác –
garbage collection- programmer không cần phải lo toan đến việc hủy đối tượng.
- Bảo mật (Secure): Kiểm tra an toàn code trước khi thực thi, có nhiều mức kiểm
tra bảo mật à Môi trường thực thi an toàn
 Mức 1: Mức ngôn ngữ: Nhờ tính bao gói dữ liệu của OOP, không cho
phép truy cập trực tiếp bộ nhớ mà phải thông qua method.
 Mức 2: Mức Compiler, kiểm tra an toàn cho code trước khi biên dịch.
 Mức 3: Mức Interpreter, trước khi bytecode được thực thi, được kiểm tra
an toàn.
 Mức 4: Mức Class, các class trước khi nạp được kiểm tra an toàn.
- Hiệu xuất cao, đa luồng, linh động ….v….v
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
8
Hình ảnh: mức độ an toàn của các ngôn ngữ.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
9
4. JVM là gì?
- JVM- Java Virtual Machine : là trung tâm của Java
- Là một phần mềm giả lập một máy tính trong đó : có tập lệnh định nghĩa các tác
vụ
5. Các phiên bản JDK
- JDK 1.0 (23 tháng 01, 1996)
- JDK 1.1 (19 tháng 2, 1997)
- JDK 1.1.5 (Pumpkin) 03 tháng 12, 1997
- JDK 1.1.6 (Abigail) 24 tháng 4, 1998
 JDK 1.1.7 (Brutus) 28 tháng 9, 1998
 JDK 1.1.8 (Chelsea) 08 tháng 4, 1999
- J2SE 1.2 (Playground) 08 tháng 12, 1998
 J2SE 1.2.1 (không có) 30 tháng 3, 1999
 J2SE 1.2.2 (Cricket) 08 tháng 7, 1999
- J2SE 1.3 (Kestrel) 08 tháng 5, 2000
- J2SE 1.3.1 (Ladybird) 17 tháng 5, 2001
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
10
- J2SE 1.4.0 (Merlin) 06 tháng 02, 2002
o J2SE 1.4.1 (Hopper) 16 tháng 9, 2002
o J2SE 1.4.2 (Mantis) 26 tháng 6, 2003
- J2SE 5 (1.5.0) (Tiger) 30 tháng 9, 2004
- Java SE 6 (còn gọi là Mustang), được công bố 11 tháng 12 năm 2006, thông tin
chính tại http://java.sun.com/javase/6/. Các bản cập nhật 2 và 3 được đưa ra vào
năm 2007, bản cập nhật 4 đưa ra tháng 1 năm 2008.
- JDK 6.18, 2010
- Java SE 7 (còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố
ngày 28 tháng 7 năm 2011.
- JDK 8, 18 tháng 3 năm 2014
- Phiên bản dự kiến tiếp theo: Java 9 dự kiến ra đời năm 2016
II. Tìm hiểu Java.
1. Khái niệm lớp và đối tượng.
- Đối tượng (Object): vật,người,… cụ thể
- Đối tượng = Properties + Methods
- Lớp (class): Mô hình (template) mô tả cho 1 nhóm đối tượng. Đối tượng là 1
hiện hữu, thực thể (instance) của class.
- Một lớp có thể là lớp con (derived class- lớp dẫn xuất, lớp thừa kế, lớp mở
rộng-extend) của 1 lớp khác -> Quan hệ cha-con
- Class Hierarchy- Phân cấp các class:Cấu trúc 1 lớp cùng các lớp con của nó
(tree)
2. Từ khóa và cách đặt tên
- Từ khóa cho các kiểu dữ liệu cơ bản : byte, short, int, long, float, double, char,
boolean
- Từ khóa cho phát biểu lặp: do, while, for, break, continue
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
11
- Từ khóa cho phát biểu rẽ nhánh: if, else, switch, case, default, break
- Từ khóa đặc tả đặc tính một method: private, public, protected, final, static,
abstract, synchronized, volatile, strictfp.
- Hằng (literal): true, false, null.
- Từ khóa liên quan đến method: return, void.
- Từ khoá liên quan đến package: package, import.
3. Kiểu dữ liệu
Ví dụ: Dùng các ký tự đặc tả việc buộc phải xem xét trị thuộc 1 kiểu nào
đó: i, I, l, L, f, F, d, D, nhưng L thường dùng thay cho l vì sợ nhầm với 1.
178  int (default) 45.62  double (default)
178L  long 44.21f  float
11.19e8  double (default)
‘z’  char , hằng klý tự để trong cặp nhát đơn (single quote character)
Nhận xét: Gần như C++.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
12
4. Toán tử trong java.
- Toán tử số học
Toán tử Mô tả
+ CộngTrả vể giá trị tổng hai toán hạng
- TrừTrả về giá trị của phép trừ
/ ChiaTrả về giá trị là thương của phép chia
* NhânTrả về giá trị là tích hai toán hạng
% Phép lấy modulGiá trị trả về là phần dư của phép chia
++ Tăng dầnTăng giá trị của biến lên 1. Vd: a++ tương đương a=a+1
– Giảm dầnGiảm giá của biến 1 đơn vị. vd: a—tương đương a= a-1
+=
Cộng và gán giá trị Cộng các giá trị của toán hạng bên trái vào toán
hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Vd: c+=a tương đương
c =c+a
-=
Trừ và gán giá trị Trừ các giá trị của toán hạng bên trái vào toán toán hạng bên
phải và gán giá trị trả về vào toán hạng bên trái.Vd: c -= a tương đương c = c – a
*=
Nhân và gán Nhân các giá trị của toán hạng bên trái với toán toán hạng bên phải và
gán giá trị trả về vào toán hạng bên trái. Vd: c *= a tương đương c = c*a
/=
Chia và gán Chia giá trị của toán hạng bên trái cho toán toán hạng bên phải và gán
giá trị trả về vào toán hạng bên trái. D: c /= a tương đương c = c/a
%=
Lấy số dư và gán Chia giá trị của toán hạng bên trái cho toán toán hạng bên phải và
gán giá trị số dư vào toán hạng bên trái. Ví dụ c %= a tương đương c = c%a
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
13
- Toán tử Bit: Các toán tử dạng bit cho phép ta thao tác trên từng bit riêng biệt
trong các kiểu dữ liệu nguyên thuỷ.
Toán tử Mô tả
~ Phủ định bit (NOT)Trả về giá trị phủ định của một bít.
&
Toán tử AND bítTrả về giá trị là 1 nếu các toán hạng là 1 và 0 trong
các trường hợp khác
|
Toán tử OR bítTrả về giá trị là 1 nếu một trong các toán hạng là 1 và 0
trong các trường hợp khác
^
Toán tử Exclusive OR bítTrả về giá trị là 1 nếu chỉ một trong các toán
hạng là 1 và trả về 0 trong các trường hợp khác.
>>
Dịch sang phải bítChuyển toàn bộ các bít cuả một số sang phải một vị
trí, giữ nguyên dấu của số âm.Toán hạng bên trái là số bị dịch còn số
bên phải chỉ số vị trí mà các bít cần dịch
<<
Dịch sang trái bítChuyển toàn bộ các bít cuả một số sang trái một vị
trí, giữ nguyên dấu cuả số âm.Toán hạng bên trái là số bị dịch còn số
bên phải chỉ số vị trí mà các bít cần dịch
- Toán tử quan hệ: Các toán tử quan hệ kiểm tra mối quan hệ giữa hai toán hạng.
Kết quả của một biểu thức có dùng các toán tử quan hệ là những giá trị Boolean
(logic “đúng” hoặc “sai”). Các toán tử quan hệ được sử dụng trong các cấu trúc
điều khiển.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
14
Toán tử Mô tả
== So sánh bằngToán tử này kiểm tra sự tương đương của hai toán hạng
!= So sánh khácKiểm tra sự khác nhau của hai toán hạng
>
Lớn hơnKiểm tra giá trị của toán hạng bên phải lớn hơn toán hạng bên
trái hay không
<
Nhỏ hơnKiểm tra giá trị của toán hạng bên phải có nhỏ hơn toán hạng
bên trái hay không
>=
Lớn hơn hoặc bằngKiểm tra giá trị của toán hạng bên phải có lớn hơn
hoặc bằng toán hạng bên trái haykhông
<=
Nhỏ hơn hoặc bằngKiểm tra giá trị của toán hạng bên phải có nhỏ hơn
hoặc bằng toán hạng bên trái haykhông
- Các toán tử logic Các toán tử logic làm việc với các toán hạng Boolean. Một
vài toán tử kiểu này được chỉ ra dưới đây
Toán tử Mô tả
&&
Và (AND)Trả về một giá trị “Đúng” (True) nếu chỉ khi cả hai toán tử có
giá trị “True”
| Hoặc (OR)Trả về giá trị “True” nếu ít nhất một giá trị là True
^
XORTrả về giá trị True nếu và chỉ nếu chỉ một trong các giá trị là True,
cáctrường hợp còn lại cho giá trị False (sai
! Toán hạng đơn tử NOT. Chuyển giá trị từ True sang False và ngược lại.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
15
- Các toán tử điều kiện: Toán tử điều kiện là một loại toán tử đặc biệt vì nó bao
gồm ba thành phần cấu thành biểu thức.
điều kiện. Cú pháp: <biểu thức 1> ? <biểu thức 2> : <biểu thức 3>;
 biểu thức 1: Biểu thức logic. Trả trả về giá trị True hoặc False
 biểu thức 2: Là giá trị trả về nếu <biểu thức 1> xác định là True
 biểu thức 3: Là giá trị trả về nếu <biểu thức 1> xác định là False
- Toán tử gán: Toán tử gán (=) dùng để gán một giá trị vào một biến và có thể
gán nhiều giá trị cho nhiều biến cùng một lúc. Ví dụ lệnh sau gán một giá trị
cho biến var và giá trị này lại được gán cho nhiều biến trên một dòng lệnh đơn.
int var = 20;
int p,q,r,s; p=q=r=s=var;
Dòng lệnh cuối cùng được thực hiện từ phải qua trái. Đầu tiên giá trị ở
biến var được gán cho ‘s’,sau đó giá trị của ‘s’ được gán cho ‘r’ và cứ tiếp như
vậy.
- Thứ tự ưu tiên của các toán tử: Các biểu thức được viết ra nói chung gồm nhiều
toán tử. Thứ tự ưu tiên quyết định trật tự thực hiện các toán tử trên các biểu
thức. Bảng dưới đây liệt kê thứ tự thực hiện các toán tử trong Java
Thứ tự Toán tử
1. 2. Các toán tử đơn như +,-,++,–
3. 4. Các toán tử số học và các toán tử dịch như *,/,+,-,<<,>>
Các toán tử quan hệ như >,<,>=,<=,= =,!=
Các toán tử logic và Bit như &&,||,&,|,^
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
16
Các toán tử gán như =,*=,/=,+=,-=
- Thay đổi thứ tự ưu tiên
+ Để thay đổi thứ tự ưu tiên trên một biểu thức, bạn có thể sử dụng dấu ngoặc
đơn ():
1. Phần được giới hạn trong ngoặc đơn được thực hiện trước.
2. Nếu dùng nhiều ngoặc đơn lồng nhau thì toán tử nằm trong ngoặc
đơn phía trong sẽ thực thi trước, sau đó đến các vòng phía ngoài.
3. Trong phạm vi một cặp ngoặc đơn thì quy tắc thứ tự ưu tiên vẫn giữ
nguyên tác dụng.
5. Một số cấu trúc điều khiển trong Java.
- Cấu trúc rẽ nhánh if
+ Dạng khuyết
if (biểu thức điều kiện) {
[Các câu lệnh thực hiện khi biểu thức điều kiện là true];
}
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
17
 mô tả hoạt động:
 Đầu tiên, hệ thống sẽ kiểm tra biểu thức điều kiện được chỉ định ở
mệnh đề IF (biểu thức này phải là biểu thức kiểu boolean)
 Sau đó: nếu biểu thức là true thì thực hiện các câu lệnh bên trong if
rồi kết thúc, nếu biểu thức là false thì kết thúc.
+ Dạng đầy đủ
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
18
- Cấu trúc Switch-Case
 mô tả hoạt động:
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
19
- Vòng lặp While
 Mô tả hoạt động
+ Xét điều kiện trước, đúng rồi mới thực hiện khối lệnh
- Vòng lặp do-while
 Mô tả hoạt động
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
20
+ Thực hiện khối lệnh trước, rồi xét điều kiện, nếu sai thì không thực
hiện nữa. Như vậy, ngay cả điều kiện sai từ lần đầu, từ khối lệnh luôn
được thực hiện ít nhất 1 lần.
- Vòng lặp for
6. Access modifier
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
21
7. Một số từ khóa trong trong java
Giải thích một số từ khóa thường dung:
- Method : là phương thức, là hàm.
- final : Phương thức có tiền tố này không được khai báo chồng ở các lớp
dẫn xuất.
- instanceof : Dùng để xác định chính xác một biến hay Data member có
phải đã được cấp phát bộ nhớ theo 1 class cụ thể nào chưa? Dùng
instanceof để so sánh 2 Object có phải là cùng một loại (Type) hay không?
- public : phương thức có thể truy cập được từ bên ngoài lớp khai báo.
- protected: có thể truy cập được từ lớp khai báo và những lớp dẫn xuất từ
nó.
- private : chỉ được truy cập bên trong bản thân lớp khai báo.
- extends : là khi một lớp con thừa kế từ lớp cha và bổ sung các năng lực mà
lớp cha không có.
- implements: sự thi hành, sự thực hiện, đồ dùng, dụng cụ, phương tiện, bổ
sung. implements được sử dụng khi bạn làm việc với interface trong java.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
22
Sau implement là một interface. implement là khi thực hiện các hành động
của một interface.
- Ý nghĩa của interface là cung cấp những hành động mà lớp implements nó phải
làm, còn làm như thế nào thì tùy lớp đó.
 abstract
– Nếu 1 phương thức được khai báo abstract: phương thức này không có cài
đặt, việc cài đặt được thực hiện bởi lớp con của lớp chứa phương thức abstract.
– Khi 1 phương thức là trừu tượng thì bản thân lớp chứa nó cũng là trừu tượng
Lợi ích của lớp trừu tượng:: để khai báo những tính năng chung mà chúng ta
cần sử dụng cho tất cả lớp con
– Không thể tạo instance (new đối tượng)cho 1 abstract class…mục đích duy
nhất của abstract class là để các lớp khác thừa kế nó
 Interface: là 1 class chỉ gồm thuộc tính và các hàm abstract được khai báo
trước
– Một lớp thi hành các hàm trong interface thông qua từ khoá implements.
– Một lớp có thể implements nhiều interface.
– Dù không khai báo từ khoá abstract, nhưng mọi hàm trong 1 interface đều
được coi là abstract (trừu tượng)
– Các biến trong Interface thì phải là public, static hay final.
- Không được khai báo private hay protected đối với các biến và các hàm
trong Interface vì các hàm này sẽ được viết lại (overriden) trong lớp thực
thi nó.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
23
 Final: Sử dụng từ khoá final cấm sự kế thừa và ghi đè (tức không có tính kế
thừa với class khai báo final)..với 1 class final tất cả fương thức của nó đều là
final. Mục đích: muốn 1 class cố định không muốn có sự mở rộng..bảo trì sửa
chữa vào class. khai báo biến final: nó là 1 hằng
 static: Như bạn đã biết mỗi khi muốn thao tác với một đối tượng ta phải
instance nó từ một class mô tả nó. Khi creat một đối tượng từ một lớp thì sẽ
phải mất vùng nhớ dành đối tượng đó. Một đối tượng có thể có rất nhiều fiels,
method.
- Với biến khai báo static có tác dụng là biến toàn cục cho tất cả các đối tượng
của lớp đó, còn biến bình thường là biến cục bộ của từng đối tượng. Một đối
tượng nào đó thay đổi giá trị của biến static thì thay đổi đó cũng ảnh hưởng
tới những đối tượng khác.
- Với hàm khai báo static: chỉ có quyền truy cập đến những biến thành viên
static và chỉ có thể gọi những hàm thành viên static
- Class khai báo static: Static class thì chỉ chứa các hàm và các biến static
8. Mảng
- Mảng là tập hợp nhiều phần tử có cùng tên, cùng kiểu dữ liệu và mỗi phần tử
trong mảng được truy xuất thông qua chỉ số của nó trong mảng.
- Khai báo mảng
<kiểu dữ liệu> <tên mảng>[];
hoặc
<kiểu dữ liệu>[] <tên mảng>;
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
24
- Cấp phát bộ nhớ cho mảng
+ Để cấp phát bộ nhớ cho mảng trong Java ta cần dùng từ khóa new. (Tất cả
trong Java đều thông qua các đối tượng). Chẳng hạn để cấp phát vùng nhớ
cho mảng trong Java ta làm như sau:
int arrInt = new int[100];
- Khởi tạo mảng
+ Chúng ta có thể khởi tạo giá trị ban đầu cho các phần tử củamảng khi nó
được khai báo. Ví dụ:
int arrInt[] = {1, 2, 3};
char arrChar[] = {‘a’, ‘b’, ‘c’
String arrString[] = {“Nguyen Van A”, “Vu Van B”, “Vu Van C”’};
- Truy cập mảng
+ Chỉ số mảng trong Java bắt đầu từ 0. Vì vậy phần tử đầu tiên có chỉ số là 0,
và phần tử thứ n có chỉ số là n - 1. Các phần tử của mảng được truy xuất thông
qua chỉ số của nó đặt giữa cặp dấu ngoặc vuông ([]).
int arrInt[] = {1, 2, 3};
int x = arrInt[0]; // x sẽ có giá trị là 1.
int y = arrInt[1]; // y sẽ có giá trị là 2.
int z = arrInt[2]; // z sẽ có giá trị là 3.
- Định nghĩa có chỉ định số phần tử (size)-> cấp bộ nhớ
char ch[] = new char [5];
- Định nghĩa mảng tức thời (in-line initialization):
int a[] = { 1,4,2,7,8}; // hoặc
int [] a = { 1,4,2,7,8};
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
25
- Phần tử được tham khảo qua chì số bắt đầu từ 0
- Chỉ khai báo: không chỉ định size : long a[];
- Khi sử dụng phải cấp bộ nhớ: a= new long [20];
- Trị mặc định : Toán tử new sẽ xóa bộ nhớ, các bit = 0)
9. Thread.
- Luồng(thread): Thread là một tiến trình tách ứng dụng ra một hoặc nhiều luồng
khác nhau để cùng thực hiện nhiều nhiệm vụ cùng một lúc.
- Các hệ điều hành mới cho phép nhiều luồng được thực thi đồng thời. Chúng ta
đã quen với việc mở nhiều ứng dụng trong 1 lần làm việc với máy tính  Nhiều
ứng dụng được nạp.
- Như vậy
o Một luồng là một chuỗi các lệnh nằm trong bộ nhớ ( chương trình đã
được nạp).
o 1 application thông thường khi thực thi là 1 luồng.
o Trong 1 application có thể có nhiều luồng. Thí dụ chuyển động của 10
đối tượng hiện hành trong 1 trò chơi là 10 luồng.
- Với máy có m CPU chạy m luồng  Mỗi CPU chạy 1 luồng  Hiệu quả.
- Với máy có m CPU chạy n luồng với n>> m Mỗi CPU chạy n/m luồng.
- Với 1 CPU chạy đồng thời k luồng với k>1. Các luồng được quản lý bằng 1
hàng đợi, mỗi luồng được cấp phát thời gian mà CPU thực thi là ti (cơ chế time-
slicing – phân chia tài nguyên thời gian). Luồng ở đỉnh hàng đợi được lấy ra để
thực thi trước, sau ti thời gian của mình, luồng này được đưa vào cuối hàng đợi
và CPU lấy ra luồng kế tiếp.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
26
- Với máy chỉ có 1 CPU mà lại chạy k luồng  Hiệu suất mỗi chương trình sẽ
kém.
Sơ đồ:
Trạng thái luồng
- Một luồng sau khi sinh ra (born) không được chạy ngay mà chỉ là sẵn sàng
(ready) chạy. Chỉ khi nào phương thức start() được gọi thì luồng mới thực thi
(chạy code phương thức run()).
- Luồng đang thực thi có thể bị tạm ngưng bằng phương thức sleep() một thời
khoảng và sẽ lại ready sau khi đáo hạn thời gian. Luồng đang ngủ không sử
dụng tài nguyên CPU.
- Khi nhiều luồng cùng được thực thi, nếu có 1 luồng giữ tài nguyên mà không
nhả ra sẽ làm cho các luồng khác không dùng được tài nguyên này (đói tài
nguyên). Để tránh tình huống này, Java cung cấp cơ chế Wait-Notify(đợi-nhận
biết) và cơ chế này được trình bầy ở mục sau. Phương thức wait() giúp đưa 1
luồng vào trạng thái chờ.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
27
- Khi một luồng bị tạm ngưng hay bị treo, luồng rơi vào trạng thái tạm hoãn
(suspended). Phương thức suspend()- version cũ/ wait() trong Java 2 dùng cho
mục đích này.
- Khi 1 suspended thread được mang ra thực thi tiếp, trạng thái của luồng là
resumed. Phương thức resume() – version cũ/ notify() trong Java 2 được dùng
cho mục đích này.
- Khi 1 luồng chờ biến cố như xuất/nhập dữ liệu. Luồng rơi vào trạng thái
blocked.
- Khi 1 luồng thực thi xong phương thức run() hay gặp phương thức stop(), ta nói
luồng đã chết (dead).
10. BufferedImager.
- Java BufferedImage là một phân lớp của lớp hình ảnh. Nó được sử dụng để xử
lý và thao tác dữ liệu hình ảnh. Một BufferedImage được làm bằng
ColorModel của dữ liệu hình ảnh. Tất cả BufferedImage đối tượng đã một tọa
độ góc trên bên trái của(0, 0).
- Phươngphápvàmôtả
No Phương pháp
1 copyData (WritableRaster outRaster)
Nó tính ra một khu vực hình chữ nhật tùy ý của BufferedImage và sao chép
nó vào một WritableRaster quy định.
2 getColorModel ()
Nó trả về đối tượng của lớp ColorModel của một hình ảnh.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
28
3 getData ()
Nó trả về hình ảnh như là một gạch lớn.
4 getData (Rectangle rect)
Nó tính toán và trả một khu vực tùy ý của BufferedImage.
5 getGraphics ()
Phương thức này trả về một Graphics2D, giữ lại tính tương thích ngược.
6 getHeight ()
Nó trả về chiều cao của BufferedImage.
7 getMinX ()
Nó trả về x tối thiểu phối hợp của này BufferedImage.
8 getMinY ()
Nó trả về tối thiểu y phối hợp của này BufferedImage.
9 getRGB (int x, int y)
Nó trả về một số nguyên điểm ảnh trong mặc định RGB Mô hình màu
(TYPE_INT_ARGB) và mặc định sRGB vùng màu.
10 getType () Nó trả về các loại hình ảnh.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
29
Ví dụ:
// read the Image and cut Image pour into the array Image
Private ArrayList<Image> getImage(String name, int width, int height, int num) {
ArrayList<Image> arrImage = new ArrayList<Image>();
try {
BufferedImage bufImage =
ImageIO.read(getClass().getResourceAsStream("/IMAGE/" + name + ".png"));
for (int i = 0; i < num; i++) {
BufferedImage buffCut = bufImage.getSubimage(0, i * height, width,
height);
arrImage.add(buffCut);
}
} catch (Exception e) {
e.printStackTrace();
}
return arrImage;
}
11. AudioClip
- AudioClip là một trừu tượng đơn giản để chơi một clip âm thanh. AudioClip
items có thể chơi cùng một lúc, và âm thanh kết quả pha trộn với nhau để sản
xuất một hỗn hợp.
Methods
Modifier and Type Method and Description
void loop() Starts playing this audio clip in a loop.
void play() Starts playing this audio clip.
void stop() Stops playing this audio clip.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
30
Ví dụ :
public EffectSoundManager() {
isPlay = true;
soundCompleted= Applet.newAudioClip(getClass().getResource(
"/SOUNDS/level_completed.wav"));
}
public void play(AudioClip audio) {
if (isPlay) {
if (audio == soundnMoving) {
audio.loop();
}
audio.play();
isPlay = false;
}
}
public void stop(AudioClip audio) {
isPlay =false;
audio.stop();
}
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
31
III.Tìm hiểu java swing.
- Swing là gói cung cấp components để lập trình GUI. Và gói swing được kế
thừa từ gói awt
- AWT : abstract windowing toolkit - bộ công cụ chứa các lớp để tạo cửa sổ.
- Sử dụng: import javax.swing.*;
- Gồm nhiều phần tử (class) để tạo GUI.
- Có các lớp quản lý việc bố trí các phần tử.
- Có (event-oriented application) mô hình ứng dụng hướng sự kiện.
- Có các công cụ xử lý đồ họa và hình ảnh.
- Các lớp sử dụng các tác vụ với clipboard (vùng nhớ đệm) như cut, paste.
- Look and Feel một tính năng giúp người dùng có thể thay đổi giao diện hiển thị
theo ý muốn của mình một cách chống nhàm chán cho các lập trình viên cũng
như người dùng, vậy làm thế nào để thay đổi Look and Feel trong Java
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
32
Component
- Component: Đối tượng chứa các element, cho phép vẽ, tô màu lên componet.
- JFrame và JPanel là các class thường dùng.
- JPanel thường dùng để chứa các element trong 1 GUI phức tạp, 1 JFrame có
thể chứa nhiều JPanel.
1. JFrame
- JFrame là một lớp thuộc ngôn ngữ lập trình Java, nó được sử dụng để tạo là
một thùng chứa(container) hoặc bạn có thể hiểu nó là một cửa sổ(windows)
ứng dụng chứa các thành phần khác của một chương trình như button, text
field, label..
- Ví dụ: Tạo 1 frame 250×200 với tiêu đề “HelloWorld” hiển thị ở tọa độ (300,
200) trên màn hình.
package nguyenvanquan7826.helloworld;
import javax.swing.JFrame;
public class HelloWorld {
public static void main(String[] args) {
// create frame with title "HelloWorld"
JFrame frame = new JFrame("HelloWorld");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// set Size and location frame
frame.setSize(250, 200);
frame.setLocation(300, 200);
// display frame
frame.setVisible(true);
}
}
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
33
- Common methods
void SetSize( int width, int Height)
public String getTitle();
public void setTitle(String title);
public void setResizable(boolean resizable)
public boolean isResizable()
public void setVisible(boolean)
public boolean isShowing()
void show(boolean)
void add (...) // add component
2. JPanel
- JPanel là một container (thùng chứa) nó dùng để chứa các đối tượng tương tự như
JFrame tuy nhiên nó không phải là 1 JFrame.
Ví dụ:
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
34
- JPanel phải được đưa vào JFrame khi viết application vì JFrame mới có border
- Chúng ta có 2 Phương thức khởi tạo JPanel hay dùng đó là:
+ JPanel(): Tạo 1 JPanel với Layout mặc định là FlowLayout.
+ JPanel(LayoutManager layout): Tạo 1 JPanel với Layout được chỉ định.
- Methods:
+ add (component) // thêm 1 component vào jpanel
+ setLayout(LayoutManager layout) //chọn kiểu bố trí components
3. JLabel
- JLabel thường được dùng để hiển Nhãn nhằm giải thích, chứa dữ liệu chỉ xuất.
Ví dụ:
package quyetdv.javaswing.components;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class JLabelDemo extends JFrame {
public JLabelDemo() {
// Create JFrame
setSize(250, 100);
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
35
setVisible(true);
setLocation(500, 300);
setResizable(false);
setTitle("JLabel Text Demo");
JLabel label = new JLabel("Hello JLabel");
// setText
label.setText("Set New Text");
// set Tool tip
label.setToolTipText("Tooltip");
// set foreground
label.setForeground(Color.RED);
add(label);
}
public static void main(String[] args) {
JLabelDemo lableDemo = new JLabelDemo();
}
}
- Constructor:
+ JLabel(): tạo label trống
+ JLabel(String): tạo label có chuỗi
+ JLabel (String, int Align): Tạo label có gióng hàng:
Align=LEFT,RIGHT,CENTER
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
36
+ JLabel(Icon image): Tạo một thể hiện JLabel chỉ định một hình ảnh
+ JLabel(Icon image, int horizontalAlignment): Tạo một thể hiện Label
chỉ định một hình ảnh và horizontal alignment
+ JLabel(String text): Tạo một thể hiện JLabel chỉ định text
+ JLabel(String text, Icon icon, int horizontalAlignment): Tạo một thể
hiện JLabel chỉ định text, image và horizontal alignment
- Common Methods:
+ void setFont (Font f)
+ void setText(String S)
+ String getText()
4. JTextField
- JTextField là một đối tượng cho phép người dùng nhập một dòng văn bản.
Thường dùng để nhập dữ liệu với các thông tin ngắn.
- Ví dụ: Tạo JTextField đơn giản
package nguyenvanquan7826.JTextField;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class MyJTextField extends JFrame {
public MyJTextField() {
// create JFrame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(2, 1, 5, 5));
// create and add JTextField
JTextField tf = new JTextField(20);
add(tf);
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
37
// add a JButton
add(new JButton(&quot;Ok&quot;));
// Display JFrame
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new MyJTextField();
}
}
- Constructor:
+ JTextField(): Tạo mới 1 JTextField
+ JTextField(Document doc, String text, int columns): Tạo 1 JTextField
sử dụng mô hình lưu trữ văn bản với đoạn text và số cột (coloumns)
+ JTextField(int columns): Tạo JTextField trống với độ rộng là columns
+ JTextField(String text): Tạo JTextField với text cho trước
+ JTextField(String text, int columns): Tạo JTextField với text và độ rộng
cho trước.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
38
- Common Methods:
+ void setEchoChar (char c) - ấn định ký tự thể hiện (password)
+ void setText(String S)
+ String getText()
+ void setEditable(boolean b)
+ boolean isEditable()
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
39
5. JButton
- JButton: là một đối tượng mà cho phép chúng ta khi click chuột vào sẽ thực
hiện một việc gì đó.
Ví dụ: tạo hành động cho jbutton
package quyetdv.javaswing.components;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class JButtonDemo extends JFrame {
private JLabel label;
public JButtonDemo() {
setSize(250, 100);
setVisible(true);
setLocation(500, 300);
setResizable(false);
setTitle("JButton Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Create label
label = new JLabel("A JLabel");
add(label);
// Create button
JButton button = new JButton("Click me");
add(button, "North", 1);
// add ActionListener
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
40
// TODO: Do something here
changeText();
}
});
}
public void changeText() {
label.setText("Label after Click button");
}
public static void main(String[] args) {
JButtonDemo buttonDemo = new JButtonDemo();
}
}
Sau khi click button
- Constructors
+ JButton() : Tạo một Button không có text hoặc icon
+ JButton(Action a) : Tạo một Button có thuộc tính được lấy từ một
Action
+ JButton(Icon icon) : Tạo một Button chỉ định một icon
+ JButton(String text) : Tạo một Button định text
+ JButton(String text, Icon icon) : Tạo một Button chỉ định text và icon
- Common Methods
+ void setLabel(String) - đổi nhãn
+ String getLabel() - lấy nội dung nhãn
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
41
Phần II: Quy trình làm game
I. Giới thiệu
- Hàng năm, có đến hàng triệu game được ra dành cho tất cả các dòng máy, từ
các trò chơi dành cho các máy tính cấu hình cao đến các loại game và ứng
dụng dành cho điện thoại hay các smartphone. Đã bao giờ khi chơi một trò
chơi, bạn tự hỏi mình tại sao và bằng cách nào mà họ tạo ra một game hay
hoặc dở tệ như thế này? Dù có hay hay không thì để làm lên một game đòi hỏi
rất nhiều công sức bỏ ra của các nhà thiết kế và đội ngũ nhân viên phát triển vì
vậy. Để khởi động việc làm một game theo cách đúng đắn nhất để tránh những
bước đi sai lầm không đáng có cần phải nắm rõ những từng quy trình
1. Trước tiên phát triển trò chơi là sự cộng tác, phối hợp.
- Phát triển trò chơi là một công việc kinh doanh khó khăn. Nếu chúng ta chỉ
hướng việc làm chơi thì làm như thế nào cũng được miễn ra được cái gì đó để
chơi thôi. Nhưng làm để bán và thu lại lợi nhuận thì việc phát triển trò chơi lúc
này không hề đơn giản tí nào, nó tốn rất nhiều chi phí, thời gian và nhân lực để
hoàn thiện trò chơi và thường đem lại mức lợi nhuận ít hơn rất nhiều so với
mong đợi. Những trò chơi thành công thường cần có một sự phối hợp chặt chẽ
giữa sự sáng tạo, kỹ thuật và chiến lược kinh doanh. Một sự cân bằng tốt giữa
những yếu tố trên là chìa khóa để thành công và nếu một trong những yếu tố
trên nổi trội lên thì dự án game sẽ gặp vấn đề. Thực tế sự cân bằng này rất
hiếm khi đạt được.
2. Sự khởi đầu.
- Một nhà thiết kế game tốt luôn bắt nguồn từ một điều cực kỳ đơn giản: Ý
TƯỞNG. Trò chơi luôn bắt nguồn từ một ý tưởng. Ý tưởng có từ khắp mọi nơi
trong cuộc sống, từ những điều nhỏ nhặt xung quanh chúng ta như các công
việc nội trợ, bếp núc đến các vấn đề đang vô cùng nóng bỏng trên các trang
mặt báo như là chiến tranh, khủng bố hay các ý tưởng đến từ các bộ phim bom
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
42
tấn đã và đang được công chiếu trên thế giới. Mọi thứ đều có thể phát triển từ
đó, Cho dù nó là một thiết lập nhỏ, một nhân vật hoặc một cấu trúc của trò
chơi, thì ý tưởng này đều là dạng cơ bản của thiết kế trò chơi và qua một vài
biến hóa, chúng có thể trở thành những thử thách và nhiệm vụ vô cùng khó
khăn, cái mà khiến cho các game thủ vô cùng thích thú để khám phá và chơi
đến tận cùng của trò chơi.. Bước tiếp theo là trả lời cho câu hỏi làm thế nào để
hiện thực nó? Nó sẽ thực thi như thế nào? (Tất cả đều phụ thuộc vào tình hình
tài chính của công ty)
- Người thực sự làm ra trò chơi mà chúng ta đang chơi được gọi là developers
(nhà phát triển). Những nhà phát hành lớn lại thường muốn lấy được danh
tiếng và họ thường có một đội ngũ phát triển riêng nhưng vai trò lớn nhất của
nhà phát hành là hỗ trợ. Khi một nhà phát triển bắt đầu một dự án, điều đầu
tiên họ cần làm là đảm bảo nguồn đầu tư. Cách phổ biến nhất để làm điều đó là
chọn lấy một nhà phát hành để họ đầu tư tiền, phân phối game đến tay người
dùng và thu lại lợi nhuận.
3. Quá trình xây dựng game hoàn chỉnh.
- Khi phát triển game, có người viết code ngay, nhưng cũng có người dành thời
gian tạo tài liệu thiết kế thật chi tiết, chỉ rõ từng giai đoạn phát triển game, từ ý
tưởng kịch bản, thuộc tính nhân vật, phong cách chủ đạo cho đồ họa và âm
thanh... cho đến phân bố độ khó cho các màn chơi. Thông thường, tài liệu ban
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
43
đầu càng được xây dựng chi tiết thì thời gian phát triển càng nhanh, sản phẩm
cuối cùng sẽ có chất lượng càng tốt và không khác biệt nhiều so với ý tưởng
ban đầu.
- Trong một đội phát triển game thường có nhiều người, tối thiểu phải có
những vị trí sau:
Lập trình.
Thiết kế đồ họa.
Soạn nhạc và hiệu ứng âm thanh.
Viết kịch bản.
Kiểm tra và đóng goi sản phẩm
- Nhiều người lầm tưởng rằng ý tưởng cốt truyện là một thiết kế của game. Xây
dựng cốt truyện chỉ là một phần rất nhỏ công việc của nhà thiết kế game. Bộ
phận thiết kế game suy nghĩ về mọi khía cạnh của game như: cốt truyện, góc
quay, hệ thống điều khiển, vũ khí hoặc đồ vật, nhân vật, tốc độ duy chuyển,
cấu trúc nhiệm vụ cá nhân, giao diện, hệ thống menu,... gần như mọi thứ của
game. Mọi chi tiết của game phải được viết ra và nếu bạn đang làm việc với
nhà phát hành, họ sẽ muốn thông qua nó trước. Điều này giúp cho bản thiết kế
game trở nên chi tiết nhất và được cập nhật liên tục suốt quá trình làm dự án.
- Qua đó cần phải có một tài liệu thật tốt để mọi người có chung tiếng nói, hiểu
được mục tiêu chung và cùng nhau phát triển tốt sản phẩm game.
II. Tổng quát, phát triển game gồm 4 giai đoạn:
1. Giai đoạn tiền sản phẩm/ý tưởng.
- Ở giai đoạn này, từng thành viên phát triển ý tưởng, sau đó thống nhất với cả
đội để xác định ý tưởng chủ đạo của sản phẩm.
- Qua giai đoạn này, các ý tưởng cho lập trình, nội dung, thể loại game (action,
puzzle, adventure, platform, sport, RPG...), phong cách đồ họa và âm nhạc dần
được hình thành thể hiện qua biểu đồ, đặc tả, các thông số thử nghiệm, hình vẽ
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
44
tay về nhân vật (sketch), giai điệu nhạc... được lựa chọn và thống nhất xuyên
suốt các giai đoạn phát triển.
2. Đặc tả lập trình.
- Đây là một giai đoạn rất quan trọng trong quá trình thiết kế game. Bạn càng bỏ
nhiều thời gian cho giai đoạn này thì khi lập trình, gỡ lỗi càng nhàn hạ. Lập
trình viên chuyên nghiệp hiểu rằng lỗi xuất hiện trong quá trình thiết kế sẽ thiệt
hại hơn nhiều so với lỗi được phát hiện trong giai đoạn này.
- Bạn cần giấy, bút hay chương trình văn bản và cùng với một vài người khác
chơi thử game. Khi “chơi thử” bằng cách ghi ra giấy, các ưu/khuyết của thiết
kế sẽ lộ rõ và bạn có thể chỉnh sửa cho đến khi cảm thấy vừa ý.
3. Lập trình, đồ họa, nhạc, hiệu ứng âm thanh.
 Lập trình:
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
45
- Với đặc tả đã có, hãy dự tính thời lượng cho việc lập trình, tính toán ngày công
kỹ càng để có thể ước tính khối lượng công việc và dễ theo dõi tiến độ.
 Đồ họa (Art) :
- Bộ phận đồ họa chịu trách nhiệm cho phong cách hình ảnh của game. Có rất
nhiều vai trò bên trong của bộ phận đồ họa và tất cả đều bắt đầu với họa sỹ
phác thảo. Những phác thảo có thể đơn giản được vẽ sơ bộ hoặc đầy đủ chi tiết
màu sắc. Họ thiết lập phong cách hình ảnh của game và đem lại cho những
thành viên còn lại của đội ngũ đồ họa cảm hứng để tạo ra những nhân vật và
môi trường.
- Họa sỹ phụ trách vẽ nhân vật phác thảo hình 2D và sử dụng nó để tạo ra mô
hình 3D. Họa sỹ phụ trách vẽ môi trường vẽ thủ công từng texture và mô hình
để mang lại sự sống cho mỗi màn chơi. Họa sỹ phụ trách mảng hiệu ứng hình
ảnh tạo ra những hình ảnh để thể hiện vụ nổ, thời tiết,.. Họa sỹ phụ trách mảng
hoạt hình tạo ra những nhân vật hoạt họa riêng lẻ. Sau đó sẽ kết hợp với mã
nguồn của lập trình viên để nó hoạt động.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
46
- Mỗi qui trình đơn giản trong game đều đòi hỏi sự cộng tác giữa các bên. Ví dụ,
thậm chí một vài thứ đơn giản như tạo một nhân vật đi bộ thôi cũng phải có sự
tham gia của cả 3 bộ phận. Họa sỹ sẽ tạo ra một chuỗi hình lặp thể hiện hành
động đi bộ của nhân vật và lập trình viên sẽ đảm bảo nhân vật duy chuyển
đúng khoảng cách, tốc độ và kích hoạt hành động đi khi bạn nhấn nút W.
Những thông số đặc tả sẽ được quyết định bởi một nhà thiết kế (designer)
 Âm thanh
- Gần đến cuối giai đoạn của sản xuất, những nhà thiết kế âm thanh sẽ tạo ra
những hiệu ứng âm thanh, nhạc nền hoặc thu âm giọng nói nếu cần. Việc này
thường để gần cuối vì sự thay đổi là rất phổ biến trong phát triển game. Nhà
thiết kế âm thanh sẽ tạo ra âm thanh hiệu ứng để khớp với mỗi hành động trong
game và nhạc nền để tạo ra chiều sâu cho môi trường xung quanh. Họ còn sắp
xếp diễn viên nam và nữ để thu âm những đoạn hội thoại. Thiết kế âm thanh
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
47
thường được đặt hàng làm từ bên ngoài vì nó đòi hỏi phải có những thiết bị
chuyên dụng và vì quá trình này thường được hoàn tất trong vài tháng cuối của
quá trình sản xuất.
4. Thử nghiệm, kiểm định, đóng gói.
- Bộ phận cuối cùng nhúng tay vào qui trình phát triển trò chơi là những nhà
kiểm định (testers). Bắt đầu việc kiểm định trò chơi của bạn sớm nhất có thể là
một việc tốt nhưng thực tế, quá trình này thường diễn ra ở giai đoạn cuối.
Những nhà kiểm định họ chơi thử, cố gắng tìm và báo cáo lỗi vào cơ sở dữ
liệu. Những người còn lại của đội ngũ phát triển sẽ sửa những lỗi họ được giao
cho đến khi game không còn lỗi nghiêm trọng, lúc đó trò chơi đã sẵn sàng để
phát hành. Quyết định ấn định ngày phát hành thường là của nhà quản lý kinh
nghiệm hoặc nhà phát hành. Đối với game cho hệ máy console, sẽ có thêm một
bước kiểm định phải vượt qua nữa, là kiểm định yêu cầu kỹ thuật (technical
requirement checklist). Ví dụ: nếu bạn phát hành trò chơi trên PS3, bạn sẽ gửi
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
48
trò chơi của bạn tới Sony, họ sẽ kiểm định và gửi lại yêu cầu thay đổi hoặc
may mắn bạn vượt qua được quá trình đó trò chơi của bạn sẽ được phát hành.
- Đóng gói: tùy vào mục đích phát triển game cho di động hay máy tính… phải
được “xuất” hay đóng gói cho các dòng máy khác nhau (do các dòng máy này
khác nhau về phím nhấn, bộ nhớ và thư viện hỗ trợ…..).
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
49
PHẦN III: Xây Dựng Game
I. Phân tích các đối tượng trong game.
 Mario (Người chơi điều khiển)
 Đạn
 Boss
- Nấm
- Rùa
 Rùa di chuyển
 Rùa bay
 Rùa ném tiêu
- Hoa dại
- Nhím
- Mây ném nhím
 Gift
- Nấm tăng trưởng (Giúp Mario lơn hơn 50%)
- Nấm tăng mạngSao may mắn (Giúp Mario khi va chạm với boss không
sao)
- Bông hoa lấp lánh (Giúp Mario có thể bắn đạn được)
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
50
II. Biểu đồ Uc hệ thống.
StartGame
HightScore
GuidePlayGame
Exit
MoveRight
MoveLeft
MoveUp
MoveDown
<<extend>>
<<extend>> <<extend>>
<<extend>>
Dame
<<extend>>
Brightness
Sound
Option
Player
<<extend>>
<<extend>>
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
51
Tổng kết
- Java là ngôn ngữ OOP
- JVM là trái tim của Java.
- JDK là bộ công cụ hỗ trợ lập trình.
- Nắm chắc các kiến thức cơ bản của java : kiểu dữ liệu,mảng…..
- Các đối tượng trong swing
- Nắm bắt và hiểu rõ từng quy trình làm game.
Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM
52
Tài liệu tham khảo
http://tutorialspoint.com/java/
http://java2s.com/
http://www.javapractices.com
Introduced by javalobby.org
http://www.onjava.com- O'Reilly's Java website. New articles weekly.
http://java.sun.com- The official Java developer website - new articles posted
weekly.
http://www.developer.com/java- Java articles hosted by Gamelan.com
http://www.java.net- The Java community website hosted by Sun Microsystems.
http://www.ibm.com/developerworks/java- IBM's Developerworks; the Java
section.
http://www.javaworld.com- One of the originals. Weekly updates of Java articles.
http://www.devx.com/java- Java articles hosted at DevX.
http://www.javadesktop.org- The desktop Java community hosted atJava.net.
http://www.jars.com- The Java review service. Covers frameworks and
applications.
http://www.jguru.com- A great source for Q&A style interaction in the
community.
http://www.javaranch.com
http://www.ibiblio.org/javafaq/javafaq.html- The comp.lang.java FAQ - questions
asked, answered, and categorized from the comp.lang.java newsgroup.
http://java.sun.com/docs/books/tutorial/- The Official Java tutorial from Sun - very
useful for almost any feature set.
https://quyetdo289.wordpress.com/?s=JFrame

More Related Content

Similar to Báo cáo btl Đồ án chuyên ngành cnpm.docx

Đồ Án Tốt Nghiệp Về Xây Dựng Chương Trình Hỗ Trợ Học Asp.Net.doc
Đồ Án Tốt Nghiệp Về Xây Dựng Chương Trình Hỗ Trợ Học Asp.Net.docĐồ Án Tốt Nghiệp Về Xây Dựng Chương Trình Hỗ Trợ Học Asp.Net.doc
Đồ Án Tốt Nghiệp Về Xây Dựng Chương Trình Hỗ Trợ Học Asp.Net.docmokoboo56
 
Bao cao ck update final
Bao cao ck update finalBao cao ck update final
Bao cao ck update finalDuy Nguyen
 
Ql du an phan mem tren web
Ql du an phan mem tren webQl du an phan mem tren web
Ql du an phan mem tren webVcoi Vit
 
Quan ly du_an_phan_mem_tren_web
Quan ly du_an_phan_mem_tren_webQuan ly du_an_phan_mem_tren_web
Quan ly du_an_phan_mem_tren_webViet Nam
 
Quan ly du_an_phan_mem_tren_web
Quan ly du_an_phan_mem_tren_webQuan ly du_an_phan_mem_tren_web
Quan ly du_an_phan_mem_tren_webDuy Vọng
 
Thiet ke mo hinh hoc va thi truc tuyen voi moodle
Thiet ke mo hinh hoc va thi truc tuyen voi moodleThiet ke mo hinh hoc va thi truc tuyen voi moodle
Thiet ke mo hinh hoc va thi truc tuyen voi moodleAnh Quay Lại
 
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...nataliej4
 
Luận văn ngàng công nghệ thông tin Hệ Thống Quản Lý Dịch Vụ Đi Chợ Thuê.doc
Luận văn ngàng công nghệ thông tin Hệ Thống Quản Lý Dịch Vụ Đi Chợ Thuê.docLuận văn ngàng công nghệ thông tin Hệ Thống Quản Lý Dịch Vụ Đi Chợ Thuê.doc
Luận văn ngàng công nghệ thông tin Hệ Thống Quản Lý Dịch Vụ Đi Chợ Thuê.docsividocz
 
Phân Tích Và Thiết Kế Hệ Thống Thông Tin Về Đăng Ký Kinh Doanh Của Các Doanh ...
Phân Tích Và Thiết Kế Hệ Thống Thông Tin Về Đăng Ký Kinh Doanh Của Các Doanh ...Phân Tích Và Thiết Kế Hệ Thống Thông Tin Về Đăng Ký Kinh Doanh Của Các Doanh ...
Phân Tích Và Thiết Kế Hệ Thống Thông Tin Về Đăng Ký Kinh Doanh Của Các Doanh ...mokoboo56
 
Khóa Luận Tìm Hiểu Về Ngôn Ngữ Lập Trình Độc Lập Trên Mobile - PhoneGap
Khóa Luận Tìm Hiểu Về Ngôn Ngữ Lập Trình Độc Lập Trên Mobile - PhoneGapKhóa Luận Tìm Hiểu Về Ngôn Ngữ Lập Trình Độc Lập Trên Mobile - PhoneGap
Khóa Luận Tìm Hiểu Về Ngôn Ngữ Lập Trình Độc Lập Trên Mobile - PhoneGapĐiềm Nguyễn Văn
 
Maubaocao thuctap totnghiepcntt
Maubaocao thuctap totnghiepcnttMaubaocao thuctap totnghiepcntt
Maubaocao thuctap totnghiepcnttHiếu Ngô
 
Van hanh tien_trinh_nghiep_vu_tren_web
Van hanh tien_trinh_nghiep_vu_tren_webVan hanh tien_trinh_nghiep_vu_tren_web
Van hanh tien_trinh_nghiep_vu_tren_webViet Nam
 
Van hanh tien_trinh_nghiep_vu_tren_web
Van hanh tien_trinh_nghiep_vu_tren_webVan hanh tien_trinh_nghiep_vu_tren_web
Van hanh tien_trinh_nghiep_vu_tren_webDuy Vọng
 
Van hanh tien trinh nghiep vu tren moi truong web
Van hanh tien trinh nghiep vu tren moi truong webVan hanh tien trinh nghiep vu tren moi truong web
Van hanh tien trinh nghiep vu tren moi truong webVcoi Vit
 
Báo cáo thực tập tốt nghiệp Bán đồ dân dụng trức tuyến bằng OpenCart
Báo cáo thực tập tốt nghiệp Bán đồ dân dụng trức tuyến bằng OpenCartBáo cáo thực tập tốt nghiệp Bán đồ dân dụng trức tuyến bằng OpenCart
Báo cáo thực tập tốt nghiệp Bán đồ dân dụng trức tuyến bằng OpenCarthoainhan1501
 

Similar to Báo cáo btl Đồ án chuyên ngành cnpm.docx (20)

Đồ Án Tốt Nghiệp Về Xây Dựng Chương Trình Hỗ Trợ Học Asp.Net.doc
Đồ Án Tốt Nghiệp Về Xây Dựng Chương Trình Hỗ Trợ Học Asp.Net.docĐồ Án Tốt Nghiệp Về Xây Dựng Chương Trình Hỗ Trợ Học Asp.Net.doc
Đồ Án Tốt Nghiệp Về Xây Dựng Chương Trình Hỗ Trợ Học Asp.Net.doc
 
Báo cáo athena
Báo cáo  athenaBáo cáo  athena
Báo cáo athena
 
Bao cao ck update final
Bao cao ck update finalBao cao ck update final
Bao cao ck update final
 
Ql du an phan mem tren web
Ql du an phan mem tren webQl du an phan mem tren web
Ql du an phan mem tren web
 
Quan ly du_an_phan_mem_tren_web
Quan ly du_an_phan_mem_tren_webQuan ly du_an_phan_mem_tren_web
Quan ly du_an_phan_mem_tren_web
 
Quan ly du_an_phan_mem_tren_web
Quan ly du_an_phan_mem_tren_webQuan ly du_an_phan_mem_tren_web
Quan ly du_an_phan_mem_tren_web
 
Thiet ke mo hinh hoc va thi truc tuyen voi moodle
Thiet ke mo hinh hoc va thi truc tuyen voi moodleThiet ke mo hinh hoc va thi truc tuyen voi moodle
Thiet ke mo hinh hoc va thi truc tuyen voi moodle
 
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
 
Xây Dựng Chatbot Bán Hàng Dựa Trên Mô Hình Sinh.doc
Xây Dựng Chatbot Bán Hàng Dựa Trên Mô Hình Sinh.docXây Dựng Chatbot Bán Hàng Dựa Trên Mô Hình Sinh.doc
Xây Dựng Chatbot Bán Hàng Dựa Trên Mô Hình Sinh.doc
 
Luận văn ngàng công nghệ thông tin Hệ Thống Quản Lý Dịch Vụ Đi Chợ Thuê.doc
Luận văn ngàng công nghệ thông tin Hệ Thống Quản Lý Dịch Vụ Đi Chợ Thuê.docLuận văn ngàng công nghệ thông tin Hệ Thống Quản Lý Dịch Vụ Đi Chợ Thuê.doc
Luận văn ngàng công nghệ thông tin Hệ Thống Quản Lý Dịch Vụ Đi Chợ Thuê.doc
 
Phân Tích Và Thiết Kế Hệ Thống Thông Tin Về Đăng Ký Kinh Doanh Của Các Doanh ...
Phân Tích Và Thiết Kế Hệ Thống Thông Tin Về Đăng Ký Kinh Doanh Của Các Doanh ...Phân Tích Và Thiết Kế Hệ Thống Thông Tin Về Đăng Ký Kinh Doanh Của Các Doanh ...
Phân Tích Và Thiết Kế Hệ Thống Thông Tin Về Đăng Ký Kinh Doanh Của Các Doanh ...
 
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đLuận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
Luận văn: Nhận dạng cảm xúc khuôn mặt người, HAY, 9đ
 
Khóa Luận Tìm Hiểu Về Ngôn Ngữ Lập Trình Độc Lập Trên Mobile - PhoneGap
Khóa Luận Tìm Hiểu Về Ngôn Ngữ Lập Trình Độc Lập Trên Mobile - PhoneGapKhóa Luận Tìm Hiểu Về Ngôn Ngữ Lập Trình Độc Lập Trên Mobile - PhoneGap
Khóa Luận Tìm Hiểu Về Ngôn Ngữ Lập Trình Độc Lập Trên Mobile - PhoneGap
 
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
 
Maubaocao thuctap totnghiepcntt
Maubaocao thuctap totnghiepcnttMaubaocao thuctap totnghiepcntt
Maubaocao thuctap totnghiepcntt
 
Đề tài: Xây dựng, triển khai và quản lý mô hình mạng, HAY
Đề tài: Xây dựng, triển khai và quản lý mô hình mạng, HAYĐề tài: Xây dựng, triển khai và quản lý mô hình mạng, HAY
Đề tài: Xây dựng, triển khai và quản lý mô hình mạng, HAY
 
Van hanh tien_trinh_nghiep_vu_tren_web
Van hanh tien_trinh_nghiep_vu_tren_webVan hanh tien_trinh_nghiep_vu_tren_web
Van hanh tien_trinh_nghiep_vu_tren_web
 
Van hanh tien_trinh_nghiep_vu_tren_web
Van hanh tien_trinh_nghiep_vu_tren_webVan hanh tien_trinh_nghiep_vu_tren_web
Van hanh tien_trinh_nghiep_vu_tren_web
 
Van hanh tien trinh nghiep vu tren moi truong web
Van hanh tien trinh nghiep vu tren moi truong webVan hanh tien trinh nghiep vu tren moi truong web
Van hanh tien trinh nghiep vu tren moi truong web
 
Báo cáo thực tập tốt nghiệp Bán đồ dân dụng trức tuyến bằng OpenCart
Báo cáo thực tập tốt nghiệp Bán đồ dân dụng trức tuyến bằng OpenCartBáo cáo thực tập tốt nghiệp Bán đồ dân dụng trức tuyến bằng OpenCart
Báo cáo thực tập tốt nghiệp Bán đồ dân dụng trức tuyến bằng OpenCart
 

More from DV Viết Luận văn luanvanmaster.com ZALO 0973287149

More from DV Viết Luận văn luanvanmaster.com ZALO 0973287149 (20)

Ảnh Hưởng Của Marketing Quan Hệ Đến Lòng Trung Thành Của Khách Hàng.Tình Huốn...
Ảnh Hưởng Của Marketing Quan Hệ Đến Lòng Trung Thành Của Khách Hàng.Tình Huốn...Ảnh Hưởng Của Marketing Quan Hệ Đến Lòng Trung Thành Của Khách Hàng.Tình Huốn...
Ảnh Hưởng Của Marketing Quan Hệ Đến Lòng Trung Thành Của Khách Hàng.Tình Huốn...
 
Phát triển nguồn nhân lực tại Uỷ ban nhân dân huyện Trà Bồng, tỉnh Quảng Ngãi...
Phát triển nguồn nhân lực tại Uỷ ban nhân dân huyện Trà Bồng, tỉnh Quảng Ngãi...Phát triển nguồn nhân lực tại Uỷ ban nhân dân huyện Trà Bồng, tỉnh Quảng Ngãi...
Phát triển nguồn nhân lực tại Uỷ ban nhân dân huyện Trà Bồng, tỉnh Quảng Ngãi...
 
Báo cáo tốt Nghiệp tài chính hợp nhất tại tổng công ty Indochina gol...
Báo cáo tốt Nghiệp  tài chính hợp nhất tại tổng công ty Indochina gol...Báo cáo tốt Nghiệp  tài chính hợp nhất tại tổng công ty Indochina gol...
Báo cáo tốt Nghiệp tài chính hợp nhất tại tổng công ty Indochina gol...
 
Tạo động lực thúc đẩy nhân viên làm việc tại ngân hàng TMCP Ngoại Thương Việt...
Tạo động lực thúc đẩy nhân viên làm việc tại ngân hàng TMCP Ngoại Thương Việt...Tạo động lực thúc đẩy nhân viên làm việc tại ngân hàng TMCP Ngoại Thương Việt...
Tạo động lực thúc đẩy nhân viên làm việc tại ngân hàng TMCP Ngoại Thương Việt...
 
Phát triển công nghiệp trên địa bàn Thành phố Tam Kỳ, Tỉnh Quảng Na...
Phát triển công nghiệp trên địa bàn Thành phố Tam Kỳ, Tỉnh Quảng Na...Phát triển công nghiệp trên địa bàn Thành phố Tam Kỳ, Tỉnh Quảng Na...
Phát triển công nghiệp trên địa bàn Thành phố Tam Kỳ, Tỉnh Quảng Na...
 
Giải pháp phát triển cho vay xuất nhập khẩu tại ngân hàng NN&PTNN ch...
Giải pháp phát triển cho vay xuất nhập khẩu tại ngân hàng NN&PTNN ch...Giải pháp phát triển cho vay xuất nhập khẩu tại ngân hàng NN&PTNN ch...
Giải pháp phát triển cho vay xuất nhập khẩu tại ngân hàng NN&PTNN ch...
 
Hoàn thiện công tác lập báo cáo tài chính hợp nhất tại tổng công ...
Hoàn thiện công tác lập báo cáo tài chính hợp nhất tại tổng công ...Hoàn thiện công tác lập báo cáo tài chính hợp nhất tại tổng công ...
Hoàn thiện công tác lập báo cáo tài chính hợp nhất tại tổng công ...
 
Luận Văn Thạc Sĩ Quản trị thành tích nhân viên tại Cục Hải quan TP Đà Nẵng.doc
Luận Văn Thạc Sĩ  Quản trị thành tích nhân viên tại Cục Hải quan TP Đà Nẵng.docLuận Văn Thạc Sĩ  Quản trị thành tích nhân viên tại Cục Hải quan TP Đà Nẵng.doc
Luận Văn Thạc Sĩ Quản trị thành tích nhân viên tại Cục Hải quan TP Đà Nẵng.doc
 
Hoàn thiện công tác quản lý thuế thu nhập cá nhân tại cục thuế Tỉ...
Hoàn thiện công tác quản lý thuế thu nhập cá nhân tại cục thuế Tỉ...Hoàn thiện công tác quản lý thuế thu nhập cá nhân tại cục thuế Tỉ...
Hoàn thiện công tác quản lý thuế thu nhập cá nhân tại cục thuế Tỉ...
 
Đề Tài Phát triển bền vững nông nghiệp Huyện Ba Tơ, Tỉnh Quảng Ngãi....
Đề Tài Phát triển bền vững nông nghiệp Huyện Ba Tơ, Tỉnh Quảng Ngãi....Đề Tài Phát triển bền vững nông nghiệp Huyện Ba Tơ, Tỉnh Quảng Ngãi....
Đề Tài Phát triển bền vững nông nghiệp Huyện Ba Tơ, Tỉnh Quảng Ngãi....
 
Hoàn thiện công tác bảo trợ xã hội trên địa bàn huyện Phong Điền, tỉnh Thừa T...
Hoàn thiện công tác bảo trợ xã hội trên địa bàn huyện Phong Điền, tỉnh Thừa T...Hoàn thiện công tác bảo trợ xã hội trên địa bàn huyện Phong Điền, tỉnh Thừa T...
Hoàn thiện công tác bảo trợ xã hội trên địa bàn huyện Phong Điền, tỉnh Thừa T...
 
Đề Tài Luận VănPhát triển sản phẩm du lịch tại thành phố Đà Nẵng.doc
Đề Tài Luận VănPhát triển sản phẩm du lịch tại thành phố Đà Nẵng.docĐề Tài Luận VănPhát triển sản phẩm du lịch tại thành phố Đà Nẵng.doc
Đề Tài Luận VănPhát triển sản phẩm du lịch tại thành phố Đà Nẵng.doc
 
Đào tạo nghề cho lao động thuộc diện thu hồi đất trên địa bàn Thàn...
Đào tạo nghề cho lao động thuộc diện thu hồi đất trên địa bàn Thàn...Đào tạo nghề cho lao động thuộc diện thu hồi đất trên địa bàn Thàn...
Đào tạo nghề cho lao động thuộc diện thu hồi đất trên địa bàn Thàn...
 
Tóm Tắt Luận Văn Thạc Sĩ Quản Trị Kinh Doanh Xây dựng chính sách Marketing tạ...
Tóm Tắt Luận Văn Thạc Sĩ Quản Trị Kinh Doanh Xây dựng chính sách Marketing tạ...Tóm Tắt Luận Văn Thạc Sĩ Quản Trị Kinh Doanh Xây dựng chính sách Marketing tạ...
Tóm Tắt Luận Văn Thạc Sĩ Quản Trị Kinh Doanh Xây dựng chính sách Marketing tạ...
 
Đề Tài Nghiên cứu rủi ro cảm nhận đối với mua hàng thời trang trực tuyến.docx
Đề Tài Nghiên cứu rủi ro cảm nhận đối với mua hàng thời trang trực tuyến.docxĐề Tài Nghiên cứu rủi ro cảm nhận đối với mua hàng thời trang trực tuyến.docx
Đề Tài Nghiên cứu rủi ro cảm nhận đối với mua hàng thời trang trực tuyến.docx
 
Giải pháp nâng cao động lực thúc đẩy người lao động tại công ty khai...
Giải pháp nâng cao động lực thúc đẩy người lao động tại công ty khai...Giải pháp nâng cao động lực thúc đẩy người lao động tại công ty khai...
Giải pháp nâng cao động lực thúc đẩy người lao động tại công ty khai...
 
Giải pháp phát triển dịch vụ ngân hàng điện tử tại ngân hàng đầu ...
Giải pháp phát triển dịch vụ ngân hàng điện tử tại ngân hàng đầu ...Giải pháp phát triển dịch vụ ngân hàng điện tử tại ngân hàng đầu ...
Giải pháp phát triển dịch vụ ngân hàng điện tử tại ngân hàng đầu ...
 
Giải pháp phát triển dịch vụ ngân hàng điện tử tại ngân hàng đầu ...
Giải pháp phát triển dịch vụ ngân hàng điện tử tại ngân hàng đầu ...Giải pháp phát triển dịch vụ ngân hàng điện tử tại ngân hàng đầu ...
Giải pháp phát triển dịch vụ ngân hàng điện tử tại ngân hàng đầu ...
 
Quản trị quan hệ khách hàng tại Chi nhánh Viettel Đà Nẵng – Tập đoàn Viễn thô...
Quản trị quan hệ khách hàng tại Chi nhánh Viettel Đà Nẵng – Tập đoàn Viễn thô...Quản trị quan hệ khách hàng tại Chi nhánh Viettel Đà Nẵng – Tập đoàn Viễn thô...
Quản trị quan hệ khách hàng tại Chi nhánh Viettel Đà Nẵng – Tập đoàn Viễn thô...
 
Đề Tài Đánh giá thành tích đội ngũ giảng viên trường Đại Học Phạm ...
Đề Tài Đánh giá thành tích đội ngũ giảng viên trường Đại Học Phạm ...Đề Tài Đánh giá thành tích đội ngũ giảng viên trường Đại Học Phạm ...
Đề Tài Đánh giá thành tích đội ngũ giảng viên trường Đại Học Phạm ...
 

Recently uploaded

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...Nguyen Thanh Tu Collection
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢImyvh40253
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxNhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxhoangvubaongoc112011
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfNguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảohoanhv296
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 

Recently uploaded (20)

3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptxNhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
Nhiễm khuẩn tiêu hóa-Tiêu chảy do vi khuẩn.pptx
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảoKiểm tra cuối học kì 1 sinh học 12 đề tham khảo
Kiểm tra cuối học kì 1 sinh học 12 đề tham khảo
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 

Báo cáo btl Đồ án chuyên ngành cnpm.docx

  • 1. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM Tải tài liệu tại kết bạn zalo : 0973.287.149 BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ---------- BÁO CÁO BTL ĐỒ ÁN CHUYÊN NGÀNH CNPM Đề tài : Tìm Hiểu JAVA Và Xây Dựng Game Mario Giảng viên hướng dẫn : Ths. Nguyễn Văn Tỉnh Nhóm thực hiện : Nhóm 21 Mai Huy Cảnh Ngô Văn An Trần Văn Tam
  • 2. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM Tải tài liệu tại kết bạn zalo : 0973.287.149 Hà Nội, tháng 11 năm 2015
  • 3. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM Tải tài liệu tại kết bạn zalo : 0973.287.149 LỜI CẢM ƠN Ngày nay, cùng với sự vươn lên của đất nước, hòa vào đó Công nghệ thông tin là một ngành đã có những bước phát triển mạnh mẽ không ngừng và nó đã trở thành chiếc chìa khóa dẫn đến thành công cho nhiều cá nhân, tổ chức. Với những ứng dụng của mình, công nghệ thông tin đã góp phần mang lại nhiều lợi ích mà không ai có thể phủ nhận được. Đặc biệt là trong lĩnh vực quản lý kinh tế, công nghệ thông tin đã góp phần tạo ra sự thay đổi nhanh chóng cho bộ mặt xã hội. Trong quá trình thực hiện đề tài nhóm đã gặp phải không ít khó khăn và trở ngại, tuy nhiên, với sự giúp đỡ của bạn bè, cùng sự hướng dẫn tận tình, chỉ bảo cặn kẽ của giảng viên Ths. Nguyễn Văn Tỉnh, cuối cùng chúng em cũng đã cố gắng hoàn thành đề tài này với tất cả sự cố gắng và nỗ lực. Chúng em xin được gửi lời cảm ơn tới những người bạn đã góp ý và giúp đỡ nhóm, và đặc biệt là cảm ơn thầy, người đã giúp chúng tôi xác định được những yêu cầu và mục tiêu đề tài, truyền dạy các kĩ năng nghiệp vụ cũng như hướng dẫn cho chúng tôi cách thức thực hiện đề tài.. Do kiến thức thực tế và hiểu biết còn hạn chế nên trong quá trình hoàn thành báo cáo không tránh khỏi sai sót, nhóm chúng em rất mong sự góp ý đóng góp của thầy và các bạn để nhóm có thể hoàn thiện bài tập lớn được tốt hơn. Chúng em xin chân thành cảm ơn!
  • 4. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 1 Nội Dung MỞ ĐẦU.............................................................................................................................3 1. Đề tài .........................................................................................................................3 2. Lý do chọn đề tài.......................................................................................................3 3. Mục đích - mục tiêu của đề tài. .................................................................................4 4. Bố cục đề tài..............................................................................................................4 PHẦN I: TÌM HIỂU JAVA.................................................................................................6 I. Giới thiệu về java. .....................................................................................................6 1. Lịch sử java.........................................................................................................6 2. Java là gì? ...........................................................................................................6 3. Đặc điểm của java...............................................................................................6 4. JVM là gì?...........................................................................................................9 5. Các phiên bản JDK.............................................................................................9 II. Tìm hiểu Java. .........................................................................................................10 1. Khái niệm lớp và đối tượng..............................................................................10 2. Từ khóa và cách đặt tên....................................................................................10 3. Kiểu dữ liệu ......................................................................................................11 4. Toán tử trong java.............................................................................................12 5. Một số cấu trúc điều khiển trong Java..............................................................16 6. Access modifier ................................................................................................20 7. Một số từ khóa trong trong java .......................................................................21 8. Mảng.................................................................................................................23 9. Thread...............................................................................................................25 10. BufferedImager.................................................................................................27 11. AudioClip .........................................................................................................29 III. Tìm hiểu java swing.............................................................................................31 1. JFrame...............................................................................................................32 2. JPanel................................................................................................................33 3. JLabel................................................................................................................34 4. JTextField .........................................................................................................36
  • 5. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 2 5. JButton..............................................................................................................39 Phần II: Quy trình làm game ...........................................................................................41 I. Giới thiệu.................................................................................................................41 1. Trước tiên phát triển trò chơi là sự cộng tác, phối hợp. ...................................41 2. Sự khởi đầu.......................................................................................................41 3. Quá trình xây dựng game hoàn chỉnh...............................................................42 II. Tổng quát, phát triển game gồm 4 giai đoạn:..........................................................43 1. Giai đoạn tiền sản phẩm/ý tưởng......................................................................43 2. Đặc tả lập trình. ................................................................................................44 3. Lập trình, đồ họa, nhạc, hiệu ứng âm thanh. ....................................................44 4. Thử nghiệm, kiểm định, đóng gói. ...................................................................47 PHẦN III: Xây Dựng Game.............................................................................................49 I. Phân tích các đối tượng trong game........................................................................49 II. Biểu đồ Uc hệ thống................................................................................................50 Tổng kết............................................................................................................................51 Tài liệu tham khảo...........................................................................................................52
  • 6. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 3 MỞ ĐẦU 1. Đề tài Tên đề tài: - Tìm hiểu về Java Xây dựng Game Mario 2. Lý do chọn đề tài. - Hiện nay, ngành Công nghệ thông tin đã có những bước phát triển nhanh chóng về ứng dụng của nó trong mọi lĩnh vực trong cuộc sống trên phạm vi toàn thế giới nói chung và việt nam nói riêng. Công nghệ thông tin là một phần không thể thiếu của cuộc sống văn minh, góp phần đẩy mạnh công cuộc công nghiệp hóa hiện đại hóa đất nước. Việc ứng dụng những thành quả của khoa học công nghệ vào trong đời sống, trong công tác là hết sức thiết yếu. Ứng dụng của công nghệ thông tin kết hợp với truyền thông hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của công ty, các tổ chức,. . . nó đóng vai trò quan trọng và không thể thiếu. Công nghệ thông tin và truyền thông hóa góp phần làm thay đổi suy nghĩ, lối mòn tư duy của mỗi con người, nó giúp con người năng động hơn, kết nối nhanh hơn ở mọi lúc mọi nơi làm tăng mức độ hiệu quả, năng suất của công việc. - Java là một công nghệ xây dựng 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. Nó được coi là công nghệ mang tính cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạy thống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần. Là một ngôn ngữ bậc cao như C, C++, Perl, SmallTalk,.. cho nên có thể được dùng để tạo ra các ứ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 - Trong quá trình tìm hiểu chúng em thấy rất hứng thú với Bộ công cụ hỗ trợ việc tạo giao diện người dùng (GUI). Swing là một bộ công cụ tiện ích, là một phần của ngôn ngữ lập trình Java tổng thể nó hỗ trợ cho người dùng tạo ra các cửa sổ
  • 7. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 4 windows, các layout cho phần mềm, tạo ra các control cho phép người dùng tương tác nên chúng em đã quyết định sử dụng bộ công cụ này của Java để xây dựng game Mario để thấy rõ được khả năng mạnh mẽ của nó. 3. Mục đích - mục tiêu của đề tài.  Mục đích: - Nắm chắc được được kỹ năng và kiến thức về lập trình. - Tìm hiểu về lập trình hướng đối tượng trong java. - Tìm hiểu về bộ công cụ Swing trong java để xây dựng game. - Nắm bắt được quy trình làm game hoàn chỉnh và theo tiêu chuẩn.  Mục tiêu: - Vận Dụng được tính chất của lập trình Hướng Đối Tượng. - Ứng dụng của Swing vào việc xây dựng Game Mario. 4. Bố cục đề tài. Nội dung gồm 2 phần : Phần I: Mở đầu - Phần này bao gồm các thông tin về đề tài như: + Tên đề tài. + Mục đích. + Lý do để xây dựng đề tài. Phần II: Nội dung (gồm 3 chương)  Chương I: Tìm hiểu về Java - Chương này nhóm tiền hành tìm hiểu về ngôn ngữ lập trình hướng đối tượng Java. Về phương pháp lập trình hướng đối tượng trong Java, bộ công cụ
  • 8. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 5 hỗ trợ việc tạo giao diện người dùng, một số thuộc tính cần dung trong java Swing phục vụ cho nhóm làm game Mario  Chương II: Tìm hiểu về quy trình làm game - Trong chương này, nhóm sẽ nêu ra các quy trình làm game hoàn chỉnh: từ khi bắt đầu một dự án cho đến khi sản phẩm được kiểm tra và đóng gói để sẵn sàng đưa ra thị trường phục vụ người dùng .  Chương III: Xây dựng game - Chương này sẽ bao gồm kịch bản Game và các đối tượng được xây dựng trong Game.
  • 9. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 6 PHẦN I: TÌM HIỂU JAVA I. Giới thiệu về java. 1. Lịch sử java. - Năm 1990, James Gosling, Bill Joy, Patrick Naughton (Sun MicroSystem) phát triển ngôn ngữ Oak (có nghĩa là “Cây xồi”; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này). - Năm 1995 đổi tên thành Java. - Ngày 27 tháng 1 năm 2010, Sun bị hãng Oracle Corporation mua với giá US$7,4 tỷ, theo một thỏa ước ký ngày 20 tháng 4 2009. Một tháng sau đó, Sun được nhập với Oracle USA để trở thành Oracle America, Inc. 2. Java là gì? - Là một ngôn ngữ OOP đầy đủ, không thể viết 1 ứng dụng hướng thủ tục trong Java. - Có thể giải các họ bài toán như những ngôn ngữ lập trình khác. - Sử dụng 2 cơ chế: Thông dịch | Biên dịch. - Viết mã một, chạy nó bất cứ nơi nào, bất cứ lúc nào, mãi mãi. 3. Đặc điểm của java - Đơn giản ( simple). Tương tự như C++ nhưng bỏ bớt các đặc tính phức tạp của C++ như: quản lý bộ nhớ, pointer, overload toán tử, không dùng include, bỏ struct, union. - Hướng đối tượng (OO). Mọi thứ trong Java là đối tượng - Phân tán (Distributed). Nhắm đến phân bố ứng dụng trên mạng, ứng dụng độc lập platform. - Mạnh (Robust). Định kiểu mạnh, tường minh, kiểm tra lúc biên dịch và kiểm tra khi thông dịch trước khi thực thi -> Giới hạn được lỗi; kiểm tra truy xuất phần
  • 10. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 7 tử của mảng, chuỗi lúc thực thi, kiểm tra ép kiểu run-time. Có trình gom rác – garbage collection- programmer không cần phải lo toan đến việc hủy đối tượng. - Bảo mật (Secure): Kiểm tra an toàn code trước khi thực thi, có nhiều mức kiểm tra bảo mật à Môi trường thực thi an toàn  Mức 1: Mức ngôn ngữ: Nhờ tính bao gói dữ liệu của OOP, không cho phép truy cập trực tiếp bộ nhớ mà phải thông qua method.  Mức 2: Mức Compiler, kiểm tra an toàn cho code trước khi biên dịch.  Mức 3: Mức Interpreter, trước khi bytecode được thực thi, được kiểm tra an toàn.  Mức 4: Mức Class, các class trước khi nạp được kiểm tra an toàn. - Hiệu xuất cao, đa luồng, linh động ….v….v
  • 11. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 8 Hình ảnh: mức độ an toàn của các ngôn ngữ.
  • 12. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 9 4. JVM là gì? - JVM- Java Virtual Machine : là trung tâm của Java - Là một phần mềm giả lập một máy tính trong đó : có tập lệnh định nghĩa các tác vụ 5. Các phiên bản JDK - JDK 1.0 (23 tháng 01, 1996) - JDK 1.1 (19 tháng 2, 1997) - JDK 1.1.5 (Pumpkin) 03 tháng 12, 1997 - JDK 1.1.6 (Abigail) 24 tháng 4, 1998  JDK 1.1.7 (Brutus) 28 tháng 9, 1998  JDK 1.1.8 (Chelsea) 08 tháng 4, 1999 - J2SE 1.2 (Playground) 08 tháng 12, 1998  J2SE 1.2.1 (không có) 30 tháng 3, 1999  J2SE 1.2.2 (Cricket) 08 tháng 7, 1999 - J2SE 1.3 (Kestrel) 08 tháng 5, 2000 - J2SE 1.3.1 (Ladybird) 17 tháng 5, 2001
  • 13. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 10 - J2SE 1.4.0 (Merlin) 06 tháng 02, 2002 o J2SE 1.4.1 (Hopper) 16 tháng 9, 2002 o J2SE 1.4.2 (Mantis) 26 tháng 6, 2003 - J2SE 5 (1.5.0) (Tiger) 30 tháng 9, 2004 - Java SE 6 (còn gọi là Mustang), được công bố 11 tháng 12 năm 2006, thông tin chính tại http://java.sun.com/javase/6/. Các bản cập nhật 2 và 3 được đưa ra vào năm 2007, bản cập nhật 4 đưa ra tháng 1 năm 2008. - JDK 6.18, 2010 - Java SE 7 (còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố ngày 28 tháng 7 năm 2011. - JDK 8, 18 tháng 3 năm 2014 - Phiên bản dự kiến tiếp theo: Java 9 dự kiến ra đời năm 2016 II. Tìm hiểu Java. 1. Khái niệm lớp và đối tượng. - Đối tượng (Object): vật,người,… cụ thể - Đối tượng = Properties + Methods - Lớp (class): Mô hình (template) mô tả cho 1 nhóm đối tượng. Đối tượng là 1 hiện hữu, thực thể (instance) của class. - Một lớp có thể là lớp con (derived class- lớp dẫn xuất, lớp thừa kế, lớp mở rộng-extend) của 1 lớp khác -> Quan hệ cha-con - Class Hierarchy- Phân cấp các class:Cấu trúc 1 lớp cùng các lớp con của nó (tree) 2. Từ khóa và cách đặt tên - Từ khóa cho các kiểu dữ liệu cơ bản : byte, short, int, long, float, double, char, boolean - Từ khóa cho phát biểu lặp: do, while, for, break, continue
  • 14. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 11 - Từ khóa cho phát biểu rẽ nhánh: if, else, switch, case, default, break - Từ khóa đặc tả đặc tính một method: private, public, protected, final, static, abstract, synchronized, volatile, strictfp. - Hằng (literal): true, false, null. - Từ khóa liên quan đến method: return, void. - Từ khoá liên quan đến package: package, import. 3. Kiểu dữ liệu Ví dụ: Dùng các ký tự đặc tả việc buộc phải xem xét trị thuộc 1 kiểu nào đó: i, I, l, L, f, F, d, D, nhưng L thường dùng thay cho l vì sợ nhầm với 1. 178  int (default) 45.62  double (default) 178L  long 44.21f  float 11.19e8  double (default) ‘z’  char , hằng klý tự để trong cặp nhát đơn (single quote character) Nhận xét: Gần như C++.
  • 15. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 12 4. Toán tử trong java. - Toán tử số học Toán tử Mô tả + CộngTrả vể giá trị tổng hai toán hạng - TrừTrả về giá trị của phép trừ / ChiaTrả về giá trị là thương của phép chia * NhânTrả về giá trị là tích hai toán hạng % Phép lấy modulGiá trị trả về là phần dư của phép chia ++ Tăng dầnTăng giá trị của biến lên 1. Vd: a++ tương đương a=a+1 – Giảm dầnGiảm giá của biến 1 đơn vị. vd: a—tương đương a= a-1 += Cộng và gán giá trị Cộng các giá trị của toán hạng bên trái vào toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Vd: c+=a tương đương c =c+a -= Trừ và gán giá trị Trừ các giá trị của toán hạng bên trái vào toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái.Vd: c -= a tương đương c = c – a *= Nhân và gán Nhân các giá trị của toán hạng bên trái với toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Vd: c *= a tương đương c = c*a /= Chia và gán Chia giá trị của toán hạng bên trái cho toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. D: c /= a tương đương c = c/a %= Lấy số dư và gán Chia giá trị của toán hạng bên trái cho toán toán hạng bên phải và gán giá trị số dư vào toán hạng bên trái. Ví dụ c %= a tương đương c = c%a
  • 16. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 13 - Toán tử Bit: Các toán tử dạng bit cho phép ta thao tác trên từng bit riêng biệt trong các kiểu dữ liệu nguyên thuỷ. Toán tử Mô tả ~ Phủ định bit (NOT)Trả về giá trị phủ định của một bít. & Toán tử AND bítTrả về giá trị là 1 nếu các toán hạng là 1 và 0 trong các trường hợp khác | Toán tử OR bítTrả về giá trị là 1 nếu một trong các toán hạng là 1 và 0 trong các trường hợp khác ^ Toán tử Exclusive OR bítTrả về giá trị là 1 nếu chỉ một trong các toán hạng là 1 và trả về 0 trong các trường hợp khác. >> Dịch sang phải bítChuyển toàn bộ các bít cuả một số sang phải một vị trí, giữ nguyên dấu của số âm.Toán hạng bên trái là số bị dịch còn số bên phải chỉ số vị trí mà các bít cần dịch << Dịch sang trái bítChuyển toàn bộ các bít cuả một số sang trái một vị trí, giữ nguyên dấu cuả số âm.Toán hạng bên trái là số bị dịch còn số bên phải chỉ số vị trí mà các bít cần dịch - Toán tử quan hệ: Các toán tử quan hệ kiểm tra mối quan hệ giữa hai toán hạng. Kết quả của một biểu thức có dùng các toán tử quan hệ là những giá trị Boolean (logic “đúng” hoặc “sai”). Các toán tử quan hệ được sử dụng trong các cấu trúc điều khiển.
  • 17. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 14 Toán tử Mô tả == So sánh bằngToán tử này kiểm tra sự tương đương của hai toán hạng != So sánh khácKiểm tra sự khác nhau của hai toán hạng > Lớn hơnKiểm tra giá trị của toán hạng bên phải lớn hơn toán hạng bên trái hay không < Nhỏ hơnKiểm tra giá trị của toán hạng bên phải có nhỏ hơn toán hạng bên trái hay không >= Lớn hơn hoặc bằngKiểm tra giá trị của toán hạng bên phải có lớn hơn hoặc bằng toán hạng bên trái haykhông <= Nhỏ hơn hoặc bằngKiểm tra giá trị của toán hạng bên phải có nhỏ hơn hoặc bằng toán hạng bên trái haykhông - Các toán tử logic Các toán tử logic làm việc với các toán hạng Boolean. Một vài toán tử kiểu này được chỉ ra dưới đây Toán tử Mô tả && Và (AND)Trả về một giá trị “Đúng” (True) nếu chỉ khi cả hai toán tử có giá trị “True” | Hoặc (OR)Trả về giá trị “True” nếu ít nhất một giá trị là True ^ XORTrả về giá trị True nếu và chỉ nếu chỉ một trong các giá trị là True, cáctrường hợp còn lại cho giá trị False (sai ! Toán hạng đơn tử NOT. Chuyển giá trị từ True sang False và ngược lại.
  • 18. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 15 - Các toán tử điều kiện: Toán tử điều kiện là một loại toán tử đặc biệt vì nó bao gồm ba thành phần cấu thành biểu thức. điều kiện. Cú pháp: <biểu thức 1> ? <biểu thức 2> : <biểu thức 3>;  biểu thức 1: Biểu thức logic. Trả trả về giá trị True hoặc False  biểu thức 2: Là giá trị trả về nếu <biểu thức 1> xác định là True  biểu thức 3: Là giá trị trả về nếu <biểu thức 1> xác định là False - Toán tử gán: Toán tử gán (=) dùng để gán một giá trị vào một biến và có thể gán nhiều giá trị cho nhiều biến cùng một lúc. Ví dụ lệnh sau gán một giá trị cho biến var và giá trị này lại được gán cho nhiều biến trên một dòng lệnh đơn. int var = 20; int p,q,r,s; p=q=r=s=var; Dòng lệnh cuối cùng được thực hiện từ phải qua trái. Đầu tiên giá trị ở biến var được gán cho ‘s’,sau đó giá trị của ‘s’ được gán cho ‘r’ và cứ tiếp như vậy. - Thứ tự ưu tiên của các toán tử: Các biểu thức được viết ra nói chung gồm nhiều toán tử. Thứ tự ưu tiên quyết định trật tự thực hiện các toán tử trên các biểu thức. Bảng dưới đây liệt kê thứ tự thực hiện các toán tử trong Java Thứ tự Toán tử 1. 2. Các toán tử đơn như +,-,++,– 3. 4. Các toán tử số học và các toán tử dịch như *,/,+,-,<<,>> Các toán tử quan hệ như >,<,>=,<=,= =,!= Các toán tử logic và Bit như &&,||,&,|,^
  • 19. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 16 Các toán tử gán như =,*=,/=,+=,-= - Thay đổi thứ tự ưu tiên + Để thay đổi thứ tự ưu tiên trên một biểu thức, bạn có thể sử dụng dấu ngoặc đơn (): 1. Phần được giới hạn trong ngoặc đơn được thực hiện trước. 2. Nếu dùng nhiều ngoặc đơn lồng nhau thì toán tử nằm trong ngoặc đơn phía trong sẽ thực thi trước, sau đó đến các vòng phía ngoài. 3. Trong phạm vi một cặp ngoặc đơn thì quy tắc thứ tự ưu tiên vẫn giữ nguyên tác dụng. 5. Một số cấu trúc điều khiển trong Java. - Cấu trúc rẽ nhánh if + Dạng khuyết if (biểu thức điều kiện) { [Các câu lệnh thực hiện khi biểu thức điều kiện là true]; }
  • 20. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 17  mô tả hoạt động:  Đầu tiên, hệ thống sẽ kiểm tra biểu thức điều kiện được chỉ định ở mệnh đề IF (biểu thức này phải là biểu thức kiểu boolean)  Sau đó: nếu biểu thức là true thì thực hiện các câu lệnh bên trong if rồi kết thúc, nếu biểu thức là false thì kết thúc. + Dạng đầy đủ
  • 21. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 18 - Cấu trúc Switch-Case  mô tả hoạt động:
  • 22. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 19 - Vòng lặp While  Mô tả hoạt động + Xét điều kiện trước, đúng rồi mới thực hiện khối lệnh - Vòng lặp do-while  Mô tả hoạt động
  • 23. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 20 + Thực hiện khối lệnh trước, rồi xét điều kiện, nếu sai thì không thực hiện nữa. Như vậy, ngay cả điều kiện sai từ lần đầu, từ khối lệnh luôn được thực hiện ít nhất 1 lần. - Vòng lặp for 6. Access modifier
  • 24. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 21 7. Một số từ khóa trong trong java Giải thích một số từ khóa thường dung: - Method : là phương thức, là hàm. - final : Phương thức có tiền tố này không được khai báo chồng ở các lớp dẫn xuất. - instanceof : Dùng để xác định chính xác một biến hay Data member có phải đã được cấp phát bộ nhớ theo 1 class cụ thể nào chưa? Dùng instanceof để so sánh 2 Object có phải là cùng một loại (Type) hay không? - public : phương thức có thể truy cập được từ bên ngoài lớp khai báo. - protected: có thể truy cập được từ lớp khai báo và những lớp dẫn xuất từ nó. - private : chỉ được truy cập bên trong bản thân lớp khai báo. - extends : là khi một lớp con thừa kế từ lớp cha và bổ sung các năng lực mà lớp cha không có. - implements: sự thi hành, sự thực hiện, đồ dùng, dụng cụ, phương tiện, bổ sung. implements được sử dụng khi bạn làm việc với interface trong java.
  • 25. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 22 Sau implement là một interface. implement là khi thực hiện các hành động của một interface. - Ý nghĩa của interface là cung cấp những hành động mà lớp implements nó phải làm, còn làm như thế nào thì tùy lớp đó.  abstract – Nếu 1 phương thức được khai báo abstract: phương thức này không có cài đặt, việc cài đặt được thực hiện bởi lớp con của lớp chứa phương thức abstract. – Khi 1 phương thức là trừu tượng thì bản thân lớp chứa nó cũng là trừu tượng Lợi ích của lớp trừu tượng:: để khai báo những tính năng chung mà chúng ta cần sử dụng cho tất cả lớp con – Không thể tạo instance (new đối tượng)cho 1 abstract class…mục đích duy nhất của abstract class là để các lớp khác thừa kế nó  Interface: là 1 class chỉ gồm thuộc tính và các hàm abstract được khai báo trước – Một lớp thi hành các hàm trong interface thông qua từ khoá implements. – Một lớp có thể implements nhiều interface. – Dù không khai báo từ khoá abstract, nhưng mọi hàm trong 1 interface đều được coi là abstract (trừu tượng) – Các biến trong Interface thì phải là public, static hay final. - Không được khai báo private hay protected đối với các biến và các hàm trong Interface vì các hàm này sẽ được viết lại (overriden) trong lớp thực thi nó.
  • 26. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 23  Final: Sử dụng từ khoá final cấm sự kế thừa và ghi đè (tức không có tính kế thừa với class khai báo final)..với 1 class final tất cả fương thức của nó đều là final. Mục đích: muốn 1 class cố định không muốn có sự mở rộng..bảo trì sửa chữa vào class. khai báo biến final: nó là 1 hằng  static: Như bạn đã biết mỗi khi muốn thao tác với một đối tượng ta phải instance nó từ một class mô tả nó. Khi creat một đối tượng từ một lớp thì sẽ phải mất vùng nhớ dành đối tượng đó. Một đối tượng có thể có rất nhiều fiels, method. - Với biến khai báo static có tác dụng là biến toàn cục cho tất cả các đối tượng của lớp đó, còn biến bình thường là biến cục bộ của từng đối tượng. Một đối tượng nào đó thay đổi giá trị của biến static thì thay đổi đó cũng ảnh hưởng tới những đối tượng khác. - Với hàm khai báo static: chỉ có quyền truy cập đến những biến thành viên static và chỉ có thể gọi những hàm thành viên static - Class khai báo static: Static class thì chỉ chứa các hàm và các biến static 8. Mảng - Mảng là tập hợp nhiều phần tử có cùng tên, cùng kiểu dữ liệu và mỗi phần tử trong mảng được truy xuất thông qua chỉ số của nó trong mảng. - Khai báo mảng <kiểu dữ liệu> <tên mảng>[]; hoặc <kiểu dữ liệu>[] <tên mảng>;
  • 27. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 24 - Cấp phát bộ nhớ cho mảng + Để cấp phát bộ nhớ cho mảng trong Java ta cần dùng từ khóa new. (Tất cả trong Java đều thông qua các đối tượng). Chẳng hạn để cấp phát vùng nhớ cho mảng trong Java ta làm như sau: int arrInt = new int[100]; - Khởi tạo mảng + Chúng ta có thể khởi tạo giá trị ban đầu cho các phần tử củamảng khi nó được khai báo. Ví dụ: int arrInt[] = {1, 2, 3}; char arrChar[] = {‘a’, ‘b’, ‘c’ String arrString[] = {“Nguyen Van A”, “Vu Van B”, “Vu Van C”’}; - Truy cập mảng + Chỉ số mảng trong Java bắt đầu từ 0. Vì vậy phần tử đầu tiên có chỉ số là 0, và phần tử thứ n có chỉ số là n - 1. Các phần tử của mảng được truy xuất thông qua chỉ số của nó đặt giữa cặp dấu ngoặc vuông ([]). int arrInt[] = {1, 2, 3}; int x = arrInt[0]; // x sẽ có giá trị là 1. int y = arrInt[1]; // y sẽ có giá trị là 2. int z = arrInt[2]; // z sẽ có giá trị là 3. - Định nghĩa có chỉ định số phần tử (size)-> cấp bộ nhớ char ch[] = new char [5]; - Định nghĩa mảng tức thời (in-line initialization): int a[] = { 1,4,2,7,8}; // hoặc int [] a = { 1,4,2,7,8};
  • 28. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 25 - Phần tử được tham khảo qua chì số bắt đầu từ 0 - Chỉ khai báo: không chỉ định size : long a[]; - Khi sử dụng phải cấp bộ nhớ: a= new long [20]; - Trị mặc định : Toán tử new sẽ xóa bộ nhớ, các bit = 0) 9. Thread. - Luồng(thread): Thread là một tiến trình tách ứng dụng ra một hoặc nhiều luồng khác nhau để cùng thực hiện nhiều nhiệm vụ cùng một lúc. - Các hệ điều hành mới cho phép nhiều luồng được thực thi đồng thời. Chúng ta đã quen với việc mở nhiều ứng dụng trong 1 lần làm việc với máy tính  Nhiều ứng dụng được nạp. - Như vậy o Một luồng là một chuỗi các lệnh nằm trong bộ nhớ ( chương trình đã được nạp). o 1 application thông thường khi thực thi là 1 luồng. o Trong 1 application có thể có nhiều luồng. Thí dụ chuyển động của 10 đối tượng hiện hành trong 1 trò chơi là 10 luồng. - Với máy có m CPU chạy m luồng  Mỗi CPU chạy 1 luồng  Hiệu quả. - Với máy có m CPU chạy n luồng với n>> m Mỗi CPU chạy n/m luồng. - Với 1 CPU chạy đồng thời k luồng với k>1. Các luồng được quản lý bằng 1 hàng đợi, mỗi luồng được cấp phát thời gian mà CPU thực thi là ti (cơ chế time- slicing – phân chia tài nguyên thời gian). Luồng ở đỉnh hàng đợi được lấy ra để thực thi trước, sau ti thời gian của mình, luồng này được đưa vào cuối hàng đợi và CPU lấy ra luồng kế tiếp.
  • 29. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 26 - Với máy chỉ có 1 CPU mà lại chạy k luồng  Hiệu suất mỗi chương trình sẽ kém. Sơ đồ: Trạng thái luồng - Một luồng sau khi sinh ra (born) không được chạy ngay mà chỉ là sẵn sàng (ready) chạy. Chỉ khi nào phương thức start() được gọi thì luồng mới thực thi (chạy code phương thức run()). - Luồng đang thực thi có thể bị tạm ngưng bằng phương thức sleep() một thời khoảng và sẽ lại ready sau khi đáo hạn thời gian. Luồng đang ngủ không sử dụng tài nguyên CPU. - Khi nhiều luồng cùng được thực thi, nếu có 1 luồng giữ tài nguyên mà không nhả ra sẽ làm cho các luồng khác không dùng được tài nguyên này (đói tài nguyên). Để tránh tình huống này, Java cung cấp cơ chế Wait-Notify(đợi-nhận biết) và cơ chế này được trình bầy ở mục sau. Phương thức wait() giúp đưa 1 luồng vào trạng thái chờ.
  • 30. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 27 - Khi một luồng bị tạm ngưng hay bị treo, luồng rơi vào trạng thái tạm hoãn (suspended). Phương thức suspend()- version cũ/ wait() trong Java 2 dùng cho mục đích này. - Khi 1 suspended thread được mang ra thực thi tiếp, trạng thái của luồng là resumed. Phương thức resume() – version cũ/ notify() trong Java 2 được dùng cho mục đích này. - Khi 1 luồng chờ biến cố như xuất/nhập dữ liệu. Luồng rơi vào trạng thái blocked. - Khi 1 luồng thực thi xong phương thức run() hay gặp phương thức stop(), ta nói luồng đã chết (dead). 10. BufferedImager. - Java BufferedImage là một phân lớp của lớp hình ảnh. Nó được sử dụng để xử lý và thao tác dữ liệu hình ảnh. Một BufferedImage được làm bằng ColorModel của dữ liệu hình ảnh. Tất cả BufferedImage đối tượng đã một tọa độ góc trên bên trái của(0, 0). - Phươngphápvàmôtả No Phương pháp 1 copyData (WritableRaster outRaster) Nó tính ra một khu vực hình chữ nhật tùy ý của BufferedImage và sao chép nó vào một WritableRaster quy định. 2 getColorModel () Nó trả về đối tượng của lớp ColorModel của một hình ảnh.
  • 31. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 28 3 getData () Nó trả về hình ảnh như là một gạch lớn. 4 getData (Rectangle rect) Nó tính toán và trả một khu vực tùy ý của BufferedImage. 5 getGraphics () Phương thức này trả về một Graphics2D, giữ lại tính tương thích ngược. 6 getHeight () Nó trả về chiều cao của BufferedImage. 7 getMinX () Nó trả về x tối thiểu phối hợp của này BufferedImage. 8 getMinY () Nó trả về tối thiểu y phối hợp của này BufferedImage. 9 getRGB (int x, int y) Nó trả về một số nguyên điểm ảnh trong mặc định RGB Mô hình màu (TYPE_INT_ARGB) và mặc định sRGB vùng màu. 10 getType () Nó trả về các loại hình ảnh.
  • 32. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 29 Ví dụ: // read the Image and cut Image pour into the array Image Private ArrayList<Image> getImage(String name, int width, int height, int num) { ArrayList<Image> arrImage = new ArrayList<Image>(); try { BufferedImage bufImage = ImageIO.read(getClass().getResourceAsStream("/IMAGE/" + name + ".png")); for (int i = 0; i < num; i++) { BufferedImage buffCut = bufImage.getSubimage(0, i * height, width, height); arrImage.add(buffCut); } } catch (Exception e) { e.printStackTrace(); } return arrImage; } 11. AudioClip - AudioClip là một trừu tượng đơn giản để chơi một clip âm thanh. AudioClip items có thể chơi cùng một lúc, và âm thanh kết quả pha trộn với nhau để sản xuất một hỗn hợp. Methods Modifier and Type Method and Description void loop() Starts playing this audio clip in a loop. void play() Starts playing this audio clip. void stop() Stops playing this audio clip.
  • 33. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 30 Ví dụ : public EffectSoundManager() { isPlay = true; soundCompleted= Applet.newAudioClip(getClass().getResource( "/SOUNDS/level_completed.wav")); } public void play(AudioClip audio) { if (isPlay) { if (audio == soundnMoving) { audio.loop(); } audio.play(); isPlay = false; } } public void stop(AudioClip audio) { isPlay =false; audio.stop(); }
  • 34. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 31 III.Tìm hiểu java swing. - Swing là gói cung cấp components để lập trình GUI. Và gói swing được kế thừa từ gói awt - AWT : abstract windowing toolkit - bộ công cụ chứa các lớp để tạo cửa sổ. - Sử dụng: import javax.swing.*; - Gồm nhiều phần tử (class) để tạo GUI. - Có các lớp quản lý việc bố trí các phần tử. - Có (event-oriented application) mô hình ứng dụng hướng sự kiện. - Có các công cụ xử lý đồ họa và hình ảnh. - Các lớp sử dụng các tác vụ với clipboard (vùng nhớ đệm) như cut, paste. - Look and Feel một tính năng giúp người dùng có thể thay đổi giao diện hiển thị theo ý muốn của mình một cách chống nhàm chán cho các lập trình viên cũng như người dùng, vậy làm thế nào để thay đổi Look and Feel trong Java
  • 35. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 32 Component - Component: Đối tượng chứa các element, cho phép vẽ, tô màu lên componet. - JFrame và JPanel là các class thường dùng. - JPanel thường dùng để chứa các element trong 1 GUI phức tạp, 1 JFrame có thể chứa nhiều JPanel. 1. JFrame - JFrame là một lớp thuộc ngôn ngữ lập trình Java, nó được sử dụng để tạo là một thùng chứa(container) hoặc bạn có thể hiểu nó là một cửa sổ(windows) ứng dụng chứa các thành phần khác của một chương trình như button, text field, label.. - Ví dụ: Tạo 1 frame 250×200 với tiêu đề “HelloWorld” hiển thị ở tọa độ (300, 200) trên màn hình. package nguyenvanquan7826.helloworld; import javax.swing.JFrame; public class HelloWorld { public static void main(String[] args) { // create frame with title "HelloWorld" JFrame frame = new JFrame("HelloWorld"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // set Size and location frame frame.setSize(250, 200); frame.setLocation(300, 200); // display frame frame.setVisible(true); } }
  • 36. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 33 - Common methods void SetSize( int width, int Height) public String getTitle(); public void setTitle(String title); public void setResizable(boolean resizable) public boolean isResizable() public void setVisible(boolean) public boolean isShowing() void show(boolean) void add (...) // add component 2. JPanel - JPanel là một container (thùng chứa) nó dùng để chứa các đối tượng tương tự như JFrame tuy nhiên nó không phải là 1 JFrame. Ví dụ:
  • 37. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 34 - JPanel phải được đưa vào JFrame khi viết application vì JFrame mới có border - Chúng ta có 2 Phương thức khởi tạo JPanel hay dùng đó là: + JPanel(): Tạo 1 JPanel với Layout mặc định là FlowLayout. + JPanel(LayoutManager layout): Tạo 1 JPanel với Layout được chỉ định. - Methods: + add (component) // thêm 1 component vào jpanel + setLayout(LayoutManager layout) //chọn kiểu bố trí components 3. JLabel - JLabel thường được dùng để hiển Nhãn nhằm giải thích, chứa dữ liệu chỉ xuất. Ví dụ: package quyetdv.javaswing.components; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JLabel; public class JLabelDemo extends JFrame { public JLabelDemo() { // Create JFrame setSize(250, 100);
  • 38. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 35 setVisible(true); setLocation(500, 300); setResizable(false); setTitle("JLabel Text Demo"); JLabel label = new JLabel("Hello JLabel"); // setText label.setText("Set New Text"); // set Tool tip label.setToolTipText("Tooltip"); // set foreground label.setForeground(Color.RED); add(label); } public static void main(String[] args) { JLabelDemo lableDemo = new JLabelDemo(); } } - Constructor: + JLabel(): tạo label trống + JLabel(String): tạo label có chuỗi + JLabel (String, int Align): Tạo label có gióng hàng: Align=LEFT,RIGHT,CENTER
  • 39. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 36 + JLabel(Icon image): Tạo một thể hiện JLabel chỉ định một hình ảnh + JLabel(Icon image, int horizontalAlignment): Tạo một thể hiện Label chỉ định một hình ảnh và horizontal alignment + JLabel(String text): Tạo một thể hiện JLabel chỉ định text + JLabel(String text, Icon icon, int horizontalAlignment): Tạo một thể hiện JLabel chỉ định text, image và horizontal alignment - Common Methods: + void setFont (Font f) + void setText(String S) + String getText() 4. JTextField - JTextField là một đối tượng cho phép người dùng nhập một dòng văn bản. Thường dùng để nhập dữ liệu với các thông tin ngắn. - Ví dụ: Tạo JTextField đơn giản package nguyenvanquan7826.JTextField; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; public class MyJTextField extends JFrame { public MyJTextField() { // create JFrame setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new GridLayout(2, 1, 5, 5)); // create and add JTextField JTextField tf = new JTextField(20); add(tf);
  • 40. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 37 // add a JButton add(new JButton(&quot;Ok&quot;)); // Display JFrame pack(); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new MyJTextField(); } } - Constructor: + JTextField(): Tạo mới 1 JTextField + JTextField(Document doc, String text, int columns): Tạo 1 JTextField sử dụng mô hình lưu trữ văn bản với đoạn text và số cột (coloumns) + JTextField(int columns): Tạo JTextField trống với độ rộng là columns + JTextField(String text): Tạo JTextField với text cho trước + JTextField(String text, int columns): Tạo JTextField với text và độ rộng cho trước.
  • 41. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 38 - Common Methods: + void setEchoChar (char c) - ấn định ký tự thể hiện (password) + void setText(String S) + String getText() + void setEditable(boolean b) + boolean isEditable()
  • 42. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 39 5. JButton - JButton: là một đối tượng mà cho phép chúng ta khi click chuột vào sẽ thực hiện một việc gì đó. Ví dụ: tạo hành động cho jbutton package quyetdv.javaswing.components; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class JButtonDemo extends JFrame { private JLabel label; public JButtonDemo() { setSize(250, 100); setVisible(true); setLocation(500, 300); setResizable(false); setTitle("JButton Demo"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Create label label = new JLabel("A JLabel"); add(label); // Create button JButton button = new JButton("Click me"); add(button, "North", 1); // add ActionListener button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) {
  • 43. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 40 // TODO: Do something here changeText(); } }); } public void changeText() { label.setText("Label after Click button"); } public static void main(String[] args) { JButtonDemo buttonDemo = new JButtonDemo(); } } Sau khi click button - Constructors + JButton() : Tạo một Button không có text hoặc icon + JButton(Action a) : Tạo một Button có thuộc tính được lấy từ một Action + JButton(Icon icon) : Tạo một Button chỉ định một icon + JButton(String text) : Tạo một Button định text + JButton(String text, Icon icon) : Tạo một Button chỉ định text và icon - Common Methods + void setLabel(String) - đổi nhãn + String getLabel() - lấy nội dung nhãn
  • 44. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 41 Phần II: Quy trình làm game I. Giới thiệu - Hàng năm, có đến hàng triệu game được ra dành cho tất cả các dòng máy, từ các trò chơi dành cho các máy tính cấu hình cao đến các loại game và ứng dụng dành cho điện thoại hay các smartphone. Đã bao giờ khi chơi một trò chơi, bạn tự hỏi mình tại sao và bằng cách nào mà họ tạo ra một game hay hoặc dở tệ như thế này? Dù có hay hay không thì để làm lên một game đòi hỏi rất nhiều công sức bỏ ra của các nhà thiết kế và đội ngũ nhân viên phát triển vì vậy. Để khởi động việc làm một game theo cách đúng đắn nhất để tránh những bước đi sai lầm không đáng có cần phải nắm rõ những từng quy trình 1. Trước tiên phát triển trò chơi là sự cộng tác, phối hợp. - Phát triển trò chơi là một công việc kinh doanh khó khăn. Nếu chúng ta chỉ hướng việc làm chơi thì làm như thế nào cũng được miễn ra được cái gì đó để chơi thôi. Nhưng làm để bán và thu lại lợi nhuận thì việc phát triển trò chơi lúc này không hề đơn giản tí nào, nó tốn rất nhiều chi phí, thời gian và nhân lực để hoàn thiện trò chơi và thường đem lại mức lợi nhuận ít hơn rất nhiều so với mong đợi. Những trò chơi thành công thường cần có một sự phối hợp chặt chẽ giữa sự sáng tạo, kỹ thuật và chiến lược kinh doanh. Một sự cân bằng tốt giữa những yếu tố trên là chìa khóa để thành công và nếu một trong những yếu tố trên nổi trội lên thì dự án game sẽ gặp vấn đề. Thực tế sự cân bằng này rất hiếm khi đạt được. 2. Sự khởi đầu. - Một nhà thiết kế game tốt luôn bắt nguồn từ một điều cực kỳ đơn giản: Ý TƯỞNG. Trò chơi luôn bắt nguồn từ một ý tưởng. Ý tưởng có từ khắp mọi nơi trong cuộc sống, từ những điều nhỏ nhặt xung quanh chúng ta như các công việc nội trợ, bếp núc đến các vấn đề đang vô cùng nóng bỏng trên các trang mặt báo như là chiến tranh, khủng bố hay các ý tưởng đến từ các bộ phim bom
  • 45. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 42 tấn đã và đang được công chiếu trên thế giới. Mọi thứ đều có thể phát triển từ đó, Cho dù nó là một thiết lập nhỏ, một nhân vật hoặc một cấu trúc của trò chơi, thì ý tưởng này đều là dạng cơ bản của thiết kế trò chơi và qua một vài biến hóa, chúng có thể trở thành những thử thách và nhiệm vụ vô cùng khó khăn, cái mà khiến cho các game thủ vô cùng thích thú để khám phá và chơi đến tận cùng của trò chơi.. Bước tiếp theo là trả lời cho câu hỏi làm thế nào để hiện thực nó? Nó sẽ thực thi như thế nào? (Tất cả đều phụ thuộc vào tình hình tài chính của công ty) - Người thực sự làm ra trò chơi mà chúng ta đang chơi được gọi là developers (nhà phát triển). Những nhà phát hành lớn lại thường muốn lấy được danh tiếng và họ thường có một đội ngũ phát triển riêng nhưng vai trò lớn nhất của nhà phát hành là hỗ trợ. Khi một nhà phát triển bắt đầu một dự án, điều đầu tiên họ cần làm là đảm bảo nguồn đầu tư. Cách phổ biến nhất để làm điều đó là chọn lấy một nhà phát hành để họ đầu tư tiền, phân phối game đến tay người dùng và thu lại lợi nhuận. 3. Quá trình xây dựng game hoàn chỉnh. - Khi phát triển game, có người viết code ngay, nhưng cũng có người dành thời gian tạo tài liệu thiết kế thật chi tiết, chỉ rõ từng giai đoạn phát triển game, từ ý tưởng kịch bản, thuộc tính nhân vật, phong cách chủ đạo cho đồ họa và âm thanh... cho đến phân bố độ khó cho các màn chơi. Thông thường, tài liệu ban
  • 46. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 43 đầu càng được xây dựng chi tiết thì thời gian phát triển càng nhanh, sản phẩm cuối cùng sẽ có chất lượng càng tốt và không khác biệt nhiều so với ý tưởng ban đầu. - Trong một đội phát triển game thường có nhiều người, tối thiểu phải có những vị trí sau: Lập trình. Thiết kế đồ họa. Soạn nhạc và hiệu ứng âm thanh. Viết kịch bản. Kiểm tra và đóng goi sản phẩm - Nhiều người lầm tưởng rằng ý tưởng cốt truyện là một thiết kế của game. Xây dựng cốt truyện chỉ là một phần rất nhỏ công việc của nhà thiết kế game. Bộ phận thiết kế game suy nghĩ về mọi khía cạnh của game như: cốt truyện, góc quay, hệ thống điều khiển, vũ khí hoặc đồ vật, nhân vật, tốc độ duy chuyển, cấu trúc nhiệm vụ cá nhân, giao diện, hệ thống menu,... gần như mọi thứ của game. Mọi chi tiết của game phải được viết ra và nếu bạn đang làm việc với nhà phát hành, họ sẽ muốn thông qua nó trước. Điều này giúp cho bản thiết kế game trở nên chi tiết nhất và được cập nhật liên tục suốt quá trình làm dự án. - Qua đó cần phải có một tài liệu thật tốt để mọi người có chung tiếng nói, hiểu được mục tiêu chung và cùng nhau phát triển tốt sản phẩm game. II. Tổng quát, phát triển game gồm 4 giai đoạn: 1. Giai đoạn tiền sản phẩm/ý tưởng. - Ở giai đoạn này, từng thành viên phát triển ý tưởng, sau đó thống nhất với cả đội để xác định ý tưởng chủ đạo của sản phẩm. - Qua giai đoạn này, các ý tưởng cho lập trình, nội dung, thể loại game (action, puzzle, adventure, platform, sport, RPG...), phong cách đồ họa và âm nhạc dần được hình thành thể hiện qua biểu đồ, đặc tả, các thông số thử nghiệm, hình vẽ
  • 47. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 44 tay về nhân vật (sketch), giai điệu nhạc... được lựa chọn và thống nhất xuyên suốt các giai đoạn phát triển. 2. Đặc tả lập trình. - Đây là một giai đoạn rất quan trọng trong quá trình thiết kế game. Bạn càng bỏ nhiều thời gian cho giai đoạn này thì khi lập trình, gỡ lỗi càng nhàn hạ. Lập trình viên chuyên nghiệp hiểu rằng lỗi xuất hiện trong quá trình thiết kế sẽ thiệt hại hơn nhiều so với lỗi được phát hiện trong giai đoạn này. - Bạn cần giấy, bút hay chương trình văn bản và cùng với một vài người khác chơi thử game. Khi “chơi thử” bằng cách ghi ra giấy, các ưu/khuyết của thiết kế sẽ lộ rõ và bạn có thể chỉnh sửa cho đến khi cảm thấy vừa ý. 3. Lập trình, đồ họa, nhạc, hiệu ứng âm thanh.  Lập trình:
  • 48. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 45 - Với đặc tả đã có, hãy dự tính thời lượng cho việc lập trình, tính toán ngày công kỹ càng để có thể ước tính khối lượng công việc và dễ theo dõi tiến độ.  Đồ họa (Art) : - Bộ phận đồ họa chịu trách nhiệm cho phong cách hình ảnh của game. Có rất nhiều vai trò bên trong của bộ phận đồ họa và tất cả đều bắt đầu với họa sỹ phác thảo. Những phác thảo có thể đơn giản được vẽ sơ bộ hoặc đầy đủ chi tiết màu sắc. Họ thiết lập phong cách hình ảnh của game và đem lại cho những thành viên còn lại của đội ngũ đồ họa cảm hứng để tạo ra những nhân vật và môi trường. - Họa sỹ phụ trách vẽ nhân vật phác thảo hình 2D và sử dụng nó để tạo ra mô hình 3D. Họa sỹ phụ trách vẽ môi trường vẽ thủ công từng texture và mô hình để mang lại sự sống cho mỗi màn chơi. Họa sỹ phụ trách mảng hiệu ứng hình ảnh tạo ra những hình ảnh để thể hiện vụ nổ, thời tiết,.. Họa sỹ phụ trách mảng hoạt hình tạo ra những nhân vật hoạt họa riêng lẻ. Sau đó sẽ kết hợp với mã nguồn của lập trình viên để nó hoạt động.
  • 49. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 46 - Mỗi qui trình đơn giản trong game đều đòi hỏi sự cộng tác giữa các bên. Ví dụ, thậm chí một vài thứ đơn giản như tạo một nhân vật đi bộ thôi cũng phải có sự tham gia của cả 3 bộ phận. Họa sỹ sẽ tạo ra một chuỗi hình lặp thể hiện hành động đi bộ của nhân vật và lập trình viên sẽ đảm bảo nhân vật duy chuyển đúng khoảng cách, tốc độ và kích hoạt hành động đi khi bạn nhấn nút W. Những thông số đặc tả sẽ được quyết định bởi một nhà thiết kế (designer)  Âm thanh - Gần đến cuối giai đoạn của sản xuất, những nhà thiết kế âm thanh sẽ tạo ra những hiệu ứng âm thanh, nhạc nền hoặc thu âm giọng nói nếu cần. Việc này thường để gần cuối vì sự thay đổi là rất phổ biến trong phát triển game. Nhà thiết kế âm thanh sẽ tạo ra âm thanh hiệu ứng để khớp với mỗi hành động trong game và nhạc nền để tạo ra chiều sâu cho môi trường xung quanh. Họ còn sắp xếp diễn viên nam và nữ để thu âm những đoạn hội thoại. Thiết kế âm thanh
  • 50. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 47 thường được đặt hàng làm từ bên ngoài vì nó đòi hỏi phải có những thiết bị chuyên dụng và vì quá trình này thường được hoàn tất trong vài tháng cuối của quá trình sản xuất. 4. Thử nghiệm, kiểm định, đóng gói. - Bộ phận cuối cùng nhúng tay vào qui trình phát triển trò chơi là những nhà kiểm định (testers). Bắt đầu việc kiểm định trò chơi của bạn sớm nhất có thể là một việc tốt nhưng thực tế, quá trình này thường diễn ra ở giai đoạn cuối. Những nhà kiểm định họ chơi thử, cố gắng tìm và báo cáo lỗi vào cơ sở dữ liệu. Những người còn lại của đội ngũ phát triển sẽ sửa những lỗi họ được giao cho đến khi game không còn lỗi nghiêm trọng, lúc đó trò chơi đã sẵn sàng để phát hành. Quyết định ấn định ngày phát hành thường là của nhà quản lý kinh nghiệm hoặc nhà phát hành. Đối với game cho hệ máy console, sẽ có thêm một bước kiểm định phải vượt qua nữa, là kiểm định yêu cầu kỹ thuật (technical requirement checklist). Ví dụ: nếu bạn phát hành trò chơi trên PS3, bạn sẽ gửi
  • 51. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 48 trò chơi của bạn tới Sony, họ sẽ kiểm định và gửi lại yêu cầu thay đổi hoặc may mắn bạn vượt qua được quá trình đó trò chơi của bạn sẽ được phát hành. - Đóng gói: tùy vào mục đích phát triển game cho di động hay máy tính… phải được “xuất” hay đóng gói cho các dòng máy khác nhau (do các dòng máy này khác nhau về phím nhấn, bộ nhớ và thư viện hỗ trợ…..).
  • 52. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 49 PHẦN III: Xây Dựng Game I. Phân tích các đối tượng trong game.  Mario (Người chơi điều khiển)  Đạn  Boss - Nấm - Rùa  Rùa di chuyển  Rùa bay  Rùa ném tiêu - Hoa dại - Nhím - Mây ném nhím  Gift - Nấm tăng trưởng (Giúp Mario lơn hơn 50%) - Nấm tăng mạngSao may mắn (Giúp Mario khi va chạm với boss không sao) - Bông hoa lấp lánh (Giúp Mario có thể bắn đạn được)
  • 53. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 50 II. Biểu đồ Uc hệ thống. StartGame HightScore GuidePlayGame Exit MoveRight MoveLeft MoveUp MoveDown <<extend>> <<extend>> <<extend>> <<extend>> Dame <<extend>> Brightness Sound Option Player <<extend>> <<extend>>
  • 54. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 51 Tổng kết - Java là ngôn ngữ OOP - JVM là trái tim của Java. - JDK là bộ công cụ hỗ trợ lập trình. - Nắm chắc các kiến thức cơ bản của java : kiểu dữ liệu,mảng….. - Các đối tượng trong swing - Nắm bắt và hiểu rõ từng quy trình làm game.
  • 55. Viết đề tài giá sinh viên – ZALO:0973.287.149-TEAMLUANVAN.COM 52 Tài liệu tham khảo http://tutorialspoint.com/java/ http://java2s.com/ http://www.javapractices.com Introduced by javalobby.org http://www.onjava.com- O'Reilly's Java website. New articles weekly. http://java.sun.com- The official Java developer website - new articles posted weekly. http://www.developer.com/java- Java articles hosted by Gamelan.com http://www.java.net- The Java community website hosted by Sun Microsystems. http://www.ibm.com/developerworks/java- IBM's Developerworks; the Java section. http://www.javaworld.com- One of the originals. Weekly updates of Java articles. http://www.devx.com/java- Java articles hosted at DevX. http://www.javadesktop.org- The desktop Java community hosted atJava.net. http://www.jars.com- The Java review service. Covers frameworks and applications. http://www.jguru.com- A great source for Q&A style interaction in the community. http://www.javaranch.com http://www.ibiblio.org/javafaq/javafaq.html- The comp.lang.java FAQ - questions asked, answered, and categorized from the comp.lang.java newsgroup. http://java.sun.com/docs/books/tutorial/- The Official Java tutorial from Sun - very useful for almost any feature set. https://quyetdo289.wordpress.com/?s=JFrame