Xây dựng ứng dụng game android đoán lá bài đã chọn

102 224 0
Xây dựng ứng dụng game android đoán lá bài đã chọn

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN Hải Phòng 2016 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - XÂY DỰNG ỨNG DỤNG GAME ANDROID ĐOÁN BÀI ĐÃ CHỌN ĐỒ ÁN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ Thông tin BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -o0o - XÂY DỰNG ỨNG DỤNG GAME ANDROID ĐOÁN BÀI ĐÃ CHỌN ĐỒ ÁN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ Thông tin Sinh viên thực hiện: Đỗ Xuân Cƣờng Giáo viên hƣớng dẫn: Ths Phùng Anh Tuấn Mã số sinh viên: 120673 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc -o0o - NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP Sinh viên: Đỗ Xuân Cƣờng Mã số: 120673 Lớp: CT1201 Ngành: Công nghệ Thông tin Tên đề tài: Xây dựng ứng dụng game Android đoán chọn NHIỆM VỤ ĐỀ TÀI Nội dung yêu cầu cần giải nhiệm vụ đề tài tốt nghiệp a Nội dung: - Tìm hiểu hệ điều hành Android - Tìm hiểu môi trƣờng lập trình Android Studio - ứng dụng Android Studio để xây dựng ứng dụng game b Các yêu cầu cần giải quyết: - Nắm đƣợc số khái niệm hệ điều hành Android - Tải cài đặt môi trƣờng lập trình ứng dụng cho thiết bị di động Android Studio - Tìm hiểu số kỹ thuật lập trình game với tú lơ khơ - Sử dụng công cụ lập trình Android Studio, kỹ thuật lập trình xây dựng chƣơng trình thực nghiệm game đoán suy nghĩ ngƣời chơi - Đóng gói ứng dụng thành cài đặt cho phép cài đặt trực tiếp thiết bị di động Android Các số liệu cần thiết để thiết kế, tính toán - Số liệu giả lập Địa điểm thực tập Trƣờng Đại học Dân lập Hải Phòng CÁN BỘ HƢỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Ngƣời hƣớng dẫn thứ nhất: Họ tên: Phùng Anh Tuấn Học hàm, học vị: Thạc sỹ Cơ quan công tác: Trƣờng Đại học Dân lập Hải Phòng Nội dung hướng dẫn: - Tìm hiểu hệ điều hành Android - Tìm hiểu môi trƣờng lập trình Android Studio - Tìm hiểu số kỹ thuật lập trình game với tú lơ khơ - ứng dụng Android Studio để xây dựng chƣơng trình ứng dụng game đoán chọn suy nghĩ ngƣời chơi thiết bị động Android - Đóng gói chƣơng trình ứng dụng game đoán cho phép tải từ internet cài đặt trực tiếp thiết bị di động Ngƣời hƣớng dẫn thứ hai: Họ tên: ………………………………………………………………………………… Học hàm, học vị……………………………………………………………………………… Cơ quan công tác: ……………………………………………………………………………… Nội dung hƣớng dẫn: …………………… ……………………………………………………………………………………………………… Đề tài tốt nghiệp đƣợc giao ngày 03 tháng 10 năm 2016 Yêu cầu phải hoàn thành trƣớc ngày 30 tháng 12 năm 2016 Đã nhận nhiệm vụ: Đ.T.T.N Sinh viên Đã nhận nhiệm vụ: Đ.T.T.N Cán hƣớng dẫn Đ.T.T.N Hải Phòng, ngày tháng .năm 2016 Hiệu trƣởng GS.TS.NGƯT Trần Hữu Nghị CÁN BỘ HƢỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Tinh thần thái độ sinh viên trình làm đề tài tốt nghiệp: - Có khả làm việc độc lập - Cố gắng tìm hiểu tài liệu phục vụ cho nội dung đề tài tốt nghiệp - Thực hạn yêu cầu cán hƣớng dẫn Đánh giá chất lƣợng đề tài tốt nghiệp (so với nội dung yêu cầu đề nhiệm vụ đề tài tốt nghiệp) - Về lý thuyết: + Tổng hợp nắm đƣợc số khái niệm hệ điều hành Android + Nắm đƣợc bƣớc xây dựng cấu trúc chung ứng dụng android công cụ Android Studio + Nắm đƣợc số kỹ thuật lập trình game với tú lơ khơ cho thiết bị di động Android - Về thực nghiệm: + Cài đặt thành công môi trƣờng lập trình Android Studio + Xây dựng thành công chƣơng trình ứng dụng game đoán suy nghĩ chạy thiết bị di động Android + Đóng gói thành công chƣơng trình ứng game cho phép tải từ internet cài đặt trực tiếp thiết bị di động Android Cho điểm cán hƣớng dẫn: (Điểm ghi số chữ): 9.5 (chín điểm rƣỡi) Ngày .tháng .năm 2016 Cán hƣớng dẫn (Ký, ghi rõ họ tên) PHẦN NHẬN XÉT ĐÁNH GIÁ CỦA CÁN BỘ CHẤM PHẢN BIỆN ĐỀ TÀI TỐT NGHIỆP Đánh giá chất lƣợng đề tài tốt nghiệp (về mặt nhƣ sở lý luận, thuyết minh chƣơng trình, giá trị thực tế, ) Cho điểm cán phản biện ( Điểm ghi số chữ ) Ngày .tháng .năm 2016 Cán chấm phản biện ( Ký, ghi rõ họ tên ) Mục lục LỜI CẢM ƠN Chƣơng 1: 1.1 HỆ ĐIỀU HÀNH ANDROID Tổng quan 1.1.1 Quan hệ đối tác toàn cầu sở cài đặt lớn 1.1.2 Đổi nhanh chóng 1.1.3 Framework phát triển mạnh mẽ 1.1.4 Thị trƣờng mở để phân phối ứng dụng bạn 1.2 Lịch sử 1.3 Các tính 1.3.1 Giao diện 1.3.2 Ứng dụng 10 1.3.3 Quản lý nhớ 11 1.4 Phát triển 12 1.4.1 Linux 12 1.4.2 Lịch cập nhật 14 1.4.3 Cộng đồng mã nguồn mở 14 1.5 Bảo mật tính riêng tƣ 16 1.6 Giấy phép phát hành 17 1.7 Đón nhận 18 1.8 Các bảng biểu (Dashboards) 19 Chƣơng 2: 2.1 MÔI TRƢỜNG LẬP TRÌNH ANDROID STUDIO 23 Giới thiệu 23 2.1.1 Các phiên 23 2.1.2 Cấu trúc dự án 25 2.1.3 Giao diện ngƣời dùng 26 2.1.4 Hệ thống xây dựng Gradle 32 2.1.5 Debug 34 2.2 Cài đặt Android Studio 37 2.2.1 Yêu cầu hệ thống máy tính 37 2.2.2 Yêu cầu phần mềm: 37 2.2.3 Các bƣớc cài đặt Android Studio 38 2.2.4 Tạo quản lý thiết bị ảo (AVD) 42 2.3 Tạo giao diện (layout) chƣơng trình Android Studio 54 2.3.1 Viết XML 55 2.3.2 Load tài nguyên XML 56 2.3.3 Thuộc tính 56 2.3.4 Các layout phổ biến 59 2.3.5 Xây dựng layout với Adapter 60 2.4 Các điều khiển đầu vào (Input Controls) 63 2.4.1 Các điều khiển thông dụng 64 2.4.2 Button 64 2.4.3 Trƣờng văn (Text field) 67 2.5 Các kiện đầu vào (Input Events) 71 2.5.1 Bắt kiện (Event Listeners) 72 2.5.2 Xử lý kiện (Event Handlers) 74 2.5.3 Chế độ cảm ứng (Touch Mode) 75 Chƣơng 3: XÂY DỰNG CHƢƠNG TRÌNH THỰC NGHIỆM 76 3.1 Phát biểu toán 76 3.2 Kỹ thuật lập trình Game Đoán Bài 76 3.2.1 Tạo hình giao diện trò chơi 77 3.2.2 Tạo giao diện quân 78 3.2.3 Tạo lƣu trữ quân 80 3.2.4 Rút ngẫu nhiên quân khác 82 3.2.5 Kỹ thuật xoay úp thay quân 83 3.2.6 Chuyển đổi qua lại hình Activity 88 3.2.7 Kết chƣơng trình 89 KẾT LUẬN 93 TÀI LIỆU THAM KHẢO 94 public static class CardFrontFragment extends Fragment { ImageView imageView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_card_front ,container ,false); String rank,suit,image; rank = getArguments().getString("rank"); suit = getArguments().getString("suit"); image = getArguments().getString("image"); Card card = new Card(rank,suit,image,getActivity()); imageView = (ImageView) view.findViewById(R.id.imageFrmView_CardFrt); imageView.setImageResource(card.getResID()); return view; } } /** * fragmen đại diện cho mặt sau */ public static class CardBackFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_card_back, container, false); } } } 3.2.3Tạo lưu trữ quân Đầu tiên cần tạo lớp quân Card.java package com.example.dxc.gamerutbai; import android.content.Context; public class Card { private String rank; private String suit; private String image; private Context context; public Card(String rank, String suit, String image, Context context) { this.rank = rank; this.suit = suit; this.image = image; this.context = context; } public void setRank(String rank) { this.rank = rank; 80 } public String getRank() { return rank; } public void setSuit(String suit) { this.suit = suit; } public String getSuit() { return suit; } public void setImage(String image) { this.image = image; } public String getImage() { return image; } public Integer getResID() { return context.getResources() getIdentifier(getImage() ,"drawable" ,context.getPackageName()); } } Tiếp đến khai báo 54 quân vào chƣơng trình MainActivity.java public class MainActivity extends AppCompatActivity { // Khai báo biến @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Khai báo bắt kiện on-click } // Hàm lấy 54 quân private List getListData() { // Tạo mảng chứa quân List deck = new ArrayList(); //Khởi tạo quân Card aceClub = new Card("Ace","Club","ace_of_clubs",this); Card aceDiamond = new Card("Ace","Diamond","ace_of_diamonds",this); Card aceHeart = new Card("Ace","Heart","ace_of_hearts",this); Card aceSpade = new Card("Ace","Spade","ace_of_spades",this); /** * Thực tương tự cho 50 lại */ // Thêm quân vào mảng deck deck.add(aceClub); deck.add(aceDiamond); deck.add(aceHeart); 81 deck.add(aceSpade); /** * Thực tương tự cho 48 lại */ deck.add(blackJoker); deck.add(redJoker); return deck; } } 3.2.4Rút ngẫu nhiên quân khác Ý tƣởng là: - Bƣớc 1: chọn ngẫu nhiên quân 54 ( mảng deckClone) - Bƣớc 2: chuyển quân chọn ngẫu nhiên bƣớc vào mảng có phần tử (deckView) – mảng dùng để quân sau ngƣời chơi ấn nút “Play” - Bƣớc 3: tìm deckClone quân đồng hạng chất với quân vừa chuyển vào deckView bƣớc (ví dụ quân bƣớc rô, phải tìm đƣợc cơ) để chuyển vào mảng deckPrepare – mảng dùng để thay quân sau 5s final List deckClone = getListData(); final List deckView = new ArrayList(); final List deckPrepare = new ArrayList(); Random r = new Random(); int batky; for (int i=0;i > Rotate > Half-way through the rotation (see startOffset), set the alpha to > card_flip_left_out.xml Rotate > Half-way through the rotation (see startOffset), set the alpha to > card_flip_right_in.xml Before rotating, immediately set the alpha to > Rotate > Half-way through the rotation (see startOffset), set the alpha to > card_flip_right_out.xml Rotate > Half-way through the rotation (see startOffset), set the alpha to > Tạo hàm thực việc xoay file MainActivity.java private Handler mHandler = new Handler(); private void flipCard(Integer frmView, CardFrontFragment cardFrontFragment) { if (mShowingBack) { getFragmentManager().popBackStack(); return; } mShowingBack = true; getFragmentManager() beginTransaction() setCustomAnimations( R.animator.card_flip_right_in, R.animator.card_flip_right_out, R.animator.card_flip_left_in, R.animator.card_flip_left_out) replace(frmView, cardFrontFragment) addToBackStack(null) commit(); mHandler.post(new Runnable() { @Override public void run() { invalidateOptionsMenu(); } }); } 85  Thay quân Ý tƣởng là: - Ban đầu chƣơng trình quân với mặt sau lên giao diện - Khi ngƣời dùng click vào nút “Play” (đƣợc khai báo code dƣới btnRutBai) chƣơng trình rút ngẫu nhiên chuẩn bị quân nhƣ mục 3.2.4 nói - Trƣớc thực động tác lật bài, chƣơng trình thay phù hợp vào cardFrontFragment btnRutBai.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Trong chương trình lật úp // Không cho người dùng ấn vào nút Play btnRutBai.setEnabled(false); final List deckClone = getListData(); final List deckView = new ArrayList(); final List deckPrepare = new ArrayList(); Random r = new Random(); int batky; for (int i=0;i

Ngày đăng: 16/06/2017, 00:19

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan