Mã:
package com.example.app3;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import android.R.color;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Picture;
import android.graphics.RectF;
import android.location.Location;
import android.os.Bundle;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;
import android.util.AttributeSet;
import android.view.DragEvent;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnDragListener;
import android.view.View.OnKeyListener;
import android.view.View.OnTouchListener;
public class GameView extends Activity {
// DrawView drawView;
private Socket client;
private PrintWriter printwriter;
int WIN=0;
int State=1;
int FINAL=0;
float xx,yy;
int curr_x,curr_y;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameview);
Button Quit = (Button)findViewById(R.id.quit_game);
Button Thua = (Button)findViewById(R.id.thua);
Quit.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
// TODO Auto-generated method stub
Thread th = new Thread(){
public void run(){
finish();
}
};
th.start();
return false;
}
});
Thua.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Button Z = (Button)findViewById(R.id.hoa);
Z.setText("YOU LOSE");
Thread room = new Thread(){
public void run(){
try {
sleep(5000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
finish();
}
};
room.start();
return false;
}
});
final DrawView obj = new DrawView(this);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.main_gameview);
layout.addView(obj,1275,1275);
layout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
//System.out.println(event.getX()+" "+event.getY());
if (event.getAction()==MotionEvent.ACTION_MOVE){
xx = event.getX();
yy = event.getY();
return true;
}
if (event.getAction()==MotionEvent.ACTION_UP){
if (event.getX()-xx<1 && event.getY()-yy<1){
int x = (Math.round(event.getX())/25)*25;
int y = (Math.round(event.getY())/25)*25;
if ((obj.canCheck(x,y)==true && WIN==0)){
//if (FINAL==0){
obj.check(x, y, State);
obj.requestLayout();
if (obj.win(x/25,y/25,State)==true){
//Toast.makeText(null, "You WIN", Toast.LENGTH_LONG);
Button Z = (Button)findViewById(R.id.hoa);
obj.setEnabled(false);
if (State==1)
Z.setText("YOU WIN");
else
Z.setText("YOU LOSE");
WIN=State;
obj.showLineWin();
Thread room = new Thread(){
public void run(){
try {
sleep(5000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
finish();
}
};
room.start();
}
//X.setText(x/25+"");
//Y.setText(y/25+"");
try {
client = new Socket("192.168.2.1", 9999); //connect to server
printwriter = new PrintWriter(client.getOutputStream(),true);
printwriter.write(x/25+","+y/25); //write the message to output stream
printwriter.flush();
printwriter.close();
client.close(); //closing the connection
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
curr_x=x;curr_y=y;
if (State==1) State=2;
else State=1;
}
}
return true;
}
return true;
}
});
}
protected void onDestroy()
{
super.onDestroy();
}
}
@SuppressLint("DrawAllocation")
class DrawView extends View {
Paint paint = new Paint();
int map[][] = new int[55][55];
int x1=-1,y1=-1,x2=-1,y2=-1;
int StateWin=0;
int cx,cy,cs;
public DrawView(Context context) {
super(context);
setFocusable(true);
setFocusableInTouchMode(true);
for (int i=0;i<50;i++)
for (int j=0;j<50;j++)
map[i][j]=0;
paint.setColor(Color.RED);
}
public void showLineWin(){
postInvalidate();
}
public void check(int x,int y,int type){
map[x/25][y/25]=type;
postInvalidate();
}
public boolean win(int x,int y,int State){
cx=x;cy=y;cs=State;
int tx1=x,tx2=x,ty1=y,ty2=y;
if (map[x][y]==0) return false;
int inc=1;
//COL
for (int i=1;y-i>=0;i++){
if (map[x][y]==map[x][y-i]){
inc++;
tx1=x;
ty1=y-i;
}else break;
}
for (int i=1;y+i<=50;i++){
if (map[x][y]==map[x][y+i]){
inc++;
tx2=x;
ty2=y+i;
}else break;
}
if (inc>=5){
x1=tx1;x2=tx2;
y1=ty1;y2=ty2;
StateWin=State;
return true;
}
//END COL
tx1=x;tx2=x;ty1=y;ty2=y;
//ROW
inc=1;
for (int i=1;x-i>=0;i++)
if (map[x][y]==map[x-i][y]){
inc++;
tx1=x-i;
ty1=y;
}else break;
for (int i=1;x+i<=50;i++)
if (map[x][y]==map[x+i][y]){
inc++;
tx2=x+i;
ty2=y;
}else break;
if (inc>=5){
x1=tx1;x2=tx2;
y1=ty1;y2=ty2;
StateWin=State;
return true;
}
//END ROW
tx1=x;tx2=x;ty1=y;ty2=y;
//CHEO 1
inc=1;
for (int i=1;x-i>=0 && y-i>=0 ;i++)
if (map[x][y]==map[x-i][y-i]){
inc++;
tx1=x-i;
ty1=y-i;
}else break;
for (int i=1;x+i<=50 && y+i<=50;i++)
if (map[x][y]==map[x+i][y+i]){
inc++;
tx2=x+i;
ty2=y+i;
} else break;
if (inc>=5) {x1=tx1;x2=tx2;
y1=ty1;y2=ty2;StateWin=State;return true;}
//END CHEO 1
tx1=x;tx2=x;ty1=y;ty2=y;
//CHEO 2
inc=1;
for (int i=1;x-i>=0 && y+i<=50;i++)
if (map[x][y]==map[x-i][y+i]){
inc++;
tx1=x-i;
ty1=y+i;
}else break;
for (int i=1;x+i<=50 && y-i>=0;i++)
if (map[x][y]==map[x+i][y-i]){
inc++;
tx2=x+i;
ty2=y-i;
}else break;
if (inc>=5) {x1=tx1;x2=tx2;
y1=ty1;y2=ty2;StateWin=State;return true;}
//END CHEO 2
return false;
}
public boolean canCheck(int x,int y){
if (map[x/25][y/25]==0)
return true;
return false;
}
@Override
public void onDraw(Canvas canvas) {
paint.setColor(Color.GRAY);
paint.setStrokeWidth(0);
for (int i=1;i<=51;i++){
canvas.drawLine(25*i, 0, 25*i, 1275, paint);
canvas.drawLine(0, i*25, 1275, i*25, paint);
}
for (int i=0;i<=50;i++)
for (int j=0;j<=50;j++)
if (map[i][j]==1){
paint.setColor(Color.GREEN);
canvas.drawCircle((float)(i*25.0+12.5), (float)(j*25+12.5),10, paint);
paint.setColor(Color.WHITE);
canvas.drawCircle((float)(i*25.0+12.5), (float)(j*25+12.5),5 , paint);
}
else if (map[i][j]==2){
paint.setColor(Color.RED);
paint.setStrokeWidth(5);
canvas.drawLine(i*25+5, j*25+5, i*25+20, j*25+20, paint);
canvas.drawLine(i*25+20, j*25+5, i*25+5, j*25+20, paint);
}
//paint.setStrokeWidth(5);
//paint.setColor(Color.GREEN);
//canvas.drawLine(0,0,100,100, paint);
if (StateWin!=0){
paint.setStrokeWidth(3);
if (StateWin==1)
paint.setColor(Color.GREEN);
else
paint.setColor(Color.RED);
canvas.drawLine((float)(x1*25+12.5),(float)(y1*25+12.5),(float)(x2*25+12.5),(float)(y2*25+12.5), paint);
}
}
}
Mong các bác giúp đỡ em...Chân thành cảm ơn các bác.
Vệ sinh cá nhân là một phần quan yếu của sức khỏe nam giới. Dùng dung dịch vệ sinh mỗi ngày mang lại nhiều ích, giúp loại bỏ vi khuẩn và vi sinh vật gây hại, giúp khu vực cơ quan sinh dục luôn sạch...
Gel vệ sinh cu, bạn trai có nên...