程序文件(或命令文件)和数据文件
ComputerAI.java: 设置五子棋人机对战时机器的逻辑行为。
Coordinate.java:公共棋盘坐标类。
Game.java:设置五子棋游戏规则的游戏类。
GameConstants.java: 放置所要用到的常量。
GameView.java: 绘制游戏界面
Player.java: 设置人机对战和人人对战所需要的玩家类。
wuziqi FightActivity.java :人人对战
NewGameActivity.java: 人机对战
WuziqimainActivity.java: 五子棋主界面即对人人对战和人机对战的选择。
Russiacube BlockAdapter.java: 适配器
CacheUtils.java :在Cache中处理数据
CommonAdapter.java: 公共适配器
RussiacubemainActivity.java :俄罗斯方块主方法,主要继续游戏规则设置
SelectActivity.java :实现游戏难度等级选择
StateFang.java :对俄罗斯方块种类的设置
ViewHolder.java: 游戏布局设置
其他 LoginActivity.java :用户登录界面
MainActivity.java :主界面
MyPagerAdapter.java :实现图片轮播的适配器
TomcatActivity.java :实现汤姆猫游戏功能
MainActivity.java
package com.example.pc.nopressure;
import android.content.ClipData;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.example.pc.nopressure.Russiacube.RussiacubemainActivity;
import com.example.pc.nopressure.Russiacube.SelectActivity;
import com.example.pc.nopressure.wuziqi.WuziqimainActivity;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, View.OnTouchListener{
private DrawerLayout mDrawerLayout;
private Button Tomcatbtn;
private Button Wuziqibtn;
private Button Russiabtn;
public static final int VIEW_PAGER_DELAY = 2000;
private MyPagerAdapter mAdapter;
private List<ImageView> mItems;
private ImageView[] mBottomImages;
private LinearLayout mBottomLiner;
private ViewPager mViewPager;
private int currentViewPagerItem;
//是否自动播放
private boolean isAutoPlay;
private MyHandler mHandler;
private Thread mThread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHandler = new MyHandler(this);
//配置轮播图ViewPager
mViewPager = ((ViewPager) findViewById(R.id.live_view_pager));
mItems = new ArrayList<>();
mAdapter = new MyPagerAdapter(mItems, this);
mViewPager.setAdapter(mAdapter);
mViewPager.setOnTouchListener((View.OnTouchListener) this);
mViewPager.addOnPageChangeListener((ViewPager.OnPageChangeListener) this);
isAutoPlay = true;
//TODO: 添加ImageView
addImageView();
mAdapter.notifyDataSetChanged();
//设置底部4个小点
setBottomIndicator();
android.support.v7.widget.Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mDrawerLayout = findViewById(R.id.draw_layout);
Tomcatbtn = findViewById(R.id.tomcat);
Wuziqibtn = findViewById(R.id.wuziqi);
Russiabtn=findViewById(R.id.cube);
Russiabtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,SelectActivity.class);
startActivity(intent);
}
});
Wuziqibtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, WuziqimainActivity.class);
startActivity(intent);
}
});
Tomcatbtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, TomcatActivity.class);
startActivity(intent);
}
});
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.drawable.icon_menu);
}
NavigationView navView = findViewById(R.id.nav_view);
navView.setCheckedItem(R.id.nav_call);
navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
mDrawerLayout.closeDrawers();
return true;
}
});
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case android.R.id.home:
mDrawerLayout.openDrawer(GravityCompat.START);
break;
default:
}
return true;
}
private void addImageView(){
ImageView view0 = new ImageView(this);
view0.setImageResource(R.drawable.pk1);
ImageView view1 = new ImageView(this);
view1.setImageResource(R.drawable.pk2);
ImageView view2 = new ImageView(this);
view2.setImageResource(R.drawable.pk3);
view0.setScaleType(ImageView.ScaleType.CENTER_CROP);
view1.setScaleType(ImageView.ScaleType.CENTER_CROP);
view2.setScaleType(ImageView.ScaleType.CENTER_CROP);
mItems.add(view0);
mItems.add(view1);
mItems.add(view2);
}
private void setBottomIndicator() {
//获取指示器(下面三个小点)
mBottomLiner = (LinearLayout) findViewById(R.id.live_indicator);
//右下方小圆点
mBottomImages = new ImageView[mItems.size()];
for (int i = 0; i < mBottomImages.length; i++) {
ImageView imageView = new ImageView(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(20, 20);
params.setMargins(5, 0, 5, 0);
imageView.setLayoutParams(params);
//如果当前是第一个 设置为选中状态
if (i == 0) {
imageView.setImageResource(R.drawable.indicator_select);
} else {
imageView.setImageResource(R.drawable.indicator_no_select);
}
mBottomImages[i] = imageView;
//添加到父容器
mBottomLiner.addView(imageView);
}
//让其在最大值的中间开始滑动, 一定要在 mBottomImages初始化之前完成
int mid = MyPagerAdapter.MAX_SCROLL_VALUE / 2;
mViewPager.setCurrentItem(mid);
currentViewPagerItem = mid;
//定时发送消息
mThread = new Thread(){
@Override
public void run() {
super.run();
while (true) {
mHandler.sendEmptyMessage(0);
try {
Thread.sleep(MainActivity.VIEW_PAGER_DELAY);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
mThread.start();
}
///
// ViewPager的监听事件
///
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
currentViewPagerItem = position;
if (mItems != null) {
position %= mBottomImages.length;
int total = mBottomImages.length;
for (int i = 0; i < total; i++) {
if (i == position) {
mBottomImages[i].setImageResource(R.drawable.indicator_select);
} else {
mBottomImages[i].setImageResource(R.drawable.indicator_no_select);
}
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
isAutoPlay = false;
break;
case MotionEvent.ACTION_UP:
isAutoPlay = true;
break;
}
return false;
}
///
// 为防止内存泄漏, 声明自己的Handler并弱引用Activity
///
private static class MyHandler extends Handler {
private WeakReference<MainActivity> mWeakReference;
public MyHandler(MainActivity activity) {
mWeakReference = new WeakReference<MainActivity>(activity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
MainActivity activity = mWeakReference.get();
if (activity.isAutoPlay) {
activity.mViewPager.setCurrentItem(++activity.currentViewPagerItem);
}
break;
}
}
}
}