- 浏览: 70206 次
- 性别:
- 来自: 长沙
最新评论
-
jnjzzjd:
玩了一下,还是挺智能的
五子棋(含较高级的人机对战) -
凤凰天翔:
虽然有很多数组越界,但是相当好,关键注释很多,3Q
五子棋(含较高级的人机对战) -
youlinge:
谢谢,下了看看
五子棋(含较高级的人机对战)
文章列表
线程学习总结
1.基础知识 1.每一个程序就是一个进程,一个进程有一个或者多个线程组成。 2.进程之间的通信,一般要通过网络。如在异地的两个QQ程序之间的通信,这就是两个进程通过网络进行数据交换。 3.进程中的各个线程可以共享同一个进程的资源数据。2.线程基础 1.Runnable接口是实现线程的接口。 2.用Thread类可以实例化一个线程,Thread就是实现了Runnable接口的线程类。 3.我们要重写线程类中的run()方法。 4.线程的启动:通过调用线程对象的start()方法可以启动线程,让线程执行线程类中的run()方法。 3.线程的创建 1.如果一个类A继承了Thread类, ...
五子棋(含较高级的人机对战算法)
这是我自己做的五子棋,含有人人对战,人机对战模式,还有悔棋、保存棋局功能。
只要还没有输棋,就可以无限制悔棋。
可以将未下完的棋局保存下来,下次接着下。
五子棋人机对战思路:我遇到的问题:电脑怎么判断它应该要下棋的位置?
解决思路:
一、
1、建立一个二维数组,该二维数组对应于五子棋棋盘上的每一个位置。
2、我们用一种评分规则,给每一个位置打一个分数,将这个分数保存在二维数组的对应位置上。
3、从二维数组中找到分值最大的位置,那么电脑就在棋盘的对应位置上下棋
二、评分规则的优劣很关键,它决定了电脑下棋的智能性如何 ...
OutputStream的学习总结
1.OutputStream与InputStream一样都是抽象类,它只定义了字节输出流统一 的几个方法,具体的实现有6个不同的子类
2.OutputStream的6个实现子类: ByteArrayOutputStream,FileOutputStream,FilterOutputStream,ObjectOutputStream,Outpu ...
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import javax.swing.JFrame;
/**
* 打开BMP格式图片的程序
*
* @author XiongMinghua
*
* 主函数
*/
public class OpenBMP extends JFrame {
public static void main(String[] args) {
OpenBMP ...
异常机制学习总结
1.throwable类是Java中所有错误或异常的超类。它的直接子类是Error类和Exception类。
2.Exception是异常的超类,异常是一个个对象,出现异常后,JVM以异常对象形式将异常信息反馈给用户。
3.异常处理的关键字: 1.try,catch 2.语法格式:
try{
//可能出现异常的语句
}catch(Exception e){
//输出异常信息
}
3.try语句块中的是可能出现异常的代码,当出现异常时,catch会捕获异常对象,并执行catch语句块中的代码。 4.finally关键字的作用是,无 ...
IO基础学习总结
1.InputStream是一个抽象类,它有多种具体的实现类 1.FileInputStream文件输入流 2.AudioInputStream音频输入流 3.ByteArrayInputStream 4.FilterInputStream过滤输入流 5.ObjectInputStream对象输入流 6.PipedInputStream管道输入流 7.SequenceInputStream 8.StringBufferInputStream
2.FileInputStream 1.FileInputStream 是InputStream的一个直接子类,可用于构造从文件中读到 ...
Java文件操作的学习总结:
1.文件 1.标准文件:就像图片,音乐文件等。 2.目录文件:也就是平常所说的文件夹。 3.虚拟内存文件:系统在运行程序时生成的临时性文件。
2.文件的路径 1.相对路径:相对于某一文件的路径,形象地说是把两文件的绝对路径相同的部分砍掉,剩下的就是相对路径 如: A文件是"D:\My Documents\StudySample\src\cn\xmh", B文件是"D:\My Documents\StudySample\src\netjava\cjl", 则B相对A的路径是"\netjava\cjl" ...
学习集合框架的总结:主要学了三种集合框架,分别是Set,List和Map。1.Set 1.Set是一种接口,它继承了Collectio接口。 2.Set是一种用来装东西的容器,我们可以用由它的实现类创建的对象来装基本数据类型的的数据元素,也可以用来装我们自己定义的类对象。 3.常用的Set实现类有HashSet和TreeSet类,用着两个类实例化的对象可以用来装数据元素。 4.实现类的使用格式: //hs是由HashSet类实例化的对象,<String>指的是这个容器是用来存放String类型的数据 java.util.HashSet<String> hs = new ...
关键字
1.访问限定符 1.public 1.公共的访问修饰符。 2.它的可见性是在同一个工程(project)下 3.用public限定的属性和方法可以被在同一工程下的类调用。 2.protected 1.公开性低于public的访问限定符。 2.它的可见性是在同一 ...
学习重绘后的总结
1.为什么要重绘? 我们在窗体中画了图形,当我们最小化窗体或者弹出颜色选择器时,原来的图形就不见了,于是我们需要学习重绘。
2.重绘就是把原来画的图形重新在窗体中画出来,即当我们最小化窗体或者弹出颜色选择器时,原来的图形还表现在窗体上。
3.重绘的实现: 1.重绘运用到了我上一节课学的自定义队列。我们把我们所画的图形都存入队列中, 当最小化窗体或者弹出颜色选择器时,再将之前画好的(保存在队列中的)图形对象重绘在窗体中。 2.我的简易画板: 1.建立一个窗体,带有可选择画图形的JRadioButton以及可以选择颜色的按钮。 2.建立一个画图形的接口,写好画各种图形的实 ...
数组与队列的总结1.数组与队列 1.数组: 1.数组一旦规定其长度就不能再改变。 2.可以给数组中指定位置的元素赋值,即修改它的值。 3.一维数组: 一维数组定义的语法格式: 1.类型名[] 数组名 = new 类型名[数组长度]; 2.类型名[] 数组名 = new 类型名[数组长度]{数据元素值}; 4.二维数组: 1.二维数组实际上是一个二维表。 2.二维数组可以看作是有多个一维数组构成的。 3.二维数组有行和列之分。 4.二维数组定义的语法格式: 1.类型名[][] 数组名 = new 类型名[行数][列数]; 2.队列: 1.队列可以根据 ...
学了事件处理后,我学习了做一个简单的画板程序,该画板简单到只能选择颜色,画直线、矩形、圆形和填充圆。这个程序中我用到了接口,抽象类,使用内部类简化事件处理方式。1.类实现接口必须重写接口中所有的方法2.在内部类中可以new 接口名 如:
btnColor.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
color = javax.swing.JColorChooser.showDialog(null, "颜色选择器",
...
swing组件用容器类组件和元素组件。 Container(容器)组件:用于管理其他界面组件的组件,例如:JFrame(窗体组件),JPanel等。 元素组件:用于构成各种用户界面的组件,例如:JLabel(标签),JTextField(文本框),JButton(按 钮)等。任何元素组件都有一个.addActionListener(java.awt.ActionListener listener)方法,这个方法实现了接收一个实现了java.awt.ActionListener接口的对象,将这个对象加为某个对象(事件源)的事件处理器,当一般的动作事件(如按键、鼠标单击)发生时,组件(事件源)就会自 ...
抽象类常用作“适配器”,因为无论一个接口中定义了多少方法,子类都必须实现。
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class Mouse implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEnter ...
这是第五次课后的总结。这次课学的是类的继承。内容有:1.类继承的实现和作用 前面已经学了类的语法格式,现在学了类的继承。类的继承是用extends关键字。 示例:
public class UNStudent extends Student{
//方法和属性
}
类的 ...