- 浏览: 109514 次
- 性别:
最新评论
-
hjl416148489:
留言下载:http://www.sucaihuo.com/se ...
PHP留言板开发 -
a6129181:
咋样啊,我也在做数据挖掘。同行嘛。也是爬去数据分析,一塌糊涂。 ...
《推荐系统》所带给我的所感所悟 -
a6129181:
stcasshern 写道请问下能够分享一下详细代码吗?最近在 ...
用webmagic实现的网络爬虫 -
liuxu9900:
模拟登录有实现吗
用webmagic实现的网络爬虫 -
stcasshern:
请问下能够分享一下详细代码吗?最近在研究webmagic分页+ ...
用webmagic实现的网络爬虫
我的五子棋(一)
五子棋代码什么的,网上都有一堆了,不过既然是自己写的,都觉得好好的,然后我将会分四节跟大家讲解我是怎么用java做五子棋的,包括其中所用的方法和类:
这一节先上源代码哈:
全局变量:文件:Config.java;
import java.util.ArrayList;
import java.util.List;
public class Config {
public static int X0 = 50;//初始X坐标
public static int Y0 = 50;//初始Y坐标
public static int size = 35;//格子长宽
public static int size_H = 15;//行数
public static int size_L = 15;//列数
public static int count = 0;//所下步数;
public static int regret = 0;
public static List<Integer> listx = new ArrayList<Integer>();
public static List<Integer> listy = new ArrayList<Integer>();
//public static List listcount = new ArrayList();
}
主类代码:主类:Draw.java
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSeparator;
public class Draw extends JFrame {//新建界面Draw类,继承JFrame,它拥有JFrame
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Draw a = new Draw();
a.Getguit();
a.repaint();//刷新界面
}
public void Getguit()
{
this.setTitle("欢乐五子棋");
this.setSize(740,600);
this.setDefaultCloseOperation(3);//关闭窗体就退出程序
this.setLocationRelativeTo(null);//窗体显示在中央
//
ImageIcon backgroundImage = new ImageIcon("picture/backlove.jpg");
JLabel Imagebg = new JLabel(backgroundImage);
Imagebg.setBounds(0, 0, backgroundImage.getIconWidth(),backgroundImage.getIconHeight());
this.getLayeredPane().add(Imagebg,new Integer(Integer.MIN_VALUE));//添加窗体的LayeredPane面板到最底层
JPanel contentPanel = (JPanel)this.getContentPane();//获取窗体的第一层面板
contentPanel.setOpaque(false);//设置第一层面板为透明
//
JPanel eastPanel = new JPanel();//初始化面板(窗口东部)
JPanel eastPanelup = new JPanel();//初始化面板(窗口东部上部)
JPanel eastPanelmin = new JPanel();//初始化面板中部
eastPanelup.setPreferredSize(new Dimension(70,90));//(窗口东部上部留空部分)
eastPanelmin.setPreferredSize(new Dimension(100,100));//(窗口东部中部留空中间)
eastPanel.setLayout(new BorderLayout());//设置布局方式——边框布局
eastPanelmin.setLayout(new FlowLayout(FlowLayout.CENTER,10,38));
JButton jbtopen = new JButton("开始新游戏");//设置按钮1
JButton jbthui = new JButton("悔棋");//按钮2
JButton jbtvsplayer = new JButton("玩家对战");//按钮3
JButton jbtvscomputer = new JButton("人机对战");//按钮4
eastPanelmin.add(jbtopen);//放置按钮1
eastPanelmin.add(jbthui);//放置按钮2
eastPanelmin.add(jbtvsplayer);//放置按钮3
eastPanelmin.add(jbtvscomputer);//放置按钮4
eastPanel.add(eastPanelup,BorderLayout.NORTH);//放置面板eastPanelup至eastPanel北部
eastPanel.add(eastPanelmin,BorderLayout.CENTER);//放置面板eastPanelmin至eastPanel北部
this.add(eastPanel,BorderLayout.EAST);//放置面板eastPanel至this
//设置菜单栏
JMenuBar jme = new JMenuBar();
JMenu menuV = new JMenu("查看(V)");//实例化菜单栏对象
JMenuItem jmiT = new JMenuItem("帮助");
JMenuItem JmiS = new JMenuItem("作者信息");
menuV.add(jmiT);
JSeparator jse = new JSeparator();
menuV.add(jse);
menuV.add(JmiS);
jme.add(menuV);
//
this.setVisible(true);//窗体可见
Graphics g = this.getGraphics();//窗体可见后获取画布对象
MouseListener dl = new DrawListener(g,this);//实例化事件处理类的对象
this.addMouseListener(dl);//
ActionListener jbtopen2 = new OpenListener(this);//
jbtopen.addActionListener(jbtopen2);//给按钮1加监视器
ActionListener jbthui2 = new RegretListener(this);//
jbthui.addActionListener(jbthui2);//给按钮2加监视器
}
public void paint(Graphics g){
//调用父类的重绘方法
super.paint(g);
//绘制棋盘
//绘制15条
//横线
for(int i = 0;i<=Config.size_H;i++){
g.drawLine(Config.X0,Config.Y0+i*Config.size,575,Config.Y0+i*Config.size);
}
//竖线
for(int i = 0;i<=Config.size_L;i++){
g.drawLine(Config.X0+i*Config.size,Config.Y0,Config.X0+i*Config.size,575);
}
//重绘棋盘上的棋子
for(int i = 6;i<Config.size_H+12;i++){
for(int j = 6;j<Config.size_L+12;j++){
if(DrawListener.reclocation[i][j]==1){
g.setColor(Color.WHITE);
g.fillOval((Config.size*(j+1-6)),(Config.size*(i+1-6)), Config.size-5, Config.size-5);
}
if(DrawListener.reclocation[i][j]==-1){
g.setColor(Color.BLACK);
g.fillOval((Config.size*(j+1-6)),(Config.size*(i+1-6)), Config.size-5, Config.size-5);
}
}
}
}
}
鼠标监视器:(监视棋盘上的动作)文件:DrawListener.java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;
public class DrawListener implements MouseListener {
private int x2, y2;//坐标
private Graphics g;//画图类
private Draw a;
public int state = 1;//控制下棋的顺序
private int k2,m2;//将棋子显示在格子中央
public static int reclocation[][] = new int[Config.size_L+12][Config.size_H+12];//元素默认值为零
private int input = 9;//避免下在重复的位置而导致覆盖
DrawListener(){
}
DrawListener(Graphics g,Draw a) {
this.g = g;
this.a = a;
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
x2 = e.getX();
y2 = e.getY();
k2 = (x2-Config.X0)/Config.size;//计算格子在第几行
if((x2-Config.X0)%Config.size>(Config.size/2))
{
k2 = k2+1;
}
m2 = (y2-Config.Y0)/Config.size;//计算格子在第几列
if((y2-Config.X0)%Config.size>(Config.size/2))
{
m2 = m2+1;
}
int x3 = (Config.size*(k2+1));//棋子坐标x
int y3 = (Config.size*(m2+1));//棋子坐标y
if(state == 1){//黑子下
this.judgment();//判断下在此位置是否合法
g.setColor(Color.BLACK);
System.out.println("黑棋state: "+state);
}if(state == -1){//白子下
this.judgment();//判断下在此位置是否合法
g.setColor(Color.WHITE);
System.out.println("白棋state: "+state);
}
if(input == 9){//如果合法;在界面中绘出该点
System.out.println("改变state前: "+state);
System.out.println("state改变后: "+state);
System.out.println("++++++++++++++++++++++++++++++");
this.changeState();
g.fillOval(x3,y3, Config.size-5, Config.size-5);
reclocation[m2+6][k2+6] = state;//在此位置做标记,表示此位置已经有子
}
if(Config.regret==1){
reclocation[m2+6][k2+6]=0;
a.repaint();
Config.regret=0;
}
this.judgmentwin();
}//方法封装
public void judgment(){//判断下在此位置是否合法
if(reclocation[m2+6][k2+6]==1||reclocation[m2+6][k2+6]==-1||m2>15||k2>15){//如果有子
System.out.println("下错位置咯");
input = 10;//判断为非法,无法下在此位置
}else{
input = 9;
Config.count = Config.listx.size()+1;
Config.listx.add(k2+6);
Config.listy.add(m2+6);
}
}//judgment函数结束
public void judgmentwin(){
int i;
int win = 0;//计数器水平方向
int win2 = 0;//计数器竖直方向
int win3 = 0;//计数器45度
int win4 = 0;//计数器135度
for(i = 0;i<=5;i++){
for(int j = i-5;j<i;j++){
win=win+reclocation[m2+6][k2+6+j];//检查水平方向
win2=win2+reclocation[m2+6+j][k2+6];//检查竖直方向
win3=win3+reclocation[m2+6+j][k2+6+j];//检查45°方向
win4=win4+reclocation[m2+6-j][k2+6+j];//检查135°方向
}//内部循环结束
if(win>=5||win2>=5||win3>=5||win4>=5){
JOptionPane.showMessageDialog(null,"恭喜,白棋胜利了");break;
}else if(win<=-5||win2<=-5||win3<=-5||win4<=-5){
JOptionPane.showMessageDialog(null,"恭喜,黑棋胜利了");break;
}else{//计数器全归零,重新计算
win = 0;
win2 = 0;
win3 = 0;
win4 = 0;
}
}
}//方法
public int getState(){//获取步骤
return state;
}
public void changeState(){//获取步骤
state = state*(-1);
System.out.println("使用悔棋后state: "+state);
}
}//类的封装
再来一局:文件:OpenListener.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class OpenListener implements ActionListener {
private Draw a;
public OpenListener(Draw a){
this.a = a;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
for(int i = 6;i<Config.size_H+12;i++){
System.out.println();
for(int j = 6;j<Config.size_L+12;j++){
DrawListener.reclocation[i][j] = 0;//重置所有棋子
System.out.print(" "+DrawListener.reclocation[i][j]);//
}//内循环结束;
}//外循环结束
a.repaint();//刷新界面
Config.count = 0;
Config.listx.clear();
Config.listy.clear();
}
}
悔棋操作:文件:RegretListener.java
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
public class RegretListener implements ActionListener {
private Draw a;
public RegretListener(Draw a){
this.a = a;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
DrawListener b = new DrawListener();
if(Config.count>=1){//如果步数大于1,可执行悔棋操作
int x = Config.listx.get(Config.count-1);//获取要悔棋的点的坐标x
int y = Config.listy.get(Config.count-1);//获取要悔棋的点的坐标y
DrawListener.reclocation[y][x]=0;//
System.out.println("reclocation[x][y]"+" "+y+" "+x+" :"+DrawListener.reclocation[y][x]);//
Config.count--;//界面棋子数-1
Config.regret=1;
}//
else{//如果棋盘上没有棋子
JOptionPane.showMessageDialog(null,"已经是最后一步了");//
}//
a.repaint();//刷新
}
}
五子棋代码什么的,网上都有一堆了,不过既然是自己写的,都觉得好好的,然后我将会分四节跟大家讲解我是怎么用java做五子棋的,包括其中所用的方法和类:
这一节先上源代码哈:
全局变量:文件:Config.java;
import java.util.ArrayList;
import java.util.List;
public class Config {
public static int X0 = 50;//初始X坐标
public static int Y0 = 50;//初始Y坐标
public static int size = 35;//格子长宽
public static int size_H = 15;//行数
public static int size_L = 15;//列数
public static int count = 0;//所下步数;
public static int regret = 0;
public static List<Integer> listx = new ArrayList<Integer>();
public static List<Integer> listy = new ArrayList<Integer>();
//public static List listcount = new ArrayList();
}
主类代码:主类:Draw.java
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSeparator;
public class Draw extends JFrame {//新建界面Draw类,继承JFrame,它拥有JFrame
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Draw a = new Draw();
a.Getguit();
a.repaint();//刷新界面
}
public void Getguit()
{
this.setTitle("欢乐五子棋");
this.setSize(740,600);
this.setDefaultCloseOperation(3);//关闭窗体就退出程序
this.setLocationRelativeTo(null);//窗体显示在中央
//
ImageIcon backgroundImage = new ImageIcon("picture/backlove.jpg");
JLabel Imagebg = new JLabel(backgroundImage);
Imagebg.setBounds(0, 0, backgroundImage.getIconWidth(),backgroundImage.getIconHeight());
this.getLayeredPane().add(Imagebg,new Integer(Integer.MIN_VALUE));//添加窗体的LayeredPane面板到最底层
JPanel contentPanel = (JPanel)this.getContentPane();//获取窗体的第一层面板
contentPanel.setOpaque(false);//设置第一层面板为透明
//
JPanel eastPanel = new JPanel();//初始化面板(窗口东部)
JPanel eastPanelup = new JPanel();//初始化面板(窗口东部上部)
JPanel eastPanelmin = new JPanel();//初始化面板中部
eastPanelup.setPreferredSize(new Dimension(70,90));//(窗口东部上部留空部分)
eastPanelmin.setPreferredSize(new Dimension(100,100));//(窗口东部中部留空中间)
eastPanel.setLayout(new BorderLayout());//设置布局方式——边框布局
eastPanelmin.setLayout(new FlowLayout(FlowLayout.CENTER,10,38));
JButton jbtopen = new JButton("开始新游戏");//设置按钮1
JButton jbthui = new JButton("悔棋");//按钮2
JButton jbtvsplayer = new JButton("玩家对战");//按钮3
JButton jbtvscomputer = new JButton("人机对战");//按钮4
eastPanelmin.add(jbtopen);//放置按钮1
eastPanelmin.add(jbthui);//放置按钮2
eastPanelmin.add(jbtvsplayer);//放置按钮3
eastPanelmin.add(jbtvscomputer);//放置按钮4
eastPanel.add(eastPanelup,BorderLayout.NORTH);//放置面板eastPanelup至eastPanel北部
eastPanel.add(eastPanelmin,BorderLayout.CENTER);//放置面板eastPanelmin至eastPanel北部
this.add(eastPanel,BorderLayout.EAST);//放置面板eastPanel至this
//设置菜单栏
JMenuBar jme = new JMenuBar();
JMenu menuV = new JMenu("查看(V)");//实例化菜单栏对象
JMenuItem jmiT = new JMenuItem("帮助");
JMenuItem JmiS = new JMenuItem("作者信息");
menuV.add(jmiT);
JSeparator jse = new JSeparator();
menuV.add(jse);
menuV.add(JmiS);
jme.add(menuV);
//
this.setVisible(true);//窗体可见
Graphics g = this.getGraphics();//窗体可见后获取画布对象
MouseListener dl = new DrawListener(g,this);//实例化事件处理类的对象
this.addMouseListener(dl);//
ActionListener jbtopen2 = new OpenListener(this);//
jbtopen.addActionListener(jbtopen2);//给按钮1加监视器
ActionListener jbthui2 = new RegretListener(this);//
jbthui.addActionListener(jbthui2);//给按钮2加监视器
}
public void paint(Graphics g){
//调用父类的重绘方法
super.paint(g);
//绘制棋盘
//绘制15条
//横线
for(int i = 0;i<=Config.size_H;i++){
g.drawLine(Config.X0,Config.Y0+i*Config.size,575,Config.Y0+i*Config.size);
}
//竖线
for(int i = 0;i<=Config.size_L;i++){
g.drawLine(Config.X0+i*Config.size,Config.Y0,Config.X0+i*Config.size,575);
}
//重绘棋盘上的棋子
for(int i = 6;i<Config.size_H+12;i++){
for(int j = 6;j<Config.size_L+12;j++){
if(DrawListener.reclocation[i][j]==1){
g.setColor(Color.WHITE);
g.fillOval((Config.size*(j+1-6)),(Config.size*(i+1-6)), Config.size-5, Config.size-5);
}
if(DrawListener.reclocation[i][j]==-1){
g.setColor(Color.BLACK);
g.fillOval((Config.size*(j+1-6)),(Config.size*(i+1-6)), Config.size-5, Config.size-5);
}
}
}
}
}
鼠标监视器:(监视棋盘上的动作)文件:DrawListener.java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;
public class DrawListener implements MouseListener {
private int x2, y2;//坐标
private Graphics g;//画图类
private Draw a;
public int state = 1;//控制下棋的顺序
private int k2,m2;//将棋子显示在格子中央
public static int reclocation[][] = new int[Config.size_L+12][Config.size_H+12];//元素默认值为零
private int input = 9;//避免下在重复的位置而导致覆盖
DrawListener(){
}
DrawListener(Graphics g,Draw a) {
this.g = g;
this.a = a;
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
x2 = e.getX();
y2 = e.getY();
k2 = (x2-Config.X0)/Config.size;//计算格子在第几行
if((x2-Config.X0)%Config.size>(Config.size/2))
{
k2 = k2+1;
}
m2 = (y2-Config.Y0)/Config.size;//计算格子在第几列
if((y2-Config.X0)%Config.size>(Config.size/2))
{
m2 = m2+1;
}
int x3 = (Config.size*(k2+1));//棋子坐标x
int y3 = (Config.size*(m2+1));//棋子坐标y
if(state == 1){//黑子下
this.judgment();//判断下在此位置是否合法
g.setColor(Color.BLACK);
System.out.println("黑棋state: "+state);
}if(state == -1){//白子下
this.judgment();//判断下在此位置是否合法
g.setColor(Color.WHITE);
System.out.println("白棋state: "+state);
}
if(input == 9){//如果合法;在界面中绘出该点
System.out.println("改变state前: "+state);
System.out.println("state改变后: "+state);
System.out.println("++++++++++++++++++++++++++++++");
this.changeState();
g.fillOval(x3,y3, Config.size-5, Config.size-5);
reclocation[m2+6][k2+6] = state;//在此位置做标记,表示此位置已经有子
}
if(Config.regret==1){
reclocation[m2+6][k2+6]=0;
a.repaint();
Config.regret=0;
}
this.judgmentwin();
}//方法封装
public void judgment(){//判断下在此位置是否合法
if(reclocation[m2+6][k2+6]==1||reclocation[m2+6][k2+6]==-1||m2>15||k2>15){//如果有子
System.out.println("下错位置咯");
input = 10;//判断为非法,无法下在此位置
}else{
input = 9;
Config.count = Config.listx.size()+1;
Config.listx.add(k2+6);
Config.listy.add(m2+6);
}
}//judgment函数结束
public void judgmentwin(){
int i;
int win = 0;//计数器水平方向
int win2 = 0;//计数器竖直方向
int win3 = 0;//计数器45度
int win4 = 0;//计数器135度
for(i = 0;i<=5;i++){
for(int j = i-5;j<i;j++){
win=win+reclocation[m2+6][k2+6+j];//检查水平方向
win2=win2+reclocation[m2+6+j][k2+6];//检查竖直方向
win3=win3+reclocation[m2+6+j][k2+6+j];//检查45°方向
win4=win4+reclocation[m2+6-j][k2+6+j];//检查135°方向
}//内部循环结束
if(win>=5||win2>=5||win3>=5||win4>=5){
JOptionPane.showMessageDialog(null,"恭喜,白棋胜利了");break;
}else if(win<=-5||win2<=-5||win3<=-5||win4<=-5){
JOptionPane.showMessageDialog(null,"恭喜,黑棋胜利了");break;
}else{//计数器全归零,重新计算
win = 0;
win2 = 0;
win3 = 0;
win4 = 0;
}
}
}//方法
public int getState(){//获取步骤
return state;
}
public void changeState(){//获取步骤
state = state*(-1);
System.out.println("使用悔棋后state: "+state);
}
}//类的封装
再来一局:文件:OpenListener.java
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class OpenListener implements ActionListener {
private Draw a;
public OpenListener(Draw a){
this.a = a;
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
for(int i = 6;i<Config.size_H+12;i++){
System.out.println();
for(int j = 6;j<Config.size_L+12;j++){
DrawListener.reclocation[i][j] = 0;//重置所有棋子
System.out.print(" "+DrawListener.reclocation[i][j]);//
}//内循环结束;
}//外循环结束
a.repaint();//刷新界面
Config.count = 0;
Config.listx.clear();
Config.listy.clear();
}
}
悔棋操作:文件:RegretListener.java
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
public class RegretListener implements ActionListener {
private Draw a;
public RegretListener(Draw a){
this.a = a;
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
DrawListener b = new DrawListener();
if(Config.count>=1){//如果步数大于1,可执行悔棋操作
int x = Config.listx.get(Config.count-1);//获取要悔棋的点的坐标x
int y = Config.listy.get(Config.count-1);//获取要悔棋的点的坐标y
DrawListener.reclocation[y][x]=0;//
System.out.println("reclocation[x][y]"+" "+y+" "+x+" :"+DrawListener.reclocation[y][x]);//
Config.count--;//界面棋子数-1
Config.regret=1;
}//
else{//如果棋盘上没有棋子
JOptionPane.showMessageDialog(null,"已经是最后一步了");//
}//
a.repaint();//刷新
}
}
发表评论
-
用maven将java程序打包
2015-02-16 21:58 2401用maven在liunx上将java程序进行打包 随着Ma ... -
Maven入门(转载)
2015-01-05 15:05 862Maven入门介绍 1. 安装 Maven Ma ... -
Java的Unicode编码转化(多种情况处理方法)
2014-11-23 01:00 6714Java的Unicode编码转化(多种情况处理方法) Ja ... -
在centos下安装JDK
2014-11-02 18:21 1273在centos下安装JDK CentOS ... -
webmagic——魔法般的爬虫框架
2014-10-19 22:45 4898webMagic 是一个非常不错的开发框架。简单易 ... -
BMP解码器的练习
2013-09-23 20:07 838这是一个BMP解码器的练习,实现8位,24位真彩的解码,放在 ... -
编写文件搜索器——痛并快乐着
2013-09-21 18:50 798编写文件搜索器——痛并快乐着 文件搜索器的大部分代码 ... -
Enter创意工作小组项目开发工作记录(一)
2013-08-03 01:33 712Enter创意工作小组项目开发工作记录(一) 8月2日 ... -
通信基础——实现服务器与客户端的交流
2013-08-03 00:56 994通信基础——实现服务器与客户端的交流 大家好~~~好久不见 ... -
文件操作入门
2013-07-23 00:16 617文件操作入门 这段代码实现了最基础的文件操作:查,搜,读 ... -
弹球游戏分步解析(五)——阶段性总结
2013-07-22 23:14 871弹球游戏分步解析(五)——阶段性总结 之前的《弹球游戏分 ... -
弹球游戏分步解析(四)——保存读取游戏
2013-07-22 18:32 1002弹球游戏分步解析(四)——保存读取游戏 接下来我们要说的是 ... -
弹球游戏分步解析(三)——滑块动起来
2013-07-22 17:43 1116弹球游戏分步解析( ... -
弹球游戏分步解析(二)——让小球飞
2013-07-22 16:31 2063弹球游戏分步解析(二)——让小球飞 之前跟大家说要把事件 ... -
弹球游戏分步解析(一)——界面绘制
2013-07-22 15:52 1907弹球游戏分步解析(一 ... -
自定义链表(一)——小试牛刀
2013-07-18 00:24 768自定义链表(一)——小试牛刀 我们除了上次我们讲到自定义 ... -
自定义队列(一)小试牛刀
2013-07-17 23:24 651自定义队列 学过编程语言的同学都知道,我们可以用数组来储存 ... -
分形(二)——分形树
2013-07-14 21:50 2606分形(二)——分形树 上次我们画出了谢尔宾斯基三角形,这 ... -
分形——谢尔宾斯基三角形
2013-07-13 17:59 4409分形——谢尔宾斯基三角形 普通几何学研究的对象,一般都具有整数 ...
相关推荐
计网课程设计Java写的五子棋源代码计网课程设计Java写的五子棋源代码计网课程设计Java写的五子棋源代码计网课程设计Java写的五子棋源代码计网课程设计Java写的五子棋源代码计网课程设计Java写的五子棋源代码计网课程...
java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源代码java小游戏 (源码)swing五子棋源...
五子棋MFC源代码是一款基于Microsoft Foundation Class (MFC) 库开发的简单游戏程序,主要用于C++编程初学者理解和学习MFC框架。MFC是微软提供的一套面向对象的类库,它封装了Windows API,使得开发者可以更高效地...
本篇将深入解析一个用C语言编写的五子棋游戏源代码。该程序适用于初学者学习,代码中包含了丰富的功能,如玩家交互、游戏逻辑处理等。接下来,我们将详细探讨代码中的关键部分及其工作原理。 #### 宏定义与常量 1....
【C++五子棋源代码解析】 五子棋是一种经典的双人对弈游戏,源代码实现可以帮助我们理解C++编程语言的基本语法、面向对象编程思想以及游戏逻辑的构建。在这个项目中,我们可以学习到以下几个重要的知识点: 1. **...
《五子棋源代码解析与VC开发经验分享》 五子棋,又称连珠,是一种简单却富有策略性的双人对弈游戏。在计算机编程领域,实现五子棋的源代码是一个经典的练习项目,它涉及到图形用户界面设计、游戏逻辑算法以及事件...
【五子棋Java全套源代码】是一个基于Java Swing开发的桌面应用程序,专为五子棋爱好者设计。在这款游戏中,玩家可以与计算机进行对弈,体验经典的五子棋玩法。Swing是Java的一个图形用户界面(GUI)工具包,它允许...
在“五子棋java源代码”中,我们可以学习到如何使用Java来实现一个交互式的人机对战游戏。下面将详细探讨这个项目中涉及的Java编程知识点。 1. **图形用户界面(GUI)**:为了创建一个用户友好的五子棋界面,开发者...
这个C++源代码实现了基本的五子棋游戏功能,包括玩家之间的交互、棋盘状态的更新和判断胜负等。 首先,从编程语言的角度来看,C++是一种强大的、面向对象的编程语言,以其效率和灵活性著称。在实现五子棋这样的游戏...
五子棋源代码是一款基于Java编程语言开发的桌面游戏,主要功能是实现两人对弈的五子棋游戏。在这个项目中,我们可以深入学习到Java语言在游戏开发中的应用,以及如何构建基本的游戏逻辑和交互界面。 1. **Java基础...
python课程作业设计五子棋游戏源代码。该项目使用了python语言,并通过pygame库创造游戏的窗口、实现鼠标点击下棋、棋盘右侧实时显示下棋方、显示胜负信息、显示开局时间、播放背景音乐(如果引起不适可以事先关闭...
彩色五子棋游戏源代码是一款基于VC6.0开发环境的棋盘游戏程序,适合初学者和有经验的开发者用来研究和学习游戏编程技术。该程序提供了五子棋的完整实现,包括游戏规则、交互界面以及胜负判断等功能,为开发者提供了...
用VB.NET做的五子棋游戏源代码用VB.NET做的五子棋游戏源代码用VB.NET做的五子棋游戏源代码用VB.NET做的五子棋游戏源代码用VB.NET做的五子棋游戏源代码用VB.NET做的五子棋游戏源代码用VB.NET做的五子棋游戏源代码用VB...
本文将详细解析一个使用C语言编写的五子棋游戏源代码,帮助读者理解其背后的逻辑和算法。 首先,源代码中包含了几个重要的头文件,如`#include <stdio.h>`,`#include <stdlib.h>`,`#include <conio.h>`,`#...
"五子棋源代码(C#源代码)"就是一个很好的学习资源,它允许开发者直接查看并理解五子棋游戏的实现细节。下面,我们将详细探讨这个项目中的关键知识点。 首先,C#是一种面向对象的编程语言,由微软公司开发,广泛应用...
首先,"C++ 五子棋源代码"是一个实际运行的五子棋游戏项目,用户在下载后,通过解压工具如“好压”打开,即可直接运行游戏。这表明游戏的执行文件已经包含在压缩包中,用户无需编译即可体验。对于编程学习者,这是一...
《五子棋游戏源代码解析(VC++实现)》 五子棋,又称连珠,是一种深受人们喜爱的双人对弈策略游戏。在计算机科学领域,将这种游戏转化为程序,是学习图形用户界面(GUI)、游戏算法以及事件驱动编程等技术的好方式...
基于java的开发源码-Java网络五子棋的源代码.zip 基于java的开发源码-Java网络五子棋的源代码.zip 基于java的开发源码-Java网络五子棋的源代码.zip 基于java的开发源码-Java网络五子棋的源代码.zip 基于java的开发...
五子棋游戏是一种深受人们喜爱的双人对弈策略游戏,源代码的提供为我们揭示了游戏背后的编程原理和实现方式。下面将详细讲解五子棋游戏的开发涉及到的知识点。 首先,五子棋游戏的基本规则是,玩家轮流在棋盘上下...