Trang chủLập trìnhSource CodeLập trình Game 2048, Ghép hình, Snake trong một ứng dụng Android

Lập trình Game 2048, Ghép hình, Snake trong một ứng dụng Android

DANH SÁCH BÀI VIẾT
Lập trình ứng dụng GamePlay(Trò chơi giải trí offline) trên Android Studio
Lập trình game 2048 trên Android Studio – Mã nguồn game 2048
Lập trình Ứng dụng Máy tính bỏ túi trên Android Studio
Xây dựng game Freaking Math trên Android – Lập trình android

Ứng dụng là một tiện ích trò chơi giải trí bao gồm 5 trò chơi đơn giản là 2048, rắn săn mồi, Freaking math, Ghép hình, Siêu tính nhẩm…..và mình sẽ tạm gọi tên ứng dụng này là GamePlay.
Trong ứng dụng người chơi có thể lựa chọn trò chơi mà mình muốn chơi, có thể thay đổi avatar, thay đổi tên người chơi, đặt lại trò chơi, cài đặt bật tắt âm thanh, và cũng có thể lên cấp độ trong trò chơi.

Bài viết này mình sẽ chia sẻ mã nguồn của ứng dụng này, bạn có nhu cầu thăm khảo code thì đọc bài viết nhé.

Xây dựng ứng dụng GamePlay

Dưới đây là sơ đồ chi tiết các chức năng của ứng dụng.

Lập trình Game 2048, Ghép hình, Snake trong một ứng dụng Android

Theo như bạn nhìn vào sơ đồ, có thể thấy ứng dụng sẽ gồm 3 nhánh chính(3 màn hình) là nhánh Trò chơi, nhánh Mở rộng, và nhánh Tác giả.

Nhánh sơ đồ “Người dùng”

*) Hình ảnh đại diện

– Để thay đổi avatar người dùng click vào ảnh avatar sau đó một danh sách các hình ảnh hiện lên, người dùng nhấn vào hình ảnh muốn lựa chọn hình ảnh đại diện sẽ được thay đổi.

 – Hình ảnh đại diện mặc định bao gồm 12 ảnh, 6 ảnh nam và 6 ảnh nữ.

*) Tên người dùng

– Quy trình thay đổi tên người dùng

Sơ đồ Quy trình thay đổi tên người dùng
Quy trình thay đổi tên người dùng
  • Mô tả:
    + Khi người dùng muốn thay đổi tên hiển thị, người dùng tiến hành click vào nickname thì 1 dialog thay đổi tên hiện ra. Người dùng nhập tên muốn thay đổi và ấn nút “Thay đổi” hệ thống kiểm tra nếu tên hợp thì tên hiển thị sẽ được thay đổi, ngược lại yêu cầu nhập tên mới.

*) Cấp độ người chơi

 a, Bảng số exp cần thiết để lên cấp độ

Cấp độSố exp cần
11
27
319
437
561
691
………………….

  b, Cách tính số exp cần thiết để lên mỗi cấp độ: cấp độ càng cao thì số kinh ngiệm cần thiết để lên cấp độ mới sẽ càng nhiều, cụ thể ở đây sẽ được tính theo công thức sau:

exp = (x^3) – ((x-1)^3)

trong đó: epx là số lượng kinh nghiệm cần thiết để lên cấp độ x

c, Tích lũy exp: Exp sẽ được tích lũy sau mỗi vòng kết thúc của các trò chơi cụ thể như sau:

  + Game 2048: sau khi kết thúc trò chơi người chơi sẽ nhận được số exp là 5, trong quá trình chơi nếu ghép được ô 256 được 1 exp, ô 512 được 3 exp, ô 1024 được 7, ô 2048 được 15……với các ô ghép được lớn hơn 2048 vẫn được tính theo quy luật là số exp đặt được của ô đó bằng số exp của trọng số liền trước nó nhân 2 và cộng thêm 1.

  + Game Rắn săn mồi: sau mỗi ván kết thúc trò chơi lượng exp nhận là 1, trong quá trình chơi cứ đặt được 5 điểm tiếp theo sẽ được cộng thêm 1 exp;

  + Game Freaking math: cứ mỗi 5 câu hỏi vượt qua sẽ được 1 điểm exp, kết thúc trò chơi được 1 điểm exp.
  + Game Siêu tính nhẩm: kết thúc trò chơi được 1 điểm exp, số exp đặt được trong quá trình chơi sẽ tính theo số lượng câu hỏi của cả 2 người chơi cộng lại và chia cho 10.

  + Game ghép hình: kết thúc trò chơi được 1 điểm exp, hoàn thành trò chơi trên 500s sẽ kg được cộng exp, dưới 500s nếu cứ ít đi 50s sẽ được thêm 1 điểm exp cụ thể < 500s – 1exp, < 450s – 2exp, < 400s – 3exp……

