CSDL SQLITE TRONG ANDROID

Một phần của tài liệu Tìm hiểu và lập trình trò chơi học từ vựng trên android (Trang 31)

2.7.1 Giới thiệu về CSDL SQLite

SQLite là một thư viện thực thi các chức năng của một database engine với đặc điểm giống như một phần mềm portable, không cần cài đặt, không cần cấu hình, không cần server, những điểm này rất khác so với việc sử dụng SQL Server hoặc Oracle, nhưng nó vẫn có transaction để đảm bảo tính toàn vẹn và an toàn trong quá trình thao tác dữ liệu. Có thể so sánh nó có một vài điểm giống với Access, nhưng nhìn chung vẫn có nhiều sự khác biệt.

Đặc điểm của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà có thể sử dụng ngay. Dữ liệu database cũng được lưu ở một file duy nhất. Không có khái niệm user, password hay quyền hạn trong SQLite database. SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa và nhỏ thì SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm .v.v... và là sự lựa chọn phù hợp cho những người bắt đầu học database.

2.7.2 Chi tiết về các đặc tính của SQLite

 Không cần phải thiết lập bất kỳ một cấu hình nào để có thể sử dụng SQLite.

 Các HQTCSDL như SQL Server, Oracle, Postgre... thường cần một server riêng để triển khai ứng dụng, cài đặt database engine, các máy khách sẽ kết nối đến server để xử lý dữ liệu một cách tập trung. Tuy nhiên SQLite không làm việc theo cách này mà ứng dụng sẽ truy xuất trực tiếp vào file database, các máy khách cũng có thể truy xuất một file database SQLite để trên một server thông qua cơ chế chia sẻ và bảo mật file của hệ điều hành,người dùng nào truy cập được vào thư mục và có quyền đọc - ghi thì sẽ có thể đọc ghi vào file database SQLite. Tuy nhiên sẽ có những hạn chếnhất định.

 Database do SQLite tạo ra là một file dữ liệu duy nhất.

 Có thể copy file database SQLite từ hệ thống này sang hệ thống khác, từ hệ thống 32 hay 64 bit, từ phiên bản SQLite này sang phiên bản khác mà không cần chuyển đổi , nâng cấp hệ điều hành, cấu trúc hệ thống hay phải làm lại file database.

 Cực kỳ nhỏ gọn và dễ sử dụng.

 Số lượng kiểu dữ liệu của SQlite rất ít, điều này là một đặc trưng của nó, bởi trong SQLite, kiểu dữ liệu là một thuộc tính của chính giá trị được lưu chứ không phải là thuộc tính của cột lưu giá trị đó. Tuy vậy, cũng có một vài ràng buộc, là với cột khóa chính kiểu integer thì phải lưu giá trị phải chính xác là kiểu int, ngoài ra SQLite cũng cố gắng chuyển đổi kiểu của giá trị sang kiểu của cột lưu nó khi có thể. Mục đích của việc thiết kế kiểu dữ liệu như vậy nhằm làm cho nó tin cậy và đơn giản hóa việc sử dụng, và cũng để dễ tương thích hơn khi sử dụng với các ngôn ngữ như Tcl hoặc Python.

 Dữ liệu lưu bao nhiêu thì hệ thống cấp phát cho bấy nhiêu không gian bộ nhớ cho từng dòng dữ liệu, không cấp phát thừa hoặc thiếu không gian lưu trữ cho dữ liệu, nhờ đó mà file database trở nên nhỏ gọn và tốc độ xử lý dữ liệu cũng nhanh hơn.

32

 SQLite thích hợp sử dụng trong các trường hợp như:

o Ứng dụng sử dụng dạng flat file để lưu trữ dữ liệu: như từ điển, các ứng dụng nhỏ, lưu cấu hình ứng dụng... Nó mạnh mẽ hơn nhiều kỹ thuật lưu trữ file thông thường..

o Sử dụng trong các thiết bị nhúng: smart phone, PDA và các thiết bị di động rất phù hợp với SQLite.

o Các website có khoảng 100 nghìn lượt xem/ ngày, mặc dù về mặt lý thuyết thì SQLite có thể đáp ứng gấp 10 lần con số này.

