Android海贼王连连看源代码Word下载.docx
- 文档编号:6341731
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:26
- 大小:317.83KB
Android海贼王连连看源代码Word下载.docx
《Android海贼王连连看源代码Word下载.docx》由会员分享,可在线阅读,更多相关《Android海贼王连连看源代码Word下载.docx(26页珍藏版)》请在冰点文库上搜索。
text="
@string/remain_time"
1"
@+id/show_remainTime"
/TableRow>
<
/TableLayout>
/>
/LinearLayout>
values文件夹
color.xml
resources>
colorname="
hilite"
#ffffffff<
/color>
light"
#64c6d4ef<
puzzle_dark"
#6456648f<
puzzle_foreground"
#ff000000<
puzzle_hint_0"
#64ff0000<
puzzle_hint_1"
#6400ff80<
puzzle_hint_2"
#2000ff80<
puzzle_selected"
#64ff8000<
/resources>
strings.xml
stringname="
hello"
HelloWorld,ConnectGame!
/string>
remain_time"
剩余时间(秒):
again_challenge"
再次挑战<
failInfo"
胜败乃兵家常事,不要气馁哟!
succeedInfo"
好厉害,进入下一关的话,时间会变快哟!
next"
下一关<
app_name"
海贼王人物连连看v1.0<
newgame"
新游戏<
rearrage"
重排列<
exit"
退出游戏<
图片放在了drawable文件夹下
AndroidManifest.xml
versionCode="
versionName="
applicationandroid:
icon="
@drawable/icon"
label="
@string/app_name"
activityandroid:
name="
.OnePieceGame"
intent-filter>
/intent-filter>
/activity>
/application>
uses-sdkandroid:
minSdkVersion="
3"
/manifest>
Class文件(Java文件)
CtrlView.java
publicclassCtrlViewextendsGameView{
publicfinalintGAMETIME=300;
publicfinalintUPTIME=1;
publicintPROCESS_VALUE=300;
publicstaticbooleanCURRENT_CH=false;
publicintCURRENT_TYPE=0;
privatePointC_POINT;
privatePointP_POINT;
LinkedList<
Line>
li;
publicCtrlView(Contextcontext,AttributeSetattrs){
super(context,attrs);
initType();
initGrid();
much=(row-2)*(col-2);
}
publicCtrlView(Contextcontext,AttributeSetattrs,intdefStyle){
super(context,attrs,defStyle);
publicbooleanonTouchEvent(MotionEventevent){
if(event.getAction()!
=MotionEvent.ACTION_DOWN)
returnsuper.onTouchEvent(event);
intselX=(int)(event.getX()/width);
intselY=(int)(event.getY()/height);
if(grid[selX][selY]==0)
returntrue;
else{
if(CURRENT_CH==false){
select(selX,selY);
CURRENT_CH=true;
P_POINT=newPoint(selX,selY);
}else{
C_POINT=newPoint(selX,selY);
lineType=0;
if(checkLink(P_POINT,C_POINT)){
isLine=true;
much=much-2;
if(0<
PROCESS_VALUE
&
&
(PROCESS_VALUE+UPTIME)<
GAMETIME){
PROCESS_VALUE=PROCESS_VALUE+UPTIME;
}
invalidate();
mRedrawHandler.sleep(300);
}
CURRENT_CH=false;
}
}
returntrue;
publicvoidreset(){
CURRENT_CH=false;
CURRENT_TYPE=0;
C_POINT=null;
P_POINT=null;
lineType=0;
isLine=false;
Point[]p=null;
invalidate();
publicvoidrearrange(){
List<
Integer>
temp=newArrayList<
();
for(inti=0;
i<
row;
i++){
for(intj=0;
j<
col;
j++){
if(grid[i][j]!
=0){
temp.add(grid[i][j]);
type.clear();
Randomad=newRandom();
temp.size();
type.add(temp.get(i));
temp.clear();
temp=null;
intindex=ad.nextInt(type.size());
grid[i][j]=type.get(index);
type.remove(index);
privateRefreshHandlermRedrawHandler=newRefreshHandler();
classRefreshHandlerextendsHandler{
@Override
publicvoidhandleMessage(Messagemsg){
isLine=false;
grid[P_POINT.x][P_POINT.y]=0;
grid[C_POINT.x][C_POINT.y]=0;
publicvoidsleep(longdelayMillis){
this.removeMessages(0);
//移除信息队列中最顶部的信息(从顶部取出信息)
sendMessageDelayed(obtainMessage(0),delayMillis);
//获得顶部信息并延时发送
};
publicclassPoint{
publicintx;
publicinty;
publicPoint(intnewx,intnewy){
this.x=newx;
this.y=newy;
publicbooleanequals(Pointp){
if(p.x==x&
p.y==y)
returntrue;
else
returnfalse;
privatebooleanhorizon(Pointa,Pointb){
if(a.x==b.x&
a.y==b.y)
returnfalse;
intx_start=a.y<
=b.y?
a.y:
b.y;
intx_end=a.y<
b.y:
a.y;
for(intx=x_start+1;
x<
x_end;
x++)
if(grid[a.x][x]!
p=newPoint[]{a,b};
lineType=H_LINE;
privatebooleanvertical(Pointa,Pointb){
inty_start=a.x<
=b.x?
a.x:
b.x;
inty_end=a.x<
b.x:
a.x;
for(inty=y_start+1;
y<
y_end;
y++)
if(grid[y][a.y]!
=0)
lineType=V_LINE;
privatebooleanoneCorner(Pointa,Pointb){
Pointc=newPoint(a.x,b.y);
Pointd=newPoint(b.x,a.y);
if(grid[c.x][c.y]==0){
booleanmethod1=horizon(a,c)&
vertical(b,c);
p=newPoint[]{a,newPoint(c.x,c.y),b};
lineType=ONE_C_LINE;
returnmethod1;
if(grid[d.x][d.y]==0){
booleanmethod2=vertical(a,d)&
horizon(b,d);
p=newPoint[]{a,newPoint(d.x,d.y),b};
returnmethod2;
}else{
classLine{
publicPointa;
publicPointb;
publicintdirect;
publicLine(){
publicLine(intdirect,Pointa,Pointb){
this.direct=direct;
this.a=a;
this.b=b;
privateLinkedList<
scan(Pointa,Pointb){
li=newLinkedList<
for(inty=a.y;
y>
=0;
y--)
if(grid[a.x][y]==0&
grid[b.x][y]==0
&
vertical(newPoint(a.x,y),newPoint(b.x,y)))
li.add(newLine(0,newPoint(a.x,y),newPoint(b.x,y)));
for(intx=a.x;
x>
x--)
if(grid[x][a.y]==0&
grid[x][b.y]==0
horizon(newPoint(x,a.y),newPoint(x,b.y)))
li.add(newLine(1,newPoint(x,a.y),newPoint(x,b.y)));
returnli;
privatebooleantwoCorner(Pointa,Pointb){
li=scan(a,b);
if(li.isEmpty())
for(intindex=0;
index<
li.size();
index++){
Lineline=(Line)li.get(index);
if(line.direct==1){
if(vertical(a,line.a)&
vertical(b,line.b)){
p=newPoint[]{a,line.a,line.b,b};
lineType=TWO_C_LINE;
returntrue;
}elseif(horizon(a,line.a)&
horizon(b,line.b)){
p=newPoint[]{a,line.a,line.b,b};
lineType=TWO_C_LINE;
returnfalse;
publicbooleancheckLink(Pointa,Pointb){
if(grid[a.x][a.y]!
=grid[b.x][b.y])//如果图案不同,直接为false
horizon(a,b))
if(a.y==b.y&
vertical(a,b))
if(oneCorner(a,b))
else
returntwoCorner(a,b);
}
GameView.java
//画出网格,并对应的画上分布好的图像
publicclassGameViewextendsView{
publicfinalintrow=10;
publicfinalintcol=10;
publicfloatwidth;
publicfloatheight;
privateintselY;
privateintselX;
publicbooleanisLine=false;
publicintgrid[][]=newint[row][col];
privateRectselRect=newRect();
publicintlineType=0;
publicfinalintV_LINE=1;
publicfinalintH_LINE=1;
publicfinalintONE_C_LINE=2;
publicfinalintTWO_C_LINE=3;
publicintmuch=0;
Point[]p;
publicBitmap[]image;
publicList<
type=newArrayList<
publicGameView(Contextcontext,AttributeSetattrs){
this.setFocusable(true);
this.setFocusableInTouchMode(true);
publicGameView(Contextcontext,AttributeSetattrs,intdefStyle){
publicvoidfillImage(Contextcontext){
intlth=imageType.length;
image=newBitmap[lth];
lth;
Bitmapbitmap=Bitmap.createBitmap((int)width,(int)height,
Drawabledrw;
Canvascan
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 海贼 连连 源代码