2012-08-30 19 views
5

Đây không phải là một câu hỏi kỹ thuật vì nó là một câu hỏi kiểu. Tôi đang làm một khái quát về peg solitaire cho Android, và sẽ có các cấp độ khác nhau mà bạn có thể chơi. Mỗi người trong số họ sẽ có các cấu hình khởi động khác nhau cho bảng, các bộ di chuyển khác nhau mà bạn có thể làm, v.v. Ngay bây giờ tôi đã lập trình nó với một mức cơ bản duy nhất và tất cả các biến đó được khởi tạo theo cách ban đầu.Làm cách nào để lưu trữ các cấp trong trò chơi Android?

Tôi có thêm tệp văn bản có tất cả các loại cấp khác nhau và lập trình nó để đọc nó từ tệp văn bản không? Tôi có thêm một lớp Cấp độ với tất cả thông tin này từ mỗi cấp độ và tạo một số đối tượng Cấp khi nó khởi tạo không? Tôi có tạo một lớp Cấp độ, nhưng khởi tạo nó bằng cách đọc các cấp độ từ một tệp văn bản?

Tôi chắc chắn rằng tất cả các phương pháp sẽ hoạt động, nhưng có cách nào tiêu chuẩn để làm điều đó không? Tôi chưa bao giờ lập trình bất cứ điều gì như thế trước đây.

+1

Tôi sẽ làm điều đó bằng XML, sau đó tải nó vào một lớp 'Cấp bậc'. Nhưng có lẽ đó chỉ là tôi. – Eric

+0

Phân tích cú pháp XML thực sự chậm trên Android. –

+0

Tránh XML, tôi không biết Android nhưng nên có một cách khác để tuần tự hóa cấp lớp của bạn, bỏ thêm dữ liệu thô. Bạn không nói về nó nhưng bạn cần một trình soạn thảo cấp thậm chí là một trình đơn giản. Một khi bạn có nó, lưu trữ dữ liệu và truy xuất không khó. – bokan

Trả lời

4

Có thực sự không phải là một cách tiêu chuẩn để làm những gì bạn muốn, nó thực sự phụ thuộc vào sự phức tạp của dữ liệu bạn cần lưu trữ để làm khởi tạo mỗi cấp. Dữ liệu này có thay đổi hay không? Nó có ý nghĩa để có nó tổ chức đúng cách và tách ra khỏi logic mã? Đây là những câu hỏi bạn cần để trả lời chính mình vì đó là trò chơi của bạn và chúng tôi không biết tất cả các chi tiết.

Cho rằng, bạn quyết định xem bạn có nên lưu trữ dữ liệu đó trong tệp XML, tệp TXT hoặc một thứ gì khác không. Có thực sự không phải là một câu trả lời đúng. Nhưng bạn nên (IMO) luôn luôn có một số loại lớp học Level, đó là đúng cách để đi trong một bối cảnh OOP. Các nhà xây dựng có thể có các tham số cần thiết để xây dựng mức độ từ dữ liệu XML/TXT/bất cứ điều gì. Nó cũng có thể có tất cả các thông số mức để bạn có thể khởi tạo mọi thứ theo mã, nếu bạn cần vì một lý do nào đó. Và, tất nhiên, đừng quên các phương thức getter/setter cho tất cả các thuộc tính mức đó.

Một điều tôi nghĩ rằng bạn không nên làm là "tạo một số đối tượng cấp khi khởi tạo". Bạn nên tách logic trò chơi của mình khỏi dữ liệu, bạn không nên trộn lẫn theo cách đó.

Có lẽ không phải là câu trả lời bạn đang tìm kiếm, nhưng điều đó phụ thuộc vào bạn.

+0

Dữ liệu tĩnh. Nếu tôi không làm cho các đối tượng khi nó khởi tạo, khi nào tôi tạo ra chúng? Bạn có nghĩa là tôi không nên có tất cả các thông số mức độ được viết một cách rõ ràng trong khởi tạo? Tại sao tôi cần các phương thức setter? Tôi sẽ không chỉ sử dụng constructor? – DanielLC

+0

Ý tôi là những gì bạn cho là có ý nghĩa;) Bạn có thể làm điều đó vì mục đích gỡ lỗi, điều đó tốt. Nhưng đối với mã cuối cùng của bạn, bạn nên tách logic trò chơi của mình khỏi dữ liệu. Nó chỉ là thực hành tốt. Nếu bạn không cần các phương thức setter, không sử dụng chúng, tôi đã được chung chung.Nhưng có lẽ họ có thể có ích nếu bạn cần phải thay đổi một hoặc khác cho mục đích gỡ lỗi. Điều này tùy thuộc vào bạn, không tạo ra nhiều khác biệt. –

2

Cách bạn bè và tôi đang thực hiện lưu trữ thuộc tính cấp trong cơ sở dữ liệu, sau đó tùy thuộc vào cấp độ người dùng chọn, chúng tôi đọc cơ sở dữ liệu và tải nó vào lớp Cấp độ của chúng tôi. !

Sửa

Chúng tôi mới bắt đầu là tốt, nhưng nó rất dễ dàng để thực hiện cấp độ mới sau khi người đầu tiên đã được thực hiện. =] Đặc biệt vì tất cả những gì chúng ta phải làm là thêm một hàng vào cơ sở dữ liệu của chúng ta và điền vào các giá trị.

Các vấn đề liên quan