




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
运行出来效果如下:MainActivity:package games.llk;import android.app.Activity;import android.os.Bundle;public class Main extends Activity /* Called when the activity is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); /setContentView(R.layout.main); setContentView(new GameView(this); GameView:package games.llk;import java.util.Random;import android.content.Context;import android.content.res.Resources;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Point;import android.graphics.Rect;import android.graphics.Bitmap.Config;import android.os.Handler;import android.view.MotionEvent;import android.view.View;public class GameView extends View private int m_w;private int m_h;private int top_client;private int right_client;private int bottom_client;private int left_client;private Rect client_r;private Paint p_client_r;private boolean display_moreInfo;private boolean isInited;private Paint p;private Paint p_line;private Paint p_line_2;private Paint p_text;private Paint p_pross_b;private Paint p_pross;private int point_w;private int point_h;private Rect btn_r_1;private Rect btn_r_2;private Rect btn_r_close;private Bitmap bmp_btn;private Rect pross_r;private Rect pross_r_2;private Rect t_r;private Rect t_r_2;private boolean ispause=false;private boolean isstart=false;private String s_pause=暂停中。;private Bitmap buff;private Bitmap bmp_point;private Bitmap bmp_hint;private Canvas buff_Canvas;private int flevel ;private int ffen =0;private int timecount=0;private int timecountper_l = 480;private boolean isdrawing=false ;private Random random=new Random();private Resources res;private Point pointlist_tmp ;private int pointlist_tmp_count=0;private RefreshHandler mRedrawHandler = new RefreshHandler();private Point mousept ;private Point lastpt ;private Point hintpt_1 ;private Point hintpt_2 ;private boolean isontimering=false;private boolean isonmousedown=false;private int ontimercount=0;class RefreshHandler extends Handler Overridepublic void handleMessage(android.os.Message msg)GameView.this.ontimer(); nexttimer(240);public void nexttimer( long delayMillis) this.removeMessages(0);sendMessageDelayed(obtainMessage(0), delayMillis);private Pointlist fpointlist =new Pointlist();class Pointlistprivate int fxcount;private int fycount;private int l1;private int l2;private PointData fpointreclist;class PointDatapublic int x;public int y;public boolean value;public Object data;public Rect rect;public int stat;public int imgidx;private Point plist_1;private int plist_1_len;private Point plist_2;private int plist_2_len;private Point pathlist;public int pcount =0;public void init(int xcount, int ycount)fxcount=xcount;fycount=ycount;fpointreclist=new PointDatafxcount+2fycount+2;for (int x_i = 0; x_i fpointreclist.length; x_i+)for (int y_i = 0; y_i fpointreclistx_i.length; y_i+)fpointreclistx_iy_i=new PointData();fpointreclistx_iy_i.x=x_i;fpointreclistx_iy_i.y=y_i;fpointreclistx_iy_i.value=false;fpointreclistx_iy_i.data=null;fpointreclistx_iy_i.rect=new Rect(0,0,0,0);fpointreclistx_iy_i.stat=-1;fpointreclistx_iy_i.imgidx=-1;plist_1=new Point(fxcount+fycount+2)*4;for (int i = 0; i plist_1.length; i+)plist_1i=new Point(0,0);plist_1_len=0;plist_2=new Point(fxcount+fycount+2)*4;for (int i = 0; i plist_2.length; i+)plist_2i=new Point(0,0);plist_2_len=0;pathlist=new Point2;for (int i = 0; i pathlist.length; i+)pathlisti=new Point(0,0);l1=new intfxcount*2;l2=new intfxcount*2;public void setValue(int x,int y,Boolean value) fpointreclistxy.value = value;public boolean getValue(int x,int y)return fpointreclistxy.value ;public void setData(int x,int y,Object data) fpointreclistxy.data = data;public void setrect(int x,int y,Rect r) fpointreclistxy.rect.left = r.left; fpointreclistxy.rect.top = r.top; fpointreclistxy.rect.right = r.right; fpointreclistxy.rect.bottom = r.bottom; public Rect getrect(int x,int y) return fpointreclistxy.rect;public void setstat(int x,int y,int v) fpointreclistxy.stat=v;public int getstat(int x,int y)return fpointreclistxy.stat;public void setimgidx(int x,int y,int v) fpointreclistxy.imgidx=v;public int getimgidx(int x,int y)return fpointreclistxy.imgidx;public boolean checkpp(Point p1,Point p2)boolean result=false; if (p1.x = p2.x) & (p1.y = p2.y) return true; if (p1.y = p2.y) int x1 = p1.x p2.x?p1.x:p2.x; for (int i=x1+1 ;i=x2-1;i+) if (fpointreclistip1.y.value ) return false; result = true; if (p1.x = p2.x) int y1 = p1.y p2.y?p1.y:p2.y; for (int i=y1+1 ;i=y2-1;i+) if (fpointreclistp1.xi.value ) return false; result = true; return result;public void mousetoxy(int x,int y ,Point pt)for (int x_i = 1; x_i = fxcount; x_i+)for (int y_i = 1; y_i = fycount; y_i+)if (fpointreclistx_iy_i.rect.contains(x,y)pt.x=x_i;pt.y=y_i;return;pt.x=-1;pt.y=-1;public boolean isallok()for (int x_i = 1; x_i = fxcount; x_i+)for (int y_i = 1; y_i =0)return false;return true;public void changeplace(int v)int idx=0;if ( (v = 2)| (v = 6) for (int i = 1 ;i=fxcount;i+ ) idx = 0; for (int j = 1 ;j= 0 ) idx=idx+1; l1idx = getimgidx(i, j); l2idx = getstat(i, j); for (int j = 1 ;j idx) setimgidx(i, j, -1); setstat(i, j, -1); setValue(i, j, false); else setimgidx(i, j, l1j); setstat(i, j, l2j); setValue(i, j, true); if ( (v = 3)| (v = 7) for (int i = 1 ;i=1 ;j-) if (getstat(i, j) = 0 ) idx=idx-1; l1idx = getimgidx(i, j); l2idx = getstat(i, j); for (int j = fycount ;j=1;j-) if (j idx) setimgidx(i, j, -1); setstat(i, j, -1); setValue(i, j, false); else setimgidx(i, j, l1j); setstat(i, j, l2j); setValue(i, j, true); if( (v = 4)| (v = 8) for (int j = 1 ;j= fycount ;j+) idx = 0; for (int i = 1 ;i= 0 ) idx=idx+1; l1idx = getimgidx(i, j); l2idx = getstat(i, j); for (int i = 1 ;i idx) setimgidx(i, j, -1); setstat(i, j, -1); setValue(i, j, false); else setimgidx(i, j, l1i); setstat(i, j, l2i); setValue(i, j, true); if ( (v = 5)| (v = 9) for (int j = 1 ;j=1;i- ) if (getstat(i, j) = 0 ) idx=idx-1; l1idx = getimgidx(i, j); l2idx = getstat(i, j); for (int i = fxcount ;i=1;i- ) if (i idx) setimgidx(i, j, -1); setstat(i, j, -1); setValue(i, j, false); else setimgidx(i, j, l1i); setstat(i, j, l2i); setValue(i, j, true); public void findstat(int v ,Point pt)for (int x_i = 0; x_i fpointreclist.length; x_i+)for (int y_i = 0; y_i =0;i-) x = x1;y = i;if (fpointreclistxy.value)break; else plist_1plist_1_len.x = x; plist_1plist_1_len.y = y; plist_1_len=plist_1_len+1; for (int i = y1 + 1;i=0;i-) x = i; y = y1; if (fpointreclistxy.value ) break; else plist_1plist_1_len.x = x; plist_1plist_1_len.y = y; plist_1_len=plist_1_len+1; for (int i = x1 + 1 ;i= 0;i- ) x = x2; y = i; if (fpointreclistxy.value ) break; else plist_2plist_2_len.x = x; plist_2plist_2_len.y = y; plist_2_len=plist_2_len+1; for( int i = y2 + 1 ;i= 0 ;i-) x = i; y = y2; if (fpointreclistxy.value ) break; else plist_2plist_2_len.x = x; plist_2plist_2_len.y = y; plist_2_len=plist_2_len+1; for (int i = x2 + 1 ;i= fxcount + 1;i+) x = i; y = y2; if (fpointreclistxy.value) break; else plist_2plist_2_len.x = x; plist_2plist_2_len.y = y; plist_2_len=plist_2_len+1; pcount = 0; for (int i = 0 ;i plist_1_len;i+) for (int j = 0 ;j 0) pathlistpcount.x = plist_1i.x; pathlistpcount.y = plist_1i.y; pcount=pcount+1; if (j 0) pathlistpcount.x = plist_2j.x; pathlistpcount.y = plist_2j.y; pcount=pcount+1; return result; return result;private boolean getPHint(Point p1,Point p2) for (int i_1 = 1 ; i_1=fxcount;i_1+ ) for (int j_1 = 1 ;j_1=fycount; j_1+ ) p1.x = i_1; p1.y = j_1; if (getimgidx(p1.x, p1.y) 0 ) continue; if (getstat(p1.x, p1.y) 0 ) continue; for (int i_2 = i_1 ;i_2=fxcount;i_2+ ) for (int j_2 = 1 ;j_2=fycount;j_2+ ) if (i_2 = i_1) & (j_2 = j_1) ) continue; p2.x= i_2; p2.y= j_2; if (getimgidx(p2.x, p2.y) 0 ) continue; if (getstat(p2.x, p2.y) 0) timecount=timecount-1; else beginlevel(flevel); if (ontimercount0 )ontimercount=ontimercount-1;if(ontimercount=0) drawall(); invalidate(); ontimercount=10; isontimering=false;Overrideprotected void onDraw(Canvas canvas) / TODO Auto-generated method stubsuper.onDraw(canvas);canvas.drawBitmap(buff, 1, 1, p);Overrideprotected void onLayout(boolean changed, int left, int top, int right,int bottom) / TODO Auto-generated method stubsuper.onLayout(changed, left, top, right, bottom);init(right-left,bottom-top);private void drawblank()buff_Canvas.drawRect(client_r, p_client_r);private void drawtext()buff_Canvas.drawBitmap(bmp_btn,btn_r_1.left,btn_r_1.top, p);if (!isstart) buff_Canvas.drawText(开始, btn_r_1.left+14, btn_r_1.top+14,p_text);else if (ispause ) buff_Canvas.drawText(继续, btn_r_1.left+14, btn_r_1.top+14,p_text); buff_Canvas.drawText(s_pause, left_client, top_client+20,p_text); else buff_Canvas.drawText(暂停, btn_r_1.left+14, btn_r_1.top+14,p_text); buff_Canvas.drawRect (t_r,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 漆器金银漆雕刻嵌银工艺考核试卷及答案
- 磷肥酸沉槽工艺考核试卷及答案
- 微电子制造工艺规范考核试卷及答案
- 金属材碱洗工标准化作业考核试卷及答案
- 电线电缆金属导体挤制工质量管控考核试卷及答案
- 2024新版2025秋青岛版科学六三制三年级上册教学课件:第四单元 第17课 水蒸发
- AI智能智慧教育综合解决方案
- 影像技术防护考试题及答案
- 气象观测业务测试卷附答案
- 银行征信试题及答案
- 初中道德与法治课外辅导计划
- 幼儿教育中彝族元素的使用
- 心理健康 开学第一课班会课件
- 2025年度在线教育平台股东出资合同
- 慢性鼻窦炎鼻息肉护理查房
- DB3203-T 1043-2023 社区居家医疗护理服务规范
- 教学课件-电子商务法律法规(王庆春)
- 2024考研数二真题及答案
- 《业务员基本素质》课件
- (建筑工程管理)主体分部工程验收方案
- 餐饮业合伙人入股协议书
评论
0/150
提交评论