o Là thay thế hoàn hảo cho database dạng file: nhiều ứng dụng sử dụng fopen(), fread(), fwrite() để lưu trữ dữ liệu, SQLite sẽ thay thế hoàn toàn kỹ thuật đó bằng kỹ thuật hiện đại hơn, dễ dùng và tin cậy hơn.

o Sử dụng làm database tạm để lưu trữ dữ liệu lấy về từ các database trên SQL server, Oracle...

o Làm database demo cho các ứng dụng lớn, dùng để làm mô hình khái niệm cho ứng dụng.

o Dùng cho giảng dạy: để giảng dạy cho những người mới làm quen với ngôn ngữ truy vấn SQL.

33

2.8 KIẾN THỨC VỀ PHP,MYSQL VÀ JSON. 2.8.1 PHP 2.8.1 PHP

Giới thiệu:

PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.

Những ưu điểm của PHP

 Được sử dụng rộng rãi, miễn phí, cấu hình nhanh chóng, nhỏ gọn.

 Có khả năng đạt hiệu suất cao trong làm việc.

 Dễ sử dụng.

 Là một dự án mã nguồn mở. Ngôn ngữ này được phát triển bởi một đội ngũ những người tình nguyện trên toàn cầu.

Yêu cầu của ứng dụng là phải có một web service chạy bằng ngôn ngữ PHP nên những kiến thức về lập trình web bằng PHP là rất quan trọng để ứng dụng và web service có thể giao tiếp tốt với nhau.

2.8.2 MySQL

Giới thiệu:

MySQLlà hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.

MySQLlà một trong những ví dụ rất cơ bản về Hệ Quản trị cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).

Những ưu điểm của MySQL

 MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng.

 có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.

 Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet.

 MySQL miễn phí hoàn toàn.

 Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,...

 MySQLđược sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,...

2.8.3 Json

Giới thiệu

JavaScript Object Notation(thường được viết tắt là JSON) là một kiểu dữ liệu trongJavaScript. Kiểu dữ liệu này bao gồm chủ yếu là text. Về cấu trúc, nó mô tả một vật thể bằng cách gói những vật thể con trong vật thể lớn hơn trong dấu ngoặc nhọn({}). JSON là một kiểu dữ liệu trung gian, chủ yếu được dùng để vận chuyển thông tin giữa các thành phần của một chương trình.

34

Json có 5 kiểu dữ liệu chính:

Number: Bao gồm kiểu số nguyên và số thực.

String : Kiểu chuỗi,nội dung bao bởi dấu cặp dấu nháy kép ,những ký tự đặt biệt được escape bởi dấu “\”. Json không sử dụng dấu nháy đơn để bọc chuỗi như JavaScript

Boolean:Kiểu luận lý bao gồm true và false.

Array:Kiểu mảng,gồm các phần tử cách nhau bởi dấu phẩy “,” và được bao bọc bởi cặp dấu ngoặc vuông “[“ và ”]”.

Object:Kiểu đối tượng bao gồm những cặp giá trị đi cùng nhau,mỗi cặp được phân cách bởi dấu phẩy “,”,đối tượng được bao bọc bởi cặp dấu ngoặc đơn “{“ và ”}”.Cặp giá trị bao gồm tên và giá trị được phân cách bởi dấu hai chấm “:”.

Null:Giá trị null.

Ưu điểm

 JSON nhỏ hơn so với XML, và nhanh hơn và dễ dàng hơn để phân tích.

 Json có thể đọc và hiểu được.

 Là kiểu dữ liệu trên nền JavaScript nên dễ tiếp cận.

 Dữ liệu truyền tải ngắn gọn hơn so với những định dạng dữ liệu khác như XML,HTML...

 Dễ dàng chuyển đổi dữ liệu từ dạng chuỗi sang kiểu dữ liệu có thể sử dụng được(Object,Array,number..).

35

CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 3.1 PHÂN TÍCH TRÒ CHƠI HỌC TỪ VỰNG

3.1.1 Giới thiệu

Học từ vựng là một trò chơi đơn giản về giao diện cũng như cách chơi,trò chơi giúp người dùng vừa có thể giải trí, vừa thể thể học thêm được một số từ vựng.

