记一次JAVA实训(开发连连看小游戏)(一)

这几天实训,是中软国际的老师

任务是开发一个连连看的小游戏,我也有网上查过实现代码,是要涉及算法的

这是我参考的博客 https://blog.csdn.net/sxchen2012/article/details/7438588

实现思路大致相同。

此博客主要记录学习中各阶段的学习过程(实训现在还未结束)

开发工具为eclipse,语言为JAVA

(1)定义两个包,分别为com.icss.linkgame.data  、 com.icss.linkgame.view

现阶段主要做到用窗口的布局格式显示16张图片,并让每一张图片点击后消失,图片采用成对生成数据,并打乱

/**
 * 
 */
package com.icss.linkgame.data;

import java.util.Random;

/**
 * @author Administrator
 *
 */
public class GameData {
	
	public static int row = 4;
	public static int cols = 4;
	
	public static int data[] = new int[row*cols];
	
	public GameData() {
		//生成成对数据
		init();
		//打乱data中的数据
		shuffle();
	}
	
	/*
	 * 生成成对数据,存入data
	 */
	private void init() {
		for(int i = 0; i

package com.icss.linkgame.view;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

import com.icss.linkgame.data.GameData;

import javax.swing.AbstractButton;
import javax.swing.ImageIcon;


import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.util.Random;

public class MainFrame extends JFrame {
	public MainFrame() {
		GameData gameData = new GameData();
		
		int iniwidth = 500;
		int iniheight = 500;
		
		this.setTitle("连连看"); //窗体标题	
		Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
		int width = (int)screensize.getWidth();//获取当前PC的分辨率
		int height = (int)screensize.getHeight();
		this.setSize(iniwidth,iniheight);   //设置窗体的大小为400*400像素大小
		this.setLocation((width-400)/2,(height-400)/2);  //离显示屏上边缘xxx像素,离显示屏左边缘xxx像素
		
		
		this.getContentPane().setLayout(new GridLayout(GameData.row,GameData.cols));
		for(int i=0;i

package com.icss.linkgame.view;

import java.awt.Container;

import java.awt.FlowLayout;

import javax.swing.JLabel;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MainFrame f = new MainFrame();
	}

}


MainFrame类继承了Frame,调用其中方法可直接用this(书中是用new 生成对象,再获取容器对象)

其中java编译后文件在work-space的项目文件中的bin目录下

String path = this.getClass().getResource("/").getPath();    这句语句获取的路径为bin目录下的路径

PS:

老师授课意见:文件名的定义要用英文,尽量不用拼音,拼音容易谐音

i++ 与 ++i 的区别

++i                             i++
int i;                            int i;
i+=1;                          int temp = i;

return i;                      i+=1;     return temp;

明显++i比较省资源

现如今的编译器运行效率没有区别,因为即使是i++,软件也会编译成++i



你可能感兴趣的:(记一次JAVA开发)