package com.main;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Button;
import org.eclipse.wb.swt.SWTResourceManager;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormAttachment;
public class MainWindow {
protected static Shell shlTurnaround = new Shell(SWT.MIN);;
public static int mapSize=8;//设置游戏绘制方格的数目,默认8*8
public static int time=30;//设置超时时间,默认30S
public static int retime=30;//再设一个时间变量
public static int pattern=1;//游戏模式,人机(1)/人人(2),默认人机(1)
public static int mode=1;//反转模式,八方(0),垂直(1),对角(2),随机(3)
public static String userOnePath="./pictures/guishou.jpg";//玩家一的图片路径
public static String userTwoPath="./pictures/xiaobai.jpg";//玩家二的图片路径
public static int whoseTurn=0;//该谁下
public static int[] allFlag;//标识数组,用于记录所有Label的反转情况,0为未反转,1为已反转
private Label lblNewLabel;//玩家一头像标签
private Label lblNewLabel_1;//玩家二头像标签
private Label label_1 ;//显示该那个玩家下
public static Label label_3 ;//显示剩余时间
private boolean isNotLastOne=true;//是否不是最后一步
private Label lblNewLabel_2;//翻开方向
public static Label lblNewLabel_3;//翻开方向
private Label lblNewLabel_4;//显示电脑点击的位置
private Button button;//开始游戏
private Button button_1;//游戏设置
private Button button_2;//游戏规则
private Button button_3;//关于
private Button button_4;//退出
private Composite composite;//绘图区
private Thread thread;//计时线程
private Timer timer;//计时线程
private Image imageOne=new Image(shlTurnaround.getDisplay(), userOnePath);//图片一
private Image imageTwo=new Image(shlTurnaround.getDisplay(), userTwoPath);//图片二
private Rule rule;//规则对话框
private About about;//关于对话框
/**
* Launch the application.
* @param args
*/
public static void main(String[] args) {
try {
// File picOne=new File(userOnePath);
// File picTwo=new File(userTwoPath);
// if(picOne.exists()&&picTwo.exists())
// {
MainWindow window = new MainWindow();
window.open();
// }
// else
// {
// MessageDialog.openError(shlTurnaround, "错误提示", "图片文件丢失!\n请在根目录下创建pictures/guishou.jpg和pictures/xiaobai.jpg");
// }
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Open the window.
*/
public void open() {
Display display = Display.getDefault();
createContents();
shlTurnaround.open();
shlTurnaround.pack();
shlTurnaround.layout();
while (!shlTurnaround.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
shlTurnaround.dispose();
}
/**
* Create contents of the window.
*/
protected void createContents() {
shlTurnaround.setSize(794, 694);
shlTurnaround.setText("TurnAround");
Dimension scrSize=Toolkit.getDefaultToolkit().getScreenSize();
shlTurnaround.setLocation((scrSize.width-shlTurnaround.getSize().x)/2, (scrSize.height-shlTurnaround.getSize().y)/2);
shlTurnaround.setLayout(new FormLayout());
composite = new Composite(shlTurnaround, SWT.NONE);
FormData fd_composite = new FormData();
fd_composite.right = new FormAttachment(0, 570);
fd_composite.top = new FormAttachment(0, 70);
fd_composite.left = new FormAttachment(0, 10);
composite.setLayoutData(fd_composite);
composite.setBackground(SWTResourceManager.getColor(SWT.COLOR_GRAY));
Group group = new Group(shlTurnaround, SWT.NONE);
fd_composite.bottom = new FormAttachment(group, -10, SWT.BOTTOM);
FormData fd_group = new FormData();
fd_group.bottom = new FormAttachment(0, 630);
fd_group.right = new FormAttachment(0, 762);
fd_group.top = new FormAttachment(0, 70);
fd_group.left = new FormAttachment(0, 603);
group.setLayoutData(fd_group);
group.setText("游戏相关");
button = new Button(group, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
//绘图
GridLayout grid=new GridLayout();
grid.numColumns=mapSize;
grid.horizontalSpacing=2;
grid.verticalSpacing=2;
composite.setLayout(grid);
final MyLabel[] label=new MyLabel[mapSize*mapSize];
for(Control c:composite.getChildren())
{
c.dispose();
}
// composite.pack();
for(int i=0;i<mapSize*mapSize;i++)
{
label[i]=new MyLabel(composite, SWT.BORDER, i);
if(mapSize==8)
{
//label[i].setText("\t \n\n\n\n\n");60
label[i].setBounds(((i%8)+1)*3+(i%8)*66, ((i/8)+1)*2+(i/8)*66, 66, 66);
label[i].setPicSize(66, 66);
}
if(mapSize==10)
{
// label[i].setText("\t\n\n\n\n");48
label[i].setBounds(((i%10)+1)*3+(i%10)*52, ((i/10)+1)*2+(i/10)*52, 52, 52);
label[i].setPicSize(52, 52);
}
if(mapSize==12)
{
// label[i].setText(" \n\n\n");38
label[i].setBounds(((i%12)+1)*3+(i%12)*43, ((i/12)+1)*2+(i/12)*43, 43, 43);
label[i].setPicSize(43, 43);
}
label[i].setImage(imageOne);
// labe.drawImage(1, imageOne);
//给每个label添加监听器
label[i].addMouseListener(new MyMouseListener(i) {
@Override
public void mouseUp(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseDown(MouseEvent e) {
// TODO Auto-generated method stub
// System.out.println("你点击了"+getNumber());
Image pic;//声明用于加载的图片
if(whoseTurn==0)//如果是用户一,加载他的图片
{
pic=imageOne;
}
else//否则加载用户二的图片
{
pic=imageTwo;
}
int num=getNumber();//获取点击时本标签的num
clickTurnArround(num);//调用反转函数反转点击的Label
afterClick(num,pic);
if(pattern==1&&!isOver(allFlag))
{
pToC();
}
}//public void mouseDown(MouseEvent e)
@Override
public void mouseDoubleClick(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
// composite.pack();
button.setEnabled(false);
button_1.setEnabled(false);
lblNewLabel.setEnabled(false);
lblNewLabel.redraw();
lblNewLabel_1.setEnabled(false);
lblNewLabel_1.redraw();
//初始化计时线程并启动
timer=new Timer();
thread=new Thread(timer);
thread.start();
allFlag=new int[mapSize*mapSize];//初始Label化标识数组
//初始化方向
if(mode==0)
{
lblNewLabel_3.setText("↑↓←→↖↗↙↘");
}
if(mode==1)
{
lblNewLabel_3.setText("↑↓←→");
}
if(mode==2)
{
lblNewLabel_3.setText("↖↗↙↘");
}
if(mode==3)
{
lblNewLabel_3.setText("?");
}
if(whoseTurn==1&&pattern==1)
{
pToC();
}
}//点击函数
});
b
没有合适的资源?快使用搜索试试~ 我知道了~
Turnaround源码 java小游戏
共47个文件
class:28个
java:9个
jpg:5个
5星 · 超过95%的资源 需积分: 9 42 下载量 70 浏览量
2012-08-04
17:03:32
上传
评论 1
收藏 439KB RAR 举报
温馨提示
这是游戏的源代码,有点乱,有的地方有点冗余,有兴趣的可以把它修改的更好玩点
资源推荐
资源详情
资源评论
收起资源包目录
TurnAround源码.rar (47个子文件)
TurnAround源码
.project 386B
src
com
main
Rule.java 2KB
MyLabel.java 2KB
About.java 3KB
Compute.java 22KB
GameSet.java 6KB
MainWindow.java 23KB
MyMouseListener.java 1018B
Direction.java 3KB
org
eclipse
wb
swt
SWTResourceManager.java 14KB
pictures
se.gif 23KB
guishou.jpg 70KB
xiao.gif 12KB
xiaobai.jpg 99KB
hongyan.jpg 84KB
About.jpg 81KB
xiazi.jpg 74KB
.settings
org.eclipse.jdt.core.prefs 629B
.classpath 3KB
bin
com
main
MainWindow$Timer.class 2KB
GameSet.class 5KB
MainWindow$Timer$1.class 1KB
GameSet$2.class 887B
About.class 3KB
MyLabel$1.class 1KB
About$1.class 1KB
GameSet$1.class 2KB
MyLabel.class 2KB
MainWindow$6.class 2KB
MainWindow$4.class 1KB
MainWindow$3.class 1KB
Rule.class 3KB
MyMouseListener.class 578B
MainWindow$7.class 2KB
MainWindow.class 14KB
Direction.class 3KB
MyLabel$2.class 1KB
Rule$1.class 753B
About$2.class 770B
MainWindow$1.class 4KB
MainWindow$2.class 944B
MainWindow$5.class 1KB
MainWindow$1$1.class 2KB
MainWindow$9.class 2KB
MainWindow$8.class 2KB
Compute.class 14KB
org
eclipse
wb
swt
SWTResourceManager.class 11KB
共 47 条
- 1
资源评论
- 汉武平侯2013-04-05感谢分享,本人菜鸟,学习学习
esadcl
- 粉丝: 0
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功