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

Lập trình trò chơi trên điện thoại di động ai là triệu phú

38 70 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Trò Chơi Trên Điện Thoại Di Động: Ai Là Triệu Phú
Tác giả Võ Đình Luân
Người hướng dẫn ThS. Nguyễn Quang Ninh
Trường học Trường Đại Học Vinh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2017
Thành phố Nghệ An
Định dạng
Số trang 38
Dung lượng 1,54 MB

Cấu trúc

  • CHƯƠNG I: TỔNG QUAN ĐỀ TÀI (7)
    • 2. Mục tiêu đề tài (7)
    • 3. Nội dung (7)
      • 3.1. Đối tượng nghiên cứu (7)
      • 3.2. Phạm vi nghiên cứu (7)
    • 4. Phương pháp nghiên cứu (7)
    • 5. Ý nghĩa lý luận và thực tiễn (8)
  • CHƯƠNG II: CƠ SỞ LÝ THUYẾT (9)
    • 1. Giới thiệu về Android (9)
    • 2. Ngôn ngữ Java (11)
    • 3. Giới thiệu môi trường phát triển Android Studio (15)
  • CHƯƠNG III: PHÂN TÍCH HỆ THỐNG (24)
    • 1. Mô tả bài toán (24)
      • 1.1 Nhu cầu thực tế (24)
      • 1.2. Ý tưởng (24)
      • 1.3. Xác định yêu cầu và chức năng (24)
      • 1.4. Định hướng người dùng (24)
      • 1.5. Phương pháp thực hiện và hướng giải quyết (24)
    • 2. Cơ sở của ứng dụng (25)
      • 2.1. Dữ liệu trong thực tế (25)
      • 2.2. Dữ liệu câu hỏi ứng dụng (25)
      • 2.3. Thiết kế cơ sở dữ liệu (26)
    • 4. Các câu lệnh quan trọng trong chương trình (0)
    • 5. Demo chương trình (35)
  • KẾT LUẬN (37)
    • 1. Kết quả đạt được (37)
    • 2. Hạn chế (37)
    • 3. Hướng phát triển (37)
    • 4. Kinh nghiệm thu được (37)
  • TÀI LIỆU THAM KHẢO (38)

Nội dung

CƠ SỞ LÝ THUYẾT

Giới thiệu về Android

Như các bạn đã biết Android là hệ điều hành di động phổ biến nhất hiện tại và cũng là hệ điều hành có sự phát triển nhanh nhất

Lịch sử Android bắt đầu từ năm 2005 như một phần của chiến lược không gian mobile, là hệ điều hành dựa trên nhân Linux Sau khi được Google mua lại, Android trở thành một hệ điều hành mã nguồn mở, cho phép người dùng tải về và sử dụng mã nguồn cho các mục đích riêng Hiện nay, Android hiện diện trên hầu hết các sản phẩm của các nhà sản xuất lớn như Samsung, Sony, HTC, từ điện thoại thông minh đến máy tính bảng và ti vi Sự phổ biến này không chỉ giúp Android phát triển mạnh mẽ mà còn tạo ra tiềm năng lớn cho các lập trình viên.

Hệ điều hành Android phát triển ngày càng lớn mạnh và kể từ khi nó ra đời tới giờ nó đã có các phiên bản sau

Biểu đồ cho thấy các phiên bản Android 4.x đang dần thay thế các phiên bản Android 2.x, trong khi phiên bản 3.0 chủ yếu được sử dụng cho máy tính bảng.

Dựa vào nội dung này, bạn có thể xác định hướng phát triển riêng cho mình, với khả năng hỗ trợ các phiên bản Android từ 4.x trở lên hoặc toàn bộ các phiên bản của hệ điều hành này Đây là một phần quan trọng trong đồ án tốt nghiệp đại học.

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 10

Kiến trúc cơ bản của hệ điều hành Android

Android gồm 5 phần chính sau được chứa trong 4 lớp:

1 Nhân Linux: Đây là nhân nền tảng mà hệ điều hành Android dựa vào nó để phát triển Đâu là lớp chứa tất cả các thiết bị giao tiếp ở mức thấp dùng để điều khiển các phần cứng khác trên thiết bị Android