*) Đặt lại trò chơi

a, Quy trình đặt lại dữ liệu trò chơi

Quy trình đặt lại dữ liệu trò chơi

b, Mô tả

  • Người dùng click vào nút đặt lại, bảng Dialog xác nhận đặt lại hiện lên, người dùng chọn không đồng ý nếu hủy bỏ đặt lại, ngược lại chọn đồng ý nếu người dùng muốn đặt lại các dữ liệu trò chơi. Toàn bộ các dữ liệu lưu điểm hay lịch sử chơi của tất cả trò chơi trong cơ sở dữ liệu sẽ đặt lại như ban đầu.

*) Âm thanh trò chơi

a, Quy trình cài đặt âm thanh trò chơi

Lập trình android

b, Mô tả: Khi người chơi muốn bật âm thanh người chơi tiến hành kéo thanh gạt sang phải, và ngược lại kéo thanh gặt sang trái để tắt âm thanh.

 Nhánh sơ đồ “Mở rộng”

Lập trình Ứng dụng Máy tính bỏ túi trên Android Studio
Xây dựng game Freaking Math trên Android – Lập trình android
Lập trình tỏ tình người yêu trên Graphics C/C++ – I LOVE YOU
Lập trình Đồng Hồ Thời Gian & Bấm Giờ Trên Graphics C/C++ 

 *) Tác giả

  – Người dùng click vào tác giả, bảng Dialog thông tin của tác giả hiện lên.

Nhánh sơ đồ “Trò chơi”

*) Game 2048

Trò chơi chỉ bao gồm 1 bảng 4 x 4, trong trò chơi  người chơi phải sử dụng các phím lên, xuống, trái, phải, để các ô có giá trị giống nhau kề nhau cộng lại, 2 ô sẽ gộp thành 1 ô có giá trị gấp đôi và theo đó sẽ suất hiện một ô mới có giá trị là 2 với tỉ lệ 90% và ô 4 với tỉ lệ suất hiện là 10% .Cứ tiếp tục như thế cho đến khi ghép được ô 2048 điểm để chiến thắng, sau khi chiến thắng người chơi vẫn có thể tiếp tục trò chơi đê nâng điểm số. Ngược lại, nếu trên bảng số không còn ô trống nào và không còn ô nào có thể gộp lại với nhau, người chơi thua cuộc.Khi đó, sẽ suất hiện 1 bảng Dialog thông báo thành tích người chơi. Điểm số được tang theo giá trị của ô vừa được gộp.

*) Mô tả thiết kế thuật toán

  • Tìm ô trống
    • Lấy ngẫu nhiên 2 số có thể trùng nhau từ 1 đến 4.
    • Coi số thứ nhất là số thứ tự cột, số thứ 2 là số thự tự hàng, kiểm tra xem ô đó có trống hay không
    • Nếu trống chuyển qua bước 2, ngược lại tiếp tục bước 1
    • Sau khi duyệt hết tất cả các ô không tìm được ô trống chuyển qua bước 3
  • Điền số
    • Lấy ngẫu nhiên 1 số trong khoảng từ 0 đến 9.
    • Nếu số đó là số 9 thì ta điền số 4 vào ô, các số còn lại ta điền số 2 vào ô (Tức tỉ lệ suất hiện ô số 4 sẽ là 10% tỉ lệ suất hiện ô số 2 sẽ là 90%)

=> Sau mỗi lần người chơi di chuyển các ô, chương trình sẽ lặp lại bước 1 và bước 2 ở trên, đồng thời chạy thêm 1 bước kiểm tra ngay sau đó:

  • Kiểm tra
    • Kiểm tra xem còn ô trống nào trong trò chơi không.
    • Nếu còn tiếp tục lượt chơi, nếu không tiếp tục kiểm tra xem có tồn tại 2 ô cạnh nhau  cố cùng 1 giá trị: nếu có, tiếp tục lượt chơi

=> Lượt chơi sẽ tiếp tục cho đến khi không còn ô trống và không còn 2 ô cạnh nhau có cùng 1 số. Khi đó, trò chơi kết thúc.

