Android开发实现的简单五子棋游戏示例

  

本文实例讲述了Android开发实现的简单五子棋游戏。分享给大家供大家参考,具体如下:

  

我刚刚在Android上写的一个五子棋的小程序,在这里跟大家分享一下。

  

写完以后感觉Android的SDK,虽然也是使用Java的,但是跟Java ME还是有很大不一样。

  

首先就是Android的SDK没有实现所有的Java ME标准,原来运行在KJava上的应用程序是不能在Android上直接跑的。

  

另外就是Android的SDK有大量的API是Android自己的,需要开发人员去了解。

  

Android的开发框架也跟别的不一样,需要学习一下。

  

这个五子棋游戏是我参照Android的蛇这个演示还有别的例子,加上自己的需求写出来的。

  

其中实现了棋盘,下的棋,判断输赢,重新开局等功能。目前暂时没有实现机器智能走棋子的功能。

  

Android的触屏功能是比较好用的,前一段时间见人演示的G1,触屏很好用,而且Android的窗“窗口”,“阴影”帘加上触摸,显得很炫。

  

呃,这个五子棋,也是用触摸屏实现走棋的。点一下棋盘的位子,把棋子落到棋盘上。

  

先贴个图看看效果吧。

  

 Android开发实现的简单五子棋游戏示例

  

好了、下面直接贴代码:

     /*   *一分之五行。(五子棋)   *这是一个简单的五子棋程序,是我自己的一个练习,贴出来跟大家分享。   *希望跟大家一起多交流。我的GoogleTalk: lixinso & lt;极特;gmail.com   *   *   *///- - - - - - - - - - - - - - - - - - - - - - -//TBD:人工智能,悔棋//- - - - - - - - - - - - - - - - - - - - - - - -   包lixinsong.game.gobang;   进口android.app.Activity;   进口android.os.Bundle;   进口android.util.Log;   进口android.view.View;   进口android.widget.TextView;//这是主程序,继承自活动,实现onCreate方法。   公开课五子棋延伸活动{   GobangView gbv;/* *第一次被创建时调用活动。*/@Override   公共空间>   & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt; FrameLayout xmlns: android=" http://schemas.android.com/apk/res/android "   android: layout_width="宽和"   android: layout_height=翱砗汀北?   & lt; lixinsong.game.gobang。GobangView android: id=癅 + id/GobangView”   android: layout_width="宽和"   android: layout_height="宽和"   android:文本="五星级" tileSize=" 24 "/比;   & lt;使用   android: layout_width=" wrap_content "   android: layout_height=" wrap_content "   android: layout_centerInParent=" true "比;   & lt; TextView   android: id=癅 + id/文本”   android:文本=" hahahhaha "   android:可见性=翱杉?   android: layout_width=" wrap_content "   android: layout_height=" wrap_content "   android: layout_centerInParent=" true "   android:重力=" center_horizontal "   android:输入textColor=" # ffff0000”   android: textStyle=按蟮ā?   android: textSize=" 24 sp/比;   & lt;/RelativeLayout>   & lt;/FrameLayout>      之前      

五子棋的视图

        包lixinsong.game.gobang;   进口android.content.Context;   进口android.content.res.Resources;   进口android.graphics.Bitmap;   进口android.graphics.Canvas;   进口android.graphics.Color;   进口android.graphics.Paint;   进口android.graphics.Paint.Style;   进口android.graphics.drawable.Drawable;   进口android.util.AttributeSet;   进口android.util.Log;   进口android.view.KeyEvent;   进口android.view.MotionEvent;   进口android.view.View;   进口android.widget.TextView;/*棋盘一共10×10格   *棋盘居中   *   *   *   *///公共类GobangView扩展视图实现Runnable {   公开课GobangView扩展视图{   保护静态int GRID_SIZE=10;   保护静态int GRID_WIDTH=30;//棋盘格的宽度   保护静态int CHESS_DIAMETER=26;//棋的直径   保护静态int mStartX;//棋盘定位的左上角X   保护静态int mStartY;//棋盘定位的左上角Y   私人位图[]mChessBW;//黑棋和白棋   私有静态int [] [] mGridArray;//网格   布尔键=false;   int wbflag=1;//该下白棋了=2,该下黑棋了=1。这里先下黑棋(黑棋以后设置为机器自动下的棋子)   int mLevel=1;//游戏难度   int mWinFlag=0;   私人最终int黑=1;   私人最终int白色=2;   int mGameState=GAMESTATE_RUN;//游戏阶段:0=尚未游戏,1=正在进行游戏,2=游戏结束   静态最终int GAMESTATE_PRE=0;   静态最终int GAMESTATE_RUN=1;   静态最终int GAMESTATE_PAUSE=2;   静态最终int GAMESTATE_END=3;//私人TextView mStatusTextView;//根据游戏状态设置显示的文字   公共TextView mStatusTextView;//根据游戏状态设置显示的文字   私人位图btm1;   私人最终油漆mPaint=new油漆();   CharSequence进行多行文字;   CharSequence进行STRING_WIN="白赢!/n按发射键开始新游戏。”;   CharSequence进行STRING_LOSE="黑赢!/n按发射键开始新游戏。”;   CharSequence进行STRING_EQUAL="酷!你是相等的!/n按发射键开始新游戏。”;   公共GobangView(上下文语境、AttributeSet attrs int defStyle) {   超级(上下文、attrs defStyle);   }   公共GobangView(上下文语境,AttributeSet attrs){//好像调用的是这个构造函数,为什么不是前面的呢   超级(上下文,attrs);   this.setFocusable(真正的);//20090530   this.setFocusableInTouchMode(真正的);   init ();   }//这里画棋子后来没有用图片画,而是直接画了圆。因为我做的图片不好看。//初始化黑白棋的位图   公共空间init () {   mGameState=1;//设置游戏为开始状态   wbflag=黑色;//初始为先下黑棋   mWinFlag=0;//清空输赢标志。   mGridArray=new int [GRID_SIZE-1] [GRID_SIZE-1];   mChessBW=新的位图[2];   位图的位图=位图。createBitmap (CHESS_DIAMETER CHESS_DIAMETER Bitmap.Config.ARGB_8888);   帆布画布=新画布(位图);   .getResources资源r=this.getContext () ();   可拉的瓷砖=r.getDrawable (R.drawable.chess1);   瓷砖。setBounds (0, 0, CHESS_DIAMETER CHESS_DIAMETER);   tile.draw(画布);   mChessBW[0]=位图;   瓦=r.getDrawable (R.drawable.chess2);   瓷砖。setBounds (0, 0, CHESS_DIAMETER CHESS_DIAMETER);   tile.draw(画布);   mChessBW[1]=位图;   }   公共空间setTextView (TextView电视){   mStatusTextView=电视;   mStatusTextView.setVisibility (View.INVISIBLE);   }   @Override   保护无效onSizeChanged (w int, int, int oldw int oldh) {   mStartX=w/2 - GRID_SIZE * GRID_WIDTH/2;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Android开发实现的简单五子棋游戏示例