2 Thư viện: Chứa tất cả các mã cái mà cung cấp cấp những tính năng chính của hệ điều hành Android, đôi với ví dụ này thì SQLite là thư viện cung cấp việc hộ trợ làm việc với database dùng để chứa dữ liệu Hoặc Webkit là thư viện cung cấp những tính năng cho trình duyệt Web

3 Android runtime: Là tầng cùng với lớp thư viện Android runtime cung cấp một tập các thư viện cốt lỗi để cho phép các lập trình viên phát triển viết ứng dụng bằng việc sử dụng ngôn ngữ lập trình Java Android Runtime bao gốm máy ảo Dalvik(ở các version < 4.4, hiện tài là phiên bản máy ảo ART được cho là mạnh mẽ hơn trong việc xử lý biên dịch) Là cái để điều khiển mọi hoạt động của ứng dụng Android chạy trên nó(máy ảo Dalvik sẽ biên dịch ứng dụng để nó có thể chạy(thực thi) được , tương tự như các ứng dụng được biên dịch trên máy ảo Java vậy) Ngoài ra máy ảo còn giúp tối ưu năng lượng pin cũng như CPU của thiết bị Android

4 Android framework: Là phần thể hiện các khả năng khác nhau của Android(kết nối, thông báo, truy xuất dữ liệu) cho nhà phát triển ứng dụng, chúng có thể được tạo ra để sử dụng trong các ứng dụng của họ

5 Application: Tầng ứng dụng là tầng bạn có thể tìm thấy chuyển các thiết bị Android như Contact, trình duyệt…Và mọi ứng dụng bạn viết đều nằm trên tầng này Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 11

Dưới đây là hình ảnh cho các tầng này:

Ngôn ngữ Java

Java là một ngôn ngữ lập trình mạnh mẽ và phổ biến, được sử dụng rộng rãi trong phát triển phần mềm, trang web, game và ứng dụng di động Với sự phát triển không ngừng, Java ngày càng khẳng định vị thế của mình trong ngành công nghiệp công nghệ.

Java được thiết kế với tiêu chí "Viết một lần, thực thi khắp nơi" (WORA), cho phép chương trình viết bằng Java chạy trên nhiều nền tảng khác nhau, miễn là có môi trường thực thi phù hợp Đây là ngôn ngữ lập trình phổ biến, dễ dàng tiếp cận và sử dụng cho tất cả lập trình viên.

 Đặc điểm của ngôn ngữ lập trình Java a Tựa C++, hướng đối tượng hoàn toàn

Trong quá trình phát triển một ngôn ngữ lập trình mới nhằm hỗ trợ chạy trên nhiều nền tảng, các kỹ sư của Sun MicroSystem đã thực hiện một dự án tốt nghiệp đại học.

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 12, cho biết rằng ngôn ngữ lập trình này rất dễ học và quen thuộc với đa số lập trình viên Điều này dẫn đến việc họ thường xuyên sử dụng lại các cú pháp từ C và C++.

Trong Java, việc thao tác với con trỏ đã bị loại bỏ để đảm bảo tính an toàn và dễ sử dụng Ngoài ra, các thao tác overload, lệnh goto cùng với các cấu trúc như struct và union cũng không được hỗ trợ trong Java Điều này giúp Java trở nên độc lập với phần cứng và hệ điều hành.

Ngôn ngữ Java nổi bật với khả năng "cross-platform", cho phép chương trình chạy mượt mà trên nhiều môi trường khác nhau Khả năng này được thể hiện qua hai cấp độ: mã nguồn và nhị phân Ở cấp độ mã nguồn, kiểu dữ liệu trong Java nhất quán trên tất cả hệ điều hành và phần cứng, nhờ vào bộ thư viện hỗ trợ riêng Điều này giúp chương trình Java có thể biên dịch trên nhiều loại máy mà không gặp lỗi Ở cấp độ nhị phân, mã biên dịch có thể chạy trên nhiều nền tảng mà không cần dịch lại mã nguồn, tuy nhiên, cần có Java Virtual Machine để thông dịch mã này.