*) Sơ đồ khối

Lập trình android

*) Freaking math

Trò chơi bao gồm 1 màn hình hiển thị phép tính, và 2 nút phím bấm Đúng hoặc sai. Người chơi có thời gian là 1.5 giây để chọn đáp án. Chương trình sinh ngẫu nhiên phép tính đúng hoặc sai dựa trên hàm Random, chương trình sẽ tự tính điểm sau mỗi câu mà người chơi vượt qua và số câu là không giới hạn. Trò chơi sẽ kết thúc khi người chơi chọn đáp án khác so với đáp án chương trình.

*) Mô tả thiết kế thuật toán

  • Sinh phép tính
    • Chương trình sinh ngẫu nhiên 2 số a, b
    • Lấy ngẫu nhiên 2 số 0 và 1
    • Nếu số 0 chương trình sinh số c là kết quả đúng của phép tính a, b
    • Nếu số 1 chương trình sinh số c là kết quả sai giữa phép tính a, b
  • Kiểm tra đáp án
    • Kiểm tra phép toán ở bước 1 là phép toán đúng hoặc sai
    • Phép toán đúng người chơi chọn nút sai trò chơi kết thúc, ngược lại trò chơi tiếp tục.
    • Phép toán sai người chơi chọn nút đúng trò chơi kết thúc, ngược lại trò chơi tiếp tục.

Số lượng câu sẽ được sinh vô hạn cho đến khi người chơi chọn sai đáp án thì trò chơi kết thúc.

*)Sơ đồ khối

Lập trình game Fraking math

*) Siêu tính nhẩm

Trò chơi bao gồm 2 màn hình hiển thị phép tính đối xứng nhau, mỗi màn hình có 4 nút tương ứng 4 đáp án có thể lựa chọn. Người chơi có thời gian là 4 giây để chọn đáp án. Chương trình sinh ngẫu nhiên phép tính đúng hoặc sai dựa trên hàm Random, chương trình sẽ tự tính điểm sau mỗi câu mà người chơi vượt qua và số câu là không giới hạn. nếu 1 trong 2 người chơi lựa chọn đáp án sai, người chơi đó sẽ bị dừng lượt chơi. Trò chơi kết thúc khi cả 2 người chơi đều lựa chọn đáp án sai.

*) Mô tả thiết kế thuật toán

  • Sinh phép tính
    • Chương trình sinh ngẫu nhiên 2 số a, b
    • Chương trình sinh ngẫu nhiên 3 đáp sai từ 2 số a, b
    • Chương trình sinh 1 đáp án đúng từ 2 số a, b

Hàm sinh phép toán sẽ được gọi cho từng người chơi mỗi khi người chơi vượt qua câu hỏi.

  • Kiểm tra đáp án
    • Kiểm tra đáp án đúng là đáp án a, b, c, hoặc d
    • Đáp án đúng người chơi đưa ra khác chương trình trò chơi kết thúc, ngược lại trò chơi tiếp tục.

*)Sơ đồ khối

Sơ đồ trò chơi

Lập trình android

Sơ đồ sinh câu hỏi trong trò chơi

Lập trình android

Sơ đồ kiểm tra đáp án trò chơi

Lập trình trên adndroid studio

*) Ghép hình

Một màn hình hình vuông bao gồm 8 tấm ảnh nhỏ được cắt từ ảnh chính, và 1 ô trống dùng để đẩy và di chuyển các hình ảnh, người chơi sẽ thực hiện việc ghép các tấm hình nhỏ với nhau để tạo ra hình đúng bằng cách sử dụng các phím hướng lên, xuống,

trái, phải…

*) Mô tả thiết kế thuật toán

1.Kiểm tra xem từ ô ban đầu tới ô đích có đường đi hay không?

2. Nếu có thì di chuyển ô ghép , nếu không thì không cho phép di chuyển ô ghép. 3. Nếu ô ghép được di chuyển thì kiểm tra xem bức hình đã được ghép hoàn chỉnh chưa?

4. Nếu hoàn chỉnh rồi thì kết thúc trò chơi. Nếu bức hình chưa hoàn chỉnh thì tiếp tục trò chơi

*)Sơ đồ khối

Lập trình android
Lập trình Ứng dụng Máy tính bỏ túi trên Android Studio
Xây dựng game Freaking Math trên Android – Lập trình android
Lập trình tỏ tình người yêu trên Graphics C/C++ – I LOVE YOU
Lập trình Đồng Hồ Thời Gian & Bấm Giờ Trên Graphics C/C++ 

