1.2 Yêu cầu đề tài: > Công việc mà đê tài hướng đên bao gôm các chức năng nhự sau: - Bat đầu trò chơi - Hiện p1ao diện chính - _ Hiện các ô chữ cho người chơi nhập vào - - Tắt mở âm th
Trang 1
TRUONG DAI HQC BAC LIEU KHOA CONG NGHE THONG TIN
TIEU LUAN LAP TRINH UNG DUNG CHO MOBILE
TEN DE TAI
XAY DUNG UNG DUNG GAME DUOI HINH BAT
CHU
Sinh vién thuc hién M64 Sinh vién Pham Nhat Duy 207480201037
Bac Liêu thắng Í2 năm 2023
Trang 2
MUC LUC
T MO TA UNG DUNG Loc ccccccccccccsecssessessessessucssessessesssestessessuessessssessressessessuesuesseeseeeseesseveevens 3 4.1 DAC ta GS tai ccc 0n ng 221211 212111212112112112121121121 21111121 22a 3 4.2 YOU CAU GS tai ie ccc cc ccccccccccesecscssecscsucsessessessesussuesessnssessssusaueseescssessesseevsesvanssessseeaees 3
II cầu ốc na ẽ 3 ILCÁC BƯỚC THIẾT KÉ - S5 2 2521121115151121111211111121121111211111112112112111 E11 4
2.1 Một số thư viện được sử dụng -: ct 22221 tre 4
2.2 Các bước thiết kế S2 21121121111112111111111121121121112121 2112111121211 512 se 4 2.3 Lập trình trên File Java L0 0 21 10112121012121121121111 111 no 7 2.3.1 Khai báo MainActivity ác ch HH HH HH HH kg HH He 7
2.3.3 PIAYMOdE ec cccccccccsscsecsensccsesesessessessssevssesessevsecsessesssssesssasssssassessscsesesseeeaes 12
2.3.5 VWin 2n 1022111212112 1111212122 tre 13 III.GIAO DIỆN CHƯƠNG TRÌNH Ặ.- 1 2n 2211211211211211211 1211111212112 21215 sxre 15 3.1 Giao diện màn hình chờ TT TT TT 1n 1H nh HH TT HH 1kg crệt 15 3.2 Giao diện game L0 01 1 1010211101201 11 HH1 te 16
3.3 Giao diện chiến thắng 2222 2221111222111 re 17
IV.KÉT LUẬN 252 21 23 211211151121221121121122112112111121122112112111112111121121 12122 srerse, 18 TÀI LIỆU THAM KHẢO - 2S n2 112112112111111211111212111 1211211211211 11211 erre 19
Trang 3I MO TA UNG DUNG 1.1 Dac ta dé tai
Trong thời đại công nghệ npày nay, việc xây dựng các ứng dụng siáo dục va giải trí trên điện thoại di động trở nên ngày càng phô biến Đề tai này tập trung vào việc phát triển một trò chơi giáo dục mang tên "Đuôi Hình Bắt Chữ" trên nền tảng Android
Mỗi màn chơi sẽ hiện ra một hình, người chơi trả lời đúng sẽ qua hình tiếp theo,
sẽ có gợi ý nếu người chơi tìm không được câu trả lời Nếu như sử dụng gợi thì phải đôi băng số điểm, số điểm ít nhất để đôi được gợi ý là 10 điểm
1.2 Yêu cầu đề tài:
> Công việc mà đê tài hướng đên bao gôm các chức năng nhự sau:
- Bat đầu trò chơi
- Hiện p1ao diện chính
- _ Hiện các ô chữ cho người chơi nhập vào
- - Tắt mở âm thanh
- Nut got y cho người chơi
- Nut quay lai trang chủ để người chơi bắt dau lại trò chơi
> Tìm hiểu về ngôn ngữ Java
> Cách sử dụng công cụ Android
1.3 Môi trường cài đặt
> Chạy trên hệ điêu hành Android
> Sử dụng ngôn ngữ lập trình Java
> Công cụ sử dụng Android Studio
Trang 4ILCÁC BƯỚC THIẾT KE 2.1 Một số thư viện được sử dụng
-‘androidx.appcompat.app.AppCompatActivity: Day la mot class trong AndroidX, một bản cập nhật của Android Support Library AppCompatActivity la một lớp cơ sở cho tất cả các Activity trong ứng dụng Android của bạn và giúp hỗ trợ các tính năng mới của Android trở về phiên bản cũ
- ‘android.content Intent’: Lop Intent được sử dụng để thực hiện các hành động như khởi chạy một Activity mới, gửi và nhận dữ liệu giữa các thành phần của ứng dụng, và thậm chí mớ các thành phần nằm ngoài ứng dụng
- ‘android media AudioAttributes’: Lop AudioAttributes giúp đặt cấu hình cho cách âm thanh sẽ được phát lại hoặc ghi Điều nảy có thể bao gồm cấu hình về loại
sử dụng âm thanh, nội dung âm thanh, và các thuộc tính khác
- ‘android media.MediaPlayer’: Lop MediaPlayer cung cấp các phương thức dé quản lý và phát nhạc hoặc audio trong ứng dụng của bạn Bạn có thể sử dung no dé phát các loại tệp âm thanh như MP3, WAYV, AAC, va nhiều định dạng khác
- 'android.media.SoundPool': Lớp SoundPool cung cấp một cơ chế nhẹ để phát lại các âm thanh ngắn, thường được sử dụng cho hiệu ứng âm thanh trong game hoặc ứng dụng khác SoundPool tối ưu cho việc phát nhiều âm thanh ngắn cùng một lúc
2.2 Các bước thiết kế
Bước 1: Tạo Một Dự Án Mới Trong Android Studio
> Mo Android Studio và tạo một dự án mới
> Chon loại dự án (ví dụ: Empty Activity hoadc Basic Activity)
Bước 2: Thêm Tệp XML cho Cac Lop Activity
Trong thu muc res/layout, tao tép activity_main.xml cho MainActivity
Tương tự tạo tệp activity game cho man hinh hiển thị trò chơi, tạo tệp activity win cho man hình hiển thị bạn đã chiến thắng, và tạo tệp activity_traloi
cho mả hình hiển thị các câu hỏi
Bước 3: Thiết kế giao diện trong tệp XML
Trong tệp activity_main.xml sử đụng chủ yếu các thành phần để tạo một giao điện danh sách các bài hát và công cụ tìm kiêm Bao pgôm các thành phần chính:
> Button: Dé hién thị nút Bắt đầu và nút tắt mở nhạc
> ImageView: Dé hiển thị hình ảnh game Đuôi hình bắt chữ
4
Trang 5BẮT ĐẦU
Hinh 1: Giao dién activity_main.xml Đến tệp activity_game.xml hién thi giao diện trò chơi ta thêm các thành phần sau:
> Button: Dé hién nit goly va tat mo nhac
> Textview: Đề hiện điểm và độ khó
> GridView: Đề hiện các items
Trang 6
Hinh 2 Giao dién activity_ game
Activity_win.xml hiến thị giao diện khi bạn đã trả lời được tất cả các câu hỏi, gồm các
thành phân:
> ImageButton: Để hiện nút quay về trang bắt đầu trò chơi
> Textview: Dé hiện chữ Bạn đã hoàn thành trò chơi
> ImageView:Dé hiện các hình ngôi sao
Trang 7
Hình 3 Giao dién activity win
Và cuối củng là tệp activity_traloi.xml để hiện thị các câu hỏi cho người chơi, gồm các thành phần sau:
TextView: Đề hiện các câu hỏi và đáp án để người chơi điền vào
Bước 4: Kết nói cau trúc các lớp Activity
Trong lớp java bao gồm 2 lớp chính là MainActivity và DapanAdapter
2.3 Lập trình trên File Java
Kết nối các cấu trúc trong lớp Activity Trong lớp java bao gồm có hai lớp chính là MainActivIty, game, playmode,question va win
2.3.1 Khai bao MainActivity
Ham onCreate
Thiết lập SplashScreen (nếu có)
Khởi tao va hién thị giao diện chính (activity_main.xml)
Lấy màu sắc mặc định của thanh trạng thái
Thiết lập thanh công cụ (Toolbar) vả tiêu để ứng dụng
Tìm các nút được gán ID
Đặt âm lượng cho đối tượng MediaPlayer
Trang 8
Hinh 4 Ham onCreate khoi tao giao dién Ham setOnClickListenner:
Thiét lập một OnClickLIstener mới cho nut music Khi nut nay được nhấn, mã lệnh trong phương thức onClick sẽ được thực hiện
Hình 5 Hàm setOnClickListenner 2.3.2 Game
Hàm onCreate(Bundle savedInstanceState):Gọi phương thức onCreate của lớp cha để
thực hiện các bước khởi tạo mặc định
- MediaPlayer.create(this, R.raw.game) :Tao va bắt đầu phát âm thanh từ tệp raw/game
- createSoundPool():Khoi tao SoundPool dé phat 4m thanh ngan
- _ soundPool.load(this, R.raw.keyclick, l): Tải âm thanh từ tệp raw/keyclick vao SoundPool và lấy ID của nó
- _ anhXa():Gọi phương thức anhXa() để ánh xạ các thành phần UI
- - nhac.setOnClickListener(new View.OnClickListener()):Thiết lập sự kiện cho nút nhac
Trang 9
Hinh 6: Ham onCreate(Bundle savedinstanceState) Ham createSoundPool():được sử dụng đề tạo đôi tượng SoundPool
tra xem phién ban Android cua thiết bị có lớn hơn hoặc bằng LOLLIPOP không
- AudioAttributes attributes: Tao déi tượng AudioAttributes để xác định cách âm thanh sẽ được sử dụng trong SoundPool Đối với phiên bản Android LOLLIPOP trở lên, AudioAttributes được sử dụng để cấu hình các thuộc tính
âm thanh
- soundPool: Sử dụng SoundPool.Builder để tạo đối tượng SoundPool với các thuộc tính được xác định bởi AudioAttributes Số luồng âm thanh tôi đa được đặt là 1
Trang 10(Build VERSION VT >= Build VERSION_CODES AudioAttribu ttributes = AudioAttributes.Builder()
Usage(AudioAttribut
ContentType(AudioAttributes
„buiLd()
= SoundPool Builder ()
setMaxStre SoundPool ( 1, android.media.AudioManager
Hinh 7 Ham createSoundPool Hàm playSound(Q): được sử dụng để phát âm thanh bằng đối tượng SoundPool
Hình 8 Hàm playSound Hàm onDestroy(): được gọi khi activity được hủy bó Trong trường hợp này, nó được
sử dụng đề giải phóng tài nguyên của doi trong SoundPool
.onDestroy()
Hinh 9 Ham onDestroy Hàm anhXa():được sử dung de anh xa (map) cac thanh phan UI ti layout XML vao biên trong code Java
=findViewById(R.id
=findViewById(R.id
=findViewByTd(R
=findViewByld(R
=findViewBy1Id(R.id
Hình 10 Hàm anhXa
10
Trang 11Hàm showResult():được sử dụng đề hiển thị kết quả và hiển thị đáp án của trò chơi
Hình 11 Hàm showResult
Ham click(): được sử dụng để xử lý sự kiện khi m6t myc trong GridView dap an
(øvda) được nhân
Hình 12 Hàm chck Hàm Data() : được sử dụng đề khởi tạo đữ liệu cho trò chơi
11
Trang 12
Hinh 13 Ham Data
Lớp playmodel là một mô hình chơi trong trò chơi, và nó có một sô thành phân quan trọng được khởi tạo trone hàm tạo
- - ArrayList<question> arr: Biến arr là một danh sách (ArrayList) chứa các đối tượng câu hỏi Đối tượng này lưu trữ các thông tin về các câu hỏi trong trò chơi
- _ public playmodel(game c) :Hàm tạo của lớp playmodel nhận một tham chiếu đến activity game và gọi phương thức data() đề khởi tạo dữ liệu của đối tượng playmodel
12
Trang 13
Hinh 14 Lop playmodel 2.3.4 Question
Lớp question: là một lớp đại diện cho một câu hỏi trong trò chơi, và nó chứa các thuộc tính như tên câu hỏi (ten), đáp ân (dapan), hình ảnh (anh), va giai thich (gy)
Hình 15 Lop question 2.3.5 Win
- — super.onCreate(savedInstanceState);: Gọi phương thức onCreate của lớp cha để thực hiện các công việc khởi tạo mặc định
- _ setContentView(R.layout.activity win);: Thiết lập layout cho activity từ tệp layout XML có tên là activity win Điều này xác định cách giao diện người dùng sẽ được hiển thị
- _ Intentin = new Intent(win.this, MainActivity.class);: Tạo một Intent để chuyển
tr activity win sang activity MainActivity
- startActivity(in);: Khoi chay activity méi duoc chi dinh trong Intent, tức là MainActivity
13
Trang 14
Hinh 16 Lop win
14
Trang 15III.GIAO DIỆN CHƯƠNG TRÌNH 3.1 Giao diện màn hình chờ
BẮT ĐẦU
Hình 17 Giao điện màn hình chờ Khi người chơi nhân vào nút bắt đâu thì sẽ vào game, nhân vào nút âm thanh thì sẽ tắt
mở âm thanh
15
Trang 163.2 Giao dién game:
oe :
Hinh 18 Giao dién Game Game sé chia ra mức độ dễ, khó, trung bình Người chơi phải nhập đúng đáp án
để được qua màn tiếp theo, nêu người chơi không tìm ra được đáp án, người chơi sẽ
bám vảo nút hình bóng đèn đề nhận gợi ý nhưng người chơi phải có ít nhất là 10 điểm
để đổi được ĐỢI ý
16
Trang 173.3 Giao dién chién thang:
§› Đuối
Hình 19 Giao điện chiến thẳng Sau khi hoàn thành trò chơi thì màn hình chiên thang sé xuat hién, bam vào nút ngôi nhà sẽ trở về trang chính
17
Trang 18IV.KET LUAN
Sau một thời gian tìm hiểu đề tài “Xây đựng game đuôi hình bắt chữ” em đã thực hiện được nội dung đề tài theo yêu cầu đặt ra Với mục đích là tìm hiểu về hệ điều hành Android, hiểu biết về ngôn ngữ lập trình mới cho điện thoại di động Android và tìm hiểu các ứng dụng của hệ điều hành Android trong thế giới di động ngảy nay Thông qua việc tìm hiểu và nắm bắt lý thuyết về hệ điều hành Android, bước đầu đã xây dựng thành công chương trình thực nghiệm với các chức năng cơ bản
Trong quá trình tìm hiểu lý thuyết về hệ điều hành Android và xây dựng ứng game đuôi hình bắt chữ em đã thu được kết quả sau:
- Hiểu và sử dụng được các lớp đối tượng, các thư viện hỗ trợ lập trình trên nền tảng hệ điều hành Android
- Xây dựng thành công ứng dụng đemo với các chức năng cơ bản như bắt đầu trò chơi, hiến thị giao điện trò chơi để người chơi sử dụng
- Đóng gói ứng dụng thành file.apk cho phép cài đặt trên điện thoại Android
Do thời gian có hạn củng với kiến thức của bản thân còn hạn chế nên em chưa tìm hiểu sâu về các kiến thức liên quan tới hệ điều hành Android nên chương trình vẫn còn rất nhiều hạn chế, em sẽ cố gắng phát triên thêm để chương trình thêm bắt mắt và thêm nhiêu chức năng hơn nữa
18
Trang 19TAI LIEU THAM KHAO
[1] ThS Tran Khanh Luan, ThS Huynh Thi My Trâm (2023) Bài giảng Lập trình
tưng dụng cho Mobile Trường Đại học Bạc Liêu
[2]I.https:/⁄www.voutube.com/results?search_query=dumv
19