Ngôn ngữ lập trình thường được chia ra làm 2 loại (tùy theo các hiện thực hóa ngôn ngữ đó) là ngôn ngữ thông dịch và ngôn ngữ biên dịch

Ngôn ngữ lập trình Java thuộc loại ngôn ngữ thông dịch Chính xác hơn, Java là loại ngôn ngữ vừa biên dịch vừa thông dịch Cụ thể như sau:

Khi lập trình, một tệp java sẽ được tạo ra Sau đó, mã nguồn của chương trình sẽ được biên dịch thành mã byte code Khi chương trình được yêu cầu chạy, Máy ảo Java (Java Virtual Machine) sẽ chuyển đổi mã byte code này thành mã máy (native code).

Võ Đình Luân, sinh viên lớp 53K1 thuộc Khoa CNTT 13, cho biết rằng phương pháp này cho phép mã Java hoạt động trên nhiều nền tảng khác nhau, miễn là có sự hỗ trợ của JVM cho nền tảng đó.

Nhược điểm của Java là quá trình thực thi mã chậm hơn so với các ngôn ngữ biên dịch khác, mặc dù vẫn nằm trong mức chấp nhận được Bên cạnh đó, Java sử dụng cơ chế thu gom rác tự động để quản lý bộ nhớ.

Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớ cho các đối tượng ở trên heap

Trong lập trình với ngôn ngữ C/C++, việc quản lý bộ nhớ là rất quan trọng, bạn cần phải giải phóng vùng nhớ đã cấp phát để tránh tình trạng thất thoát bộ nhớ Nếu không hủy bỏ một số vùng nhớ, điều này có thể dẫn đến thất thoát và làm giảm hiệu suất của chương trình.

Ngôn ngữ lập trình Java tự động quản lý bộ nhớ thông qua bộ thu dọn rác, giúp lập trình viên không cần phải gọi hủy các vùng nhớ Bộ thu dọn rác theo dõi các tài nguyên đã được cấp phát và tự động thu hồi chúng khi không còn tham chiếu nào, đảm bảo hiệu quả sử dụng bộ nhớ.

Java hỗ trợ lập trình đa tiến trình (multithread) cho phép thực thi các công việc đồng thời Nó cũng cung cấp các giải pháp đồng bộ giữa các tiến trình, bao gồm việc sử dụng ưu tiên (priority).

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 14 f Tính an toàn và bảo mật

Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu

 Dữ liệu phải được khai báo tường minh

 Không sử dụng con trỏ và các phép toán với con trỏ

Java kiểm soát chặt chẽ việc truy cập vào mảng và chuỗi, ngăn chặn việc sử dụng kỹ thuật tràn Điều này đảm bảo rằng các truy cập không vượt quá kích thước cho phép của mảng hoặc chuỗi.

 Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động

 Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn

Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau

 Mức 1 : Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện mà lớp cung cấp

 Mức 2 : Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy tắc của ngôn ngữ lập trình Java trước khi thông dịch

 Mức 3 : Trình thông dịch sẽ kiểm tra mã byte code xem các đoạn mã này có đảm bảo được các quy định, quy tắc trước khi thực thi

 Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống

 Máy ảo Java là phần mềm giả lập máy tính, nó tập hợp các lệnh logic để xác định hoạt đông của máy

 Có thể xem nó như là một hệ điều hành thu nhỏ Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 15

 JVM chuyển mã byte code thành machine code tùy theo môi trường tương ứng (gọi là khả năng khả chuyển)

 JVM cung cấp môi trường thực thi cho chương trình Java (gọi đó là khả năng độc lập với nền)

Sun MicroSystem thiết kế và phát triển nhiều loại máy ảo Java, cho phép chúng hoạt động trên nhiều hệ điều hành và kiến trúc phần cứng khác nhau.

Giới thiệu môi trường phát triển Android Studio

Google cung cấp Android Studio, một công cụ phát triển ứng dụng Android dựa trên nền tảng IntelliJ IDEA Bộ công cụ này bao gồm các trình soạn thảo riêng biệt cho hầu hết các file cấu hình và Layout ứng dụng Android định dạng XML Đặc biệt, Android Studio cho phép lập trình viên dễ dàng chuyển đổi giữa chế độ chỉnh sửa nội dung XML và giao diện người dùng (GUI) để thao tác và chỉnh sửa thuận tiện.