*) Rắn Săn mồi

Trò chơi chỉ bao gồm một màn hình khung vuông, trong trò chơi  người chơi phải sử dụng các phím lên, xuống, trái, phải, để điều khiển con rắn theo các hướng sao cho con rắn có thể đi tới mồi. Mồi sẽ được sinh ngẫu nhiên tại vị trí bất kì không trùng vào con rắn trên khung hình vuông mỗi khi con rắn ăn và khi đó chiều dài con rắn sẽ được tăng thêm 1 đốt, nếu con rắn chạm vào tường  con rắn sẽ đi xuyên từ hướng ngược lại. Trò chơi chỉ kết thúc khi đầu rắn chạm vào thân rắn.

+) Mô tả thiết kế thuật toán

  • Con rắn di chuyển (*1)
    1. Gọi ví trí ngang của đầu rắn là x, vị trí dọc của đầu rắn là y
    2. Y tăng lên 1 khi con rắn đi lên
    3. Y giảm đi 1 khi con rắn đi xuống
    4. X tăng lên 1 khi con rắn đi sang phải
    5. X giảm đi 1 khi con rắn đi sang trái
    6. Gía trị đốt sau sẽ bằng giá trị đốt trước khi đó thân rắn sẽ di chuyển theo đầu rắn

  Khi con răn di chuyển sẽ đồng thời kiểm tra (*4).

  • Kiểm tra ô trống để sinh mồi (*2)
    1. Lấy ngẫu nhiên 2 số (có thể trùng nhau)(bước 1).
      • Số thứ nhất từ 0 đến kích thước chia khung theo chiều ngang(Width
      • Số thứ hai từ 0 đến kích thước chia khung theo chiều dọc(Height)
    2. Coi số thứ nhất là số thứ tự cột, số thứ 2 là số thự tự hàng, kiểm tra tại ví trí có tồn tại đốt của con rắn hay không(Bước 2)
      • Nếu trống chuyển qua (*3), ngược lại nếu trùng đốt con rắn tiếp tục bước 1
      • Sau khi duyệt hết tất cả các ô không tìm được ô trống kết thúc trò chơi(Tức là win game rồi, con rắn đã đầy cả màn hình).
  • Sinh mồi (*3)
    • Tại tọa độ lấy được từ (*2) sinh mồi mới.
  • Kiểm tra (*4)
    • Kiểm tra đầu con rắn có trùng với vị trí mồi
    •  Nếu có thực hiện bước 2 và 3
    • Kiểm tra xem còn ô trống nào trong trò chơi không.
    • Nếu còn tiếp tục lượt chơi, nếu không thông báo trò chơi chiến thắng
    • Kiểm tra đầu rắn có bị trùng đốt rắn không
    • Nếu có trò chơi kết thúc, nếu không trò chơi tiếp tục.

*)Sơ đồ khối

Lập trình android


Một số hình ảnh ứng dụng

Giao diện màn hình chính

Giao diện màn hình chính gamepalay

Giao diện màn hình người dùng

Giao diện màn hình người dùng

Giao diện màn hình thay đổi avatar

Giao diện màn hình thay đổi avatar

Giao diện màn hình game 2048

Giao diện màn hình game 2048

Giao diện màn hình game Freaking Math

Giao diện màn hình game Freaking Math

Giao diện màn hình game Siêu tính nhẩm

Giao diện màn hình game Siêu tính nhẩm
Giao diện bắt đầu trò chơi
Giao diện màn hình game Siêu tính nhẩm
Giao diện trò chơi

Giao diện màn hình ghép hình

Giao diện màn hình ghép hình

Giao diện màn hình Rắn săn mồi

Giao diện màn hình Rắn săn mồi

Mã nguồn ứng dụng

Để tải xuống mã nguồn ứng dụng hoặc file APK tải theo liên kết bên dưới.

Link mã nguồn: https://tuicocach.com/shortlink/?c=HF65fGf3

Link file apk: https://tuicocach.com/shortlink/?c=hf76gGH7

XÊM THÊM
Lập trình Ứng dụng Máy tính bỏ túi trên Android Studio
Xây dựng game Freaking Math trên Android – Lập trình android
Lập trình tỏ tình người yêu trên Graphics C/C++ – I LOVE YOU
Lập trình Đồng Hồ Thời Gian & Bấm Giờ Trên Graphics C/C++ 
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x