Android开发系列(十六):【Android小游戏成语连连看】第二篇

写的晚了,在分工个Z市高中的一个成绩查询的系统,原系统竟然是用VB写的,我不得不佩服原本写系统的那位哥们真能耐得住。

明天搭建下SVN就等着先发工程款然后开始项目了,想想有工资进账,心里也为我那干瘪的钱包小兴奋了一把。


闲话不多说了,今天我们来分析下这个小游戏的工作原理以及核心代码的解析:

工作原理:

“主界面”以及“关卡界面”不多说了,这两个是直接写了xml文件,

然后,我们在“游戏界面”的搭建是:

用java代码动态生成了这个界面,在界面中通过service层还有dao层的方法,得到了所在关卡对应的所有成语对象,然后把这些对象每个都分解成4个word对象,然后放入到界面中,当点击的时候,判断点击的四个word能不能够组成一个成语(根据他们的级别还有他们点击的顺序判断他们能不能组成一个成语)。如果能够组成一个成语的话,弹出一个框框,显示这个成语的解释、出处等等信息。


我们先看cn.idiomlianliankan.dao包里边的内容:

GameDaoImpl.java:

package cn.idiomlianliankan.dao.impl;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import cn.idiomlianliankan.dao.GameDao;
import cn.idiomlianliankan.domain.CheckPoint;
import cn.idiomlianliankan.domain.Idiom;
import cn.idiomlianliankan.domain.Word;

public class GameDaoImpl implements GameDao {
	private SQLiteDatabase db;
	public GameDaoImpl(){}
	
	/**
	 *  构造一个GameDaoImpl对象,传入数据库输出流
	 * @param context 传入上下文对象
	 * @param db 数据库输出流
	 */
	public GameDaoImpl(Context context,SQLiteDatabase db) {  
        this.db = db;
    } 
	/**
	 * 增加一个成语,把要添加的成语对象跟关卡对象绑定在一起
	 * @param checkpoint 关卡对象
	 * @param idiom 成语对象
	 */
	@Override
	public void addIdiom(CheckPoint checkpoint,Idiom idiom) {		
		//插入checkpoint表
		//判断checkpoint表里边有没有这个id,如果有就不插入,没有就插入
		Cursor cursor = db.rawQuery("select * from checkpoint where checkId=?", new String[]{String.valueOf(checkpoint.getCheckId())}); 
		if(!cursor.moveToNext()){
			  db.execSQL("insert into checkpoint(checkId) values(?)",  
		                new Object[]{checkpoint.getCheckId()});  
		}
				
	    //插入idiom表
	    db.execSQL("insert into idiom( idiomContent , idiomExplain , idiomProv , foreignCheckId) values(?,?,?,?)",  
                new Object[]{idiom.getIdiomContent(),idiom.getIdiomExplain(),idiom.getIdiomProv(),idiom.getCheckpoint().getCheckId()});  
	    //插入word表
	   idiom = getIdiom(idiom.getIdiomContent());
	   addWord(idiom);
	   Log.i("test", "4");
	}
	/**
	 * 把成语分解成四个word对象,然后插入到word表中
	 * @param idiom 把idiom成语分成4个word对象插入word表中
	 */
	public void addWord(Idiom idiom){
		Log.i("test", "5");
		String idiomContent = idiom.getIdiomContent();
		for(int i =1;i<=4;i++){
			char wordContent = idiomContent.charAt(i-1);
			db.execSQL("insert in
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值