Ngoài ra , bộ phát triển Android Studio còn tích hợp bên trong những tiện ích hỗ trợ phát triển ứng dụng như sau:

 Bộ xây dựng ứng dụng Gradle với nhiều cấu hình linh động

 Cho phép xây dựng ứng dụng tùy biến và tự động tạo ra file apk tương thích với thông tin tùy biến

 Bộ code mẫu giúp chúng ta xây dựng các chức năng phổ biến của các ứng dụng

Trình biên soạn Layout GUI cho ứng dụng Android mang đến sự phong phú và tiện lợi, cho phép người dùng dễ dàng tạo giao diện màn hình bằng cách kéo thả các thành phần mẫu có sẵn Người dùng cũng có thể tùy chỉnh giao diện themes như kích thước, màu sắc và nhiều yếu tố khác theo ý muốn.

Tích hợp lint là một ứng dụng hữu ích giúp các nhà phát triển kiểm soát hiệu suất, tính khả dụng và khả năng tương thích của các phiên bản API Nó cũng hỗ trợ phát hiện những vấn đề tiềm ẩn có thể xảy ra trong quá trình Runtime, góp phần nâng cao chất lượng sản phẩm.

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 16

 ProGuard (tiện ích tối ưu và mã hóa code khi build ứng dụng) và Android app- signing

 Bộ tích hợp hỗ trợ phát triển ứng dụng Android dễ dàng với các dịch vụ cùa nền tảng đám mây của Google (Google Cloud Platform)

Nơi khai báo các Activity trong ứng dụng

Qui định Activity nào thực thi đầu tiên

Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 17

Cấp quyền cho ứng dụng như quyền truy cập internet, quyền ghi thẻ nhớ, …

Mỗi activity tương ứng với một form

Là nơi viết code bằng java

Câu lệnh setContentView(R.layout.activity_main); dùng để chỉ định layout

In the example provided, a main layout named "main_start" has been established to contain the primary program framework The command to invoke this main program framework is: setContentView(R.layout.main_start); within the package gsth.gsthapplcation The necessary imports include android.support.v7.app.AppCompatActivity and android.os.Bundle, and the class is defined as public class MainActivity extending AppCompatActivity.