Trò chơi có khoảng 1000 từ vựng theo nhiều chủ đề khác nhau như:đồ vật, nghề nghiệp, động vật, thực vật,.v.v...

Trò chơi yêu cầu người dùng phải có kết nối internet để tải hình ảnh minh hoạ cho từ vựng.Ngoài ra người dùng cũng có thể chơi trò chơi mà không cần kết nối internet, nhưng lúc này sẽ không có ảnh minh hoạ cho từ vựng nữa.

Người dùng cũng có thể đăng nhập để trò chơi sao lưu CSDL và điểm của người dùng,và điều này là không bắt buộc, nếu họ không đăng nhập họ vẫn chơi được bình thường. Trò chơi có nhạc nền khi chơi cũng như âm thanh cho các thao tác của người dùng khi chơi trò chơi.

Trò chơi cũng có giới hạn về thời gian cũng như số lần nhập sai đáp án của người dùng. Trò chơi cung cấp nhiều kiểu nút khác nhau,số lượng kiểu nút của người dùng tương đương với số điểm mà học đạt được.

Cho phép người dùng xem lại những từ đã học được.

Đối với những người dùng muốn học một số từ nhất định mà họ muốn, ứng dụng cũng cung cấp tính năng tự học cho người dùng.

3.1.2 Luật chơi, cách chơi và cách tính điểm:

Trong mỗi màn chơi, trò chơi sẽ tạo ra một từ vựng tiếng anh tương ứng với từ với chủ đề từ vựng mà người dùng chọn.Từ vựng này được chia thành nhiều chữ cái nằm liền nhau trong 35 ô tròn và nhiệm vụ của người dùng là tìm ra từng chữ cái đúng theo thứ tự của chữ cái của từ vựng trong khoảng thời gian qui định là 30 giây.

Từ vựng không được hiển thị cho người dùng thấy mà thay và đó là nghĩa tiếng Việt và ảnh minh hoạ của từ vựng đó.Người dùng dựa vào đó để tìm từ vựng.

Nếu sau 30 giây mà người dùng không tìm ra được từ vựng thì trò chơi sẽ kết thúc và thông báo điểm của người dùng, người dùng có thể chọn chơi lại hoặc vào bảng xếp hạng để xem điểm và thứ hạng của mình.

Ngoài ra trong mỗi lần nhấn sai ký tự người dùng sẽ bị trừ 1 giây vào thời gian còn lại. Mỗi lần hoàn thành đúng từ vựng của trò chơi người dùng sẽ được 10 điểm cộng với thời gian còn lại của người dùng.Trả lời đúng càng nhanh thì điểm càng cao.Số điểm này được cộng dồn lại và hiển thị cho người dùng thấy sau đó trò chơi sẽ tạo tiếp từ vựng cho người dùng chơi tiếp.

Sau khi kết thúc trò chơi tổng điểm của người dùng sẽ được lưu lại và số điểm này sẽ hiển thị cho lần chơi tiếp theo.

3.1.3 Lưu trữ thông tin người dùng.

Thông tin của người dùng sẽ được lưu trữ ở CSDL SQLite của ứng dụng và CSDL MySql trên một web service có tên miền là http://nam01678.5gbfree.com/HTV/ Đây cũng là nơi quản lý các phương thức truy vấn đến CSDL MySql.

Để có thể sao lưu dữ liệu trên CSDL MySql người dùng bắt buộc phải đăng ký một tài khoản trong ứng dụng.

36

3.2 THIẾT KẾ TRÒ CHƠI Sơ đồ use case: Sơ đồ use case:

37

38

Sau khi khởi động trò chơi người dùng có thể thực hiện các chức năng sau:

39

Đăng Nhập:Để có thể sao lưu CSDL người dùng cần phải đăng nhập vào ứng dụng với email và mật khẩu đã đăng ký

40

Đăng ký tài khoản:Ứng dụng cho phép người dùng đăng ký tài khoản để đăng nhập vào ứng dụng.

41

Chọn chủ đề:Để bắt đầu trò chơi người dùng cần chọn chủ đề mà mình muốn chơi để trò chơi có thể chọn lọc từ vựng cho phù hợp.

42

