Database di giochi di carte Android per Deck Building

0

Sto facendo un gioco di carte per Android in cui un giocatore può scegliere tra una selezione di carte per costruire un mazzo che contenga circa 60 carte. Attualmente, ho l'intero database di schede creato che l'utente può navigare.

Il prossimo passo è consentire all'utente di selezionare le carte e creare un mazzo con qualunque carta desideri. Ho una forma in cui l'utente può cercare carte specifiche basate su alcuni attributi diversi. I risultati della ricerca vengono visualizzati in un'attività elenco. Il mio pensiero sulla creazione del mazzo consiste nell'aggiungere la chiave primaria di ogni carta che l'utente seleziona in una tabella del database SQLite con l'importo che vorrebbero nel mazzo.

In questo modo mentre l'utente esegue ricerche per le carte che possono vedere lo stato del mazzo. Una volta che l'utente decide di salvare il mazzo. Esporterò l'elenco delle schede in XML e cancellerò il contenuto della tabella. Se l'utente volesse apportare modifiche al mazzo, lo caricherà, verrebbe analizzato nuovamente nella tabella in modo che possano apportare le modifiche. Una situazione simile si verificherebbe quando alla fine si caricasse il mazzo per giocare una partita.

Sono solo curioso di sapere cosa penserai di questo metodo. Attualmente, questo è un progetto personale e io sono l'unico a lavorarci. Se riesco a capire la migliore implementazione prima ancora di iniziare a programmare, spero di risparmiarmi un po 'di tempo e problemi.

    
posta Singularity222 19.11.2012 - 03:10
fonte

2 risposte

1

Il database mi sembra un po 'inutile, se non hai bisogno che i dati siano persistenti non dovresti usare un database, ma solo una serie di strutture.

Le carte tuttavia devono essere archiviate come database per consentire al sistema di espandersi facilmente, ricorda solo di tenere a mente l'iniezione SQL.

    
risposta data 19.11.2012 - 10:13
fonte
0

A meno che l'XML non ti venga dato, probabilmente conserverei il mazzo nel database. Ma sospetto che sia lì per l'interoperabilità con qualche altra applicazione, quindi deve esserci.

Se il caricamento dei dati nel database ti rende più facile manipolarli, vai avanti. Ma per limitare la quantità di scritture alla memoria non volatile, si dovrebbe sfruttare il supporto delle tabelle di memoria in SQLite. Le tabelle in memoria possono essere create in due modi:

  • CREATE TEMP TABLE ... con PRAGMA temp_store = MEMORY in vigore.
  • ATTACH ':memory:' AS mem e CREATE TABLE mem.... .

Il vantaggio della tabella di memoria rispetto alla tabella su disco che si rilascia prima di uscire è che non resterà intorno se la vostra applicazione viene forzatamente chiusa. Quindi non devi rilasciarlo in onStop e non rimarrà ancora quando la tua applicazione viene uccisa, cosa che Android fa senza ulteriori avvisi (ovviamente devi ancora scrivere l'XML su onStop).

    
risposta data 19.11.2012 - 11:11
fonte

Leggi altre domande sui tag