@Override protected void onCreate(Bundle savedInstanceState) { Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 18 super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

Khu vực res build.gradle (Module: app) trong Gradle Scripts

Qui định phiên bản SDK

Khai báo thư viện sử dụng apply plugin: 'com.android.application' Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 19 android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "gsth.gsthapplcation" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0"

} buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- rules.pro'

} dependencies { Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 20 compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1'

Biên dịch và chạy ứng dụng

Bước 1: Tạo thiết bị ảo (Emulator)

 Lựa chọn thiết bị -> Next Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 21

 Lựa chọn phiên bản Android -> Next -> Finish Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 22

 Chọn Lauch this AVD in the emulator (biểu tượng play) để khởi động thiết bị ảo

 Thiết bị ảo (emulator) Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 23

 Chọn biểu tượng Run „app‟ hoặc nhấn tổ hợp phím Shift + F10

 Chọn thiết bị ảo -> OK

 Ứng dụng đã được thực thi Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 24

PHÂN TÍCH HỆ THỐNG

Mô tả bài toán

Nhu cầu giải trí trên điện thoại di động ngày càng gia tăng, kéo theo sự xuất hiện của nhiều trò chơi hấp dẫn Trong những lúc rảnh rỗi, mọi người thường tìm kiếm các trò chơi quen thuộc để rèn luyện kiến thức và nâng cao khả năng hiểu biết, chẳng hạn như trò chơi Ai.

Xây dựng ứng dụng di động giúp người dùng vừa luyện kiến thức vừa giải trí, mô phỏng theo chương trình "Ai Là Triệu Phú" nổi tiếng trên VTV3 của Đài Truyền Hình Việt Nam.

1.3 Xác định yêu cầu và chức năng Ứng dụng cũng gồm các chức năng chính: trả lời câu hỏi và có sự hỗ trợ để vượt qua những câu hỏi Tương ứng với mỗi câu hỏi là một giá trị tiền thưởng nhất định

Tất cả mọi người ở mọi lứa tuổi đều sở hữu smartphone Android, và sau khi sử dụng các ứng dụng trên thiết bị di động, người dùng có thể đạt được nhiều mục tiêu quan trọng.

1.5 Phương pháp thực hiện và hướng giải quyết

- Tìm hiểu, khảo sát các ứng dụng trên và di động Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 25

- Đặt tả yêu cầu xây dựng hệ thống

- Xây dựng quy trình hệ thống

- Phân tích và thiết kế các mô hình hệ thống: thiết kế cơ sở dữ liệu…

- Thiết kế sơ đồ chức năng

- Thiết kế và xây dựng giải thuật và đề ra các giải pháp lập trình

- Ngôn ngữ lập trình: Java

- Cơ sở dữ liệu(CSDL): SQLite

Các cơ sở lý thuyết cần nghiên cứu và nắm vững để thực hiện đề tài:

+ Lý thuyết về phân và thiết kế CSDL

+ Các công cụ: ngôn ngữ java, bộ công cụ phát triển java JDK…

- Về phần mềm, công cụ sử dụng

Sử dụng các phần mềm để phát triển hệ thông như:

+ Công cụ lập trình(IDE): Android Studio

Cơ sở của ứng dụng

2.1 Dữ liệu trong thực tế

Tất cả các lĩnh vực trong thực tế đều có thể được chuyển thành câu hỏi, bao gồm các dạng như phương án trả lời, điền vào chỗ trống hoặc tính toán.

2.2 Dữ liệu câu hỏi ứng dụng

Dựa trên dữ liệu thực tế, cần tạo bảng phân cấp câu hỏi với mức độ khó tăng dần từ 1 đến 15 Mỗi cấp độ phải có hàng trăm câu hỏi để đảm bảo không xảy ra trùng lặp trong các lần thi.

Đồ án tốt nghiệp đại học cần tập trung vào những câu hỏi thực tiễn, giúp sinh viên mở rộng kiến thức và nâng cao sự hiểu biết của bản thân Việc này không chỉ hỗ trợ trong việc học tập mà còn chuẩn bị cho sinh viên những kỹ năng cần thiết cho cuộc sống sau này.

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 26

2.3 Thiết kế cơ sở dữ liệu

Hệ thống sử dụng cơ sở dữ liệu(CSDL) là SQLite, gồm có bảng như sau:

- ID: Là khoá chính của cơ sở dữ liệu, mỗi id là duy nhất và cũng chính là tên gọi của câu hỏi

- Question: Cột chứa câu hỏi

- Case A,B,C,D : Cột chứa câu trả lời và tương ứng với với mỗi cột sẽ được đánh số 1,2,3,4 để ở cột TrueCase sẽ chứa phương án đúng

Tất cả câu hỏi sẽ được phân thành 15 bảng từ 1 đến 15 tương ứng với 15 cấp độ khó khác nhau của chương trình Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 27

Thiết kế bằng ảnh và các widget có sẵn của Android Studio

- Sử dụng Textview để hiển thị câu hỏi, câu trả lời, điểm cũng như các phần cần hiển thị chữ ra màn hình

- Sử dụng Button để thiết kế các nút chức năng, câu trả lời khi tương tác với chương trình

- Thiết kế Ảnh và các icon tương thích với các chức năng Đồ án tốt nghiệp đại học

Võ Đình Luân – Lớp 53K1 – Khoa CNTT 28

4 Các câu lệnh quan trọng của chương trình:

Câu lệnh SQL kết nối cơ sở dữ liệu và gán id tương ứng cho câu hỏi Trong câu lệnh Select, sử dụng lệnh random để tránh trùng lặp câu hỏi trong mỗi lần chơi Sau mỗi lần lấy câu hỏi, giá trị trong bảng sẽ tăng lên 1, giúp phân cấp độ khó của câu hỏi Phương thức public ArrayList getData() sẽ mở cơ sở dữ liệu để thực hiện các thao tác này.

ArrayList arrQuestions=new ArrayList(); for (int i=1;i

Ngày đăng: 01/08/2021, 10:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w