Giao diện chính trong trò chơi:

Bật/Tắt âm thanh:Khi chơi thì mặc định sẽ có nhạc nền,để tắt hoặc mở nhạc nền người dùng có thể chọn nút âm thanh trên giao diện trò chơi

Người dùng tạo ra đáp án bằng cách chọn các chữ cái trên màn hình nếu đúng nó sẽ hiện màu xanh lá, nếu sai thì màu đỏ.

43

Giao diện bảng xếp hạng trong trò chơi:Bảng xếp hạng chia làm hai loại gồm bảng xếp hạng thế giới và bảng xếp hạng bạn bè

44

45

3.3 CÁC THUẬT TOÁN TRONG TRÒ CHƠI

Các thuật toán trong trò chơi bao gồm 2 phần: Phần tạo câu hỏi và phần tiếp nhận câu trả lời.

3.3.1 Tạo câu hỏi trong trò chơi

Đầu tiên trò chơi sẽ lấy thông tin từ vựng từ CSDL SQLite dựa vào chủ đề mà người dùng chọn, sau đó sẽ hiển thị nghĩa tiếng việt và tải ảnh minh hoạ của từ vựng, lúc này trò chơi bắt đầu tạo câu hỏi từ 35 nút nằm phía dưới

Hình 3.3.1.1 Các nút sẽ được gán chứ cái

Đầu tiên chọn ngẫu nhiên 1 trong số 35 ô tròn và gán chữ cái đầu tiên của từ khoá cho ô này.

Lưu toạ độ của ô này vào một mảng số nguyên với giá trị là một số nguyên có 2 chữ số, chữ số hàng chục là hàng, chữ số hàng đơn vị là cột.Mảng này dùng để lưu đáp án của câu trả lời nhầm phục vụ việc hiện đáp án ở cuối trò chơi.

Chọn ngẫu nhiên 1 ô liền kề với ô vừa chọn và gán chữ cái tiếp theo của từ khoá cho ô này và xem ô này như ô cuối cùng được gán.

Tiếp tục lưu toạ độ ô này như trên.

Cứ tiếp tục tìm ngẫu nhiên ô liền kề với ô cuối cùng được gán (ngoại trừ các ô đã gán) và gán chữ cái tiếp theo cho đến chữ cái cuối cùng của từ khoá.

46

Hình 3.3.1.2 Từ khoá được tạo là HOUSE

Tiếp theo chỉ cần chạy một vòng lặp để điền các ô trống còn lại bằng một chữ cái ngẫu nhiên.Lúc này từ vựng sẽ nằm ẩn bên trong 35 ô tròn.

47

Hình 3.3.1.4 Sơ đồ thuật toán tạo câu hỏi

3.3.2 Tiếp nhận câu trả lời

Trò chơi nhận câu trả lời từ người dùng bằng cách nhấn vào các nút và tạo thành một từ bằng cách ghép các chữ cái mà người dùng đã nhấn cho đến khi hoàn chỉnh và đúng hoàn toàn với từ vựng mà trò chơi đưa ra.

Nếu chữ cái mà người chơi nhấn đúng với chữ cái tiếp theo của từ vựng ô tròn đó sẽ được tô màu xanh lá đồng thời các ô liền kề cũng được tô màu xanh dương các ô còn lại sẽ được tô màu xám (ngoại trừ các ô đã tô màu xanh lá) và lúc này chỉ có các ô màu xanh dương mới nhấn được nhầm giúp người dùng có cái nhìn trực quan hơn để tìm những chữ cái tiếp theo

48

Hình 3.3.2.1 Khi người dùng chọn đúng chữ cái

Khi chọn sai chữ cái nó sẽ được tô màu đỏ, trừ 1 giây của người dùng, các ô còn lại vẫn giữ nguyên màu sắc.

49

Hình 3.3.2.2 Khi người dùng chọn sai chữ cái Người dùng cứ tiếp tục tìm cho đến khi tìm ra từ vựng hoàn chỉnh

50

Hình 3.3.2.3 Sơ đồ tiếp nhận câu trả lời từ người dùng

Một phần của tài liệu Tìm hiểu và lập trình trò chơi học từ vựng trên android (Trang 31)