betago围棋源码_围棋 alpha go

hacker|
157

文章目录:

围棋java源代码

就给你一个吧,只不过没有添加棋子,你自己搞吧。import java.applet.*;

import java.awt.*;

import java.awt.event.*;

class ChessPad extends Panel implements MouseListener,ActionListener

{int x=-1,y=-1,棋子颜色=1;

Button button=new Button("重新开局");

TextField text_1=new TextField("请黑棋下子"),

text_2=new TextField();

ChessPad()

{setSize(440,440);

setLayout(null);setBackground(Color.pink);

addMouseListener(this);add(button);button.setBounds(10,5,60,26);

button.addActionListener(this);

add(text_1);text_1.setBounds(90,5,90,24);

add(text_2);text_2.setBounds(290,5,90,24);

text_1.setEditable(false);text_2.setEditable(false);

}

public void paint(Graphics g)

{for(int i=40;i=380;i+=20)

{g.drawLine(40,i,400,i);

}

g.drawLine(40,400,400,400);

for(int j=40;j=380;j+=20)

{g.drawLine(j,40,j,400);

}

g.drawLine(400,40,400,400);

g.fillOval(97,97,6,6);g.fillOval(337,97,6,6);

g.fillOval(97,337,6,6);g.fillOval(337,337,6,6);

g.fillOval(217,217,6,6);

}

public void mousePressed(MouseEvent e)

{if(e.getModifiers()==InputEvent.BUTTON1_MASK)

{x=(int)e.getX();y=(int)e.getY();

ChessPoint_black chesspoint_black=new ChessPoint_black(this);

ChessPoint_white chesspoint_white=new ChessPoint_white(this);

int a=(x+10)/2,b=(y+10)/2;

if(x/202||y/202||x/2019||y/2019)

{}

else

{

if(棋子颜色==1)

{this.add(chesspoint_black);

chesspoint_black.setBounds(a*20-7,b*20-7,16,16);

棋子颜色=棋子颜色*(-1);

text_2.setText("请白棋下子");

text_1.setText("");

}

else if(棋子颜色==-1)

{this.add(chesspoint_white);

chesspoint_white.setBounds(a*20-7,b*20-7,16,16);

棋子颜色=棋子颜色*(-1);

text_1.setText("请黑棋下子");

text_2.setText("");

}

}

}

}

public void mouseReleased(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

public void actionPerformed(ActionEvent e)

{this.removeAll();棋子颜色=1;

add(button);button.setBounds(10,5,60,26);

add(text_1);text_1.setBounds(90,5,90,24);

text_2.setText("");text_1.setText("请黑棋下子");

add(text_2);text_2.setBounds(290,5,90,24);

}

}

class ChessPoint_black extends Canvas implements MouseListener

{ChessPad chesspad=null;

ChessPoint_black(ChessPad p)

{setSize(20,20);chesspad=p;addMouseListener(this);

}

public void paint(Graphics g)

{g.setColor(Color.black);g.fillOval(0,0,14,14);

}

public void mousePressed(MouseEvent e)

{if(e.getModifiers()==InputEvent.BUTTON3_MASK)

{chesspad.remove(this);

chesspad.棋子颜色=1;

chesspad.text_2.setText("");chesspad.text_1.setText("请黑棋下子");

}

}

public void mouseReleased(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseClicked(MouseEvent e)

{if(e.getClickCount()=2)

chesspad.remove(this);

}

}

class ChessPoint_white extends Canvas implements MouseListener

{ChessPad chesspad=null;

ChessPoint_white(ChessPad p)

{setSize(20,20);addMouseListener(this);

chesspad=p;

}

public void paint(Graphics g)

{g.setColor(Color.white);g.fillOval(0,0,14,14);

}

public void mousePressed(MouseEvent e)

{if(e.getModifiers()==InputEvent.BUTTON3_MASK)

{chesspad.remove(this);

chesspad.棋子颜色=-1;

chesspad.text_2.setText("请白棋下子");chesspad.text_1.setText("");

}

}

public void mouseReleased(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseClicked(MouseEvent e)

{if(e.getClickCount()=2)

chesspad.remove(this);

}

}

public class Chess extends Frame

{ChessPad chesspad=new ChessPad();

Chess()

{setVisible(true);

setLayout(null);

Label label=new Label("单击左键下子,双击吃子,右击棋子悔棋",Label.CENTER);

add(label);label.setBounds(70,55,440,26);

label.setBackground(Color.orange);

add(chesspad);chesspad.setBounds(70,90,440,440);

addWindowListener(new WindowAdapter()

{public void windowClosing(WindowEvent e)

{System.exit(0);

}

});

pack();setSize(600,550);

}

public static void main (String args[])

{Chess chess=new Chess();

}

}

阿尔法狗 围棋c语言

都没人搭理你,我跟你说说吧。alphaGo里面图形处理用到的是MATLAB。具体怎么实现的要是真有人能回答你就奇怪了。该项目耗费4亿英镑,岂是简简单单几句话就能说明白的。

纯C语言 + Win32 API]一步一步写个围棋程序

这么说吧,首先完整的一个易懂的包基本下不到。另外就算是有,你仍然是看不懂的,那可不是简单的一个Hello World,你没有基础知识,没有遇到过相应的问题你是不会知道为什么要那么做的。人家推荐你写这个,是让你以最终写出围棋程序作为目标,不是让你找个围棋程序看一看就行了。你不是自己从头到尾做的,你是一定不会懂得,一定不会。

其实围棋是个不错的目标,这个是很难很难的,估计你从C语言开始学,得有一年半到两年的苦心学习才能做出来一个可以玩的围棋,这还不包括人机对弈和网络对战。首先围棋的规则你要实现出来,其次如何支持局域网对战?网络又够你学半年(基础)。如何和电脑对战?AI又是个大难点。围棋的AI非常非常难,没有坚实的数据结构和算法的基础和AI相关算法的深刻理解你是写不出来好的AI的。另外为了AI的反应速度加快,你后期可能为了项目的深度会使用多线程减少AI思考的时间等等等等。还有跨平台等等。还有复盘啊,局势判断啊之类的功能。可以扩展的东西非常非常多。所以我说是个很不错的目标。目测没有两年半以上的潜心钻研你是做不出样子的。

怎样?看到我以上说的话,你觉得你从网上下一个什么围棋源码有用吗?里面用到的数据结构和算法你看的懂吗?里面的网络编程你懂吗?里面用到的tricks和优化你懂吗?里面用到的设计模式你懂吗?源码放在你面前你依然不懂。所以不要找了,不要想一步登天。这是很多新手的通病。能静下来心就从基础开始学起,到时候量变产生质变你都不需要问这个问题了,因为你懂得多了你自己就对这些问题有理解了,你再来看你这个问题就会发现自己当初很幼稚了。

所以,学起来吧。善于搜索,善于动手实践,少问,多做。你要真能把一个围棋游戏写的很完善,特别是AI功能和网络对战。那你就能秒杀很多人了。

4条大神的评论

  • avatar
    访客 2022-07-04 上午 09:04:19

    useExited(MouseEvent e){}public void mouseClicked(MouseEvent e){if(e.getClickCount()=2)chesspad.remove(this);}}class ChessPoint_white ext

  • avatar
    访客 2022-07-04 上午 06:38:00

    仍然是看不懂的,那可不是简单的一个Hello World,你没有基础知识,没有遇到过相应的问题你是不会知道为什么要那么做的。人家推荐你写这个,是让你以最终写出围棋程序作为目标,不是让你找个围棋程序看一看就行了。你不是自己从头到尾做的,你是一定不会懂得,一定

  • avatar
    访客 2022-07-04 上午 08:46:06

    getX();y=(int)e.getY();ChessPoint_black chesspoint_black=new ChessPoint_black(this);ChessPoint_white chesspoint_whi

  • avatar
    访客 2022-07-04 上午 10:01:44

    addActionListener(this);add(text_1);text_1.setBounds(90,5,90,24);add(text_2);text_2.setBounds(290,5,90,24);text_1.setEdi

发表评论