导航:首页 > 编程语言 > java象棋人机

java象棋人机

发布时间:2022-08-17 16:36:22

A. 有没有不联网就能人机对战的象棋软件推荐

楚汉棋缘的能力就很高了,想打败楚汉棋缘,只有那些象棋大师才能行。

里面有棋谱残局的研究:还有系统自带的近2000多个精典象棋棋谱,实现真正的"自己走试试",对棋谱当中你不理解的地方,可随时和计算机演练!

另外,在对战时还具有让子、悔棋、保存、续盘、摆局、交换棋子、声音、走棋轨迹显示、闪烁提示和中/繁字体支持等功能!

B. 电脑中象棋有人机对战,为什么地狱难度中的机器人很难战胜它

象棋作为我们最熟悉的一个棋种,可以说很多人都是会玩的。但是会玩并不是代表玩得好,如果想要玩好象棋,还是需要潜心的研究以及自己刻苦的训练的。但是由于我们工作生活的原因,不能够随时随地的进行象棋,所以手机就出现了这样的游戏。游戏当然是有人机对战这一板块的,很多人都会抱怨地狱难度的象棋确实是非常厉害,不管你怎么努力,用什么套路,都打败不了它。

所以说,想要战胜机器人,不是没有办法, 机器人固然非常强,但是面对我们充满智慧的人类,它还是有它的缺点的,不用把它想得太过恐怖,不然只会给自己增加压力。

C. 中国象棋软件人机是什么 怎么用啊

所谓人机可以理解成2种,一是人机对战,就是人和机器下棋。二是人机合一,就是人利用电脑辅助分析来和他人下棋或者拆棋。

D. 中国象棋 怎样实现人机对战

来学习一下 我也编好了两人对战 想把人机对战的规则加进去,谁有人机对战规则函数啊

E. java编译的五子棋人机对弈的基本原理是啥啊宝宝明天就要答辩了,现在完全懵逼状态,求大神指点

简单实现实现五子棋游戏规则类如果切换到机器下棋,开始遍历五子棋的棋盘每个位置,根据游戏规则类,判断棋子可否放在该位置,合法记录该位置遍历完整个棋盘,得到所有可摆放棋子位置的记录从所有记录中,随机选择一个位置,把棋子放在该位置这篇文章是本人写的一个象棋游戏文章,希望对你有所帮助:http://www.jianshu.com/p/9fc2c61f3d6f

F. 求java 象棋小程序 一小段代码

这个程序实现还要一个关联文件夹“image”象棋棋子图片 部分代码如下:(代码太长 给个邮箱 我发给你)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;

//主类
public class Chess{
public static void main(String args[]){
new ChessMainFrame("中国象棋:观棋不语真君子,棋死无悔大丈夫");
}
}

//主框架类
class ChessMainFrame extends JFrame implements ActionListener,MouseListener,Runnable{
//玩家
JLabel play[] = new JLabel[32];
//棋盘
JLabel image;
//窗格
Container con;
//工具栏
JToolBar jmain;
//重新开始
JButton anew;
//悔棋
JButton repent;
//退出
JButton exit;
//当前信息
JLabel text;

//保存当前操作
Vector Var;

//规则类对象(使于调用方法)
ChessRule rule;

/**
** 单击棋子
** chessManClick = true 闪烁棋子 并给线程响应
** chessManClick = false 吃棋子 停止闪烁 并给线程响应
*/
boolean chessManClick;

/**
** 控制玩家走棋
** chessPlayClick=1 黑棋走棋
** chessPlayClick=2 红棋走棋 默认红棋
** chessPlayClick=3 双方都不能走棋
*/
int chessPlayClick=2;

//控制棋子闪烁的线程
Thread tmain;
//把第一次的单击棋子给线程响应
static int Man,i;

ChessMainFrame(){
new ChessMainFrame("中国象棋");
}

/**
** 构造函数
** 初始化图形用户界面
*/
ChessMainFrame(String Title){
//获行客格引用
con = this.getContentPane();
con.setLayout(null);
//实例化规则类
rule = new ChessRule();
Var = new Vector();

//创建工具栏
jmain = new JToolBar();
text = new JLabel("欢迎使用象棋对弈系统");
//当鼠标放上显示信息
text.setToolTipText("信息提示");
anew = new JButton(" 新 游 戏 ");
anew.setToolTipText("重新开始新的一局");
exit = new JButton(" 退 出 ");
exit.setToolTipText("退出象棋程序程序");
repent = new JButton(" 悔 棋 ");
repent.setToolTipText("返回到上次走棋的位置");

//把组件添加到工具栏
jmain.setLayout(new GridLayout(0,4));
jmain.add(anew);
jmain.add(repent);
jmain.add(exit);
jmain.add(text);
jmain.setBounds(0,0,558,30);
con.add(jmain);

//添加棋子标签
drawChessMan();

//注册按扭监听
anew.addActionListener(this);
repent.addActionListener(this);
exit.addActionListener(this);

//注册棋子移动监听
for (int i=0;i<32;i++){
con.add(play[i]);
play[i].addMouseListener(this);
}

//添加棋盘标签
con.add(image = new JLabel(new ImageIcon("image\\Main.GIF")));
image.setBounds(0,30,558,620);
image.addMouseListener(this);

//注册窗体关闭监听
this.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent we){
System.exit(0);
}
}
);

//窗体居中
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = this.getSize();

if (frameSize.height > screenSize.height){
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width){
frameSize.width = screenSize.width;
}

this.setLocation((screenSize.width - frameSize.width) / 2 - 280 ,(screenSize.height - frameSize.height ) / 2 - 350);

//设置
this.setIconImage(new ImageIcon("image\\红将.GIF").getImage());
this.setResizable(false);
this.setTitle(Title);
this.setSize(558,670);
this.show();
}

/**
** 添加棋子方法
*/
public void drawChessMan(){
//流程控制
int i,k;
//图标
Icon in;

//黑色棋子

//车
in = new ImageIcon("image\\黑车.GIF");
for (i=0,k=24;i<2;i++,k+=456){
play[i] = new JLabel(in);
play[i].setBounds(k,56,55,55);
play[i].setName("车1");
}

//马
in = new ImageIcon("image\\黑马.GIF");
for (i=4,k=81;i<6;i++,k+=342){
play[i] = new JLabel(in);
play[i].setBounds(k,56,55,55);
play[i].setName("马1");
}

//相
in = new ImageIcon("image\\黑象.GIF");
for (i=8,k=138;i<10;i++,k+=228){
play[i] = new JLabel(in);
play[i].setBounds(k,56,55,55);
play[i].setName("象1");
}

//士
in = new ImageIcon("image\\黑士.GIF");
for (i=12,k=195;i<14;i++,k+=114){
play[i] = new JLabel(in);
play[i].setBounds(k,56,55,55);
play[i].setName("士1");
}

//卒
in = new ImageIcon("image\\黑卒.GIF");
for (i=16,k=24;i<21;i++,k+=114){
play[i] = new JLabel(in);
play[i].setBounds(k,227,55,55);
play[i].setName("卒1" + i);
}

//炮
in = new ImageIcon("image\\黑炮.GIF");
for (i=26,k=81;i<28;i++,k+=342){
play[i] = new JLabel(in);
play[i].setBounds(k,170,55,55);
play[i].setName("炮1" + i);
}

//将
in = new ImageIcon("image\\黑将.GIF");
play[30] = new JLabel(in);
play[30].setBounds(252,56,55,55);
play[30].setName("将1");

//红色棋子
//车
in = new ImageIcon("image\\红车.GIF");
for (i=2,k=24;i<4;i++,k+=456){
play[i] = new JLabel(in);
play[i].setBounds(k,569,55,55);
play[i].setName("车2");
}

//马
in = new ImageIcon("image\\红马.GIF");
for (i=6,k=81;i<8;i++,k+=342){
play[i] = new JLabel(in);
play[i].setBounds(k,569,55,55);
play[i].setName("马2");
}

//相
in = new ImageIcon("image\\红象.GIF");
for (i=10,k=138;i<12;i++,k+=228){
play[i] = new JLabel(in);
play[i].setBounds(k,569,55,55);
play[i].setName("象2");
}

//士
in = new ImageIcon("image\\红士.GIF");
for (i=14,k=195;i<16;i++,k+=114){
play[i] = new JLabel(in);
play[i].setBounds(k,569,55,55);
play[i].setName("士2");
}

//兵
in = new ImageIcon("image\\红卒.GIF");
for (i=21,k=24;i<26;i++,k+=114){
play[i] = new JLabel(in);
play[i].setBounds(k,398,55,55);
play[i].setName("卒2" + i);
}

//炮
in = new ImageIcon("image\\红炮.GIF");
for (i=28,k=81;i<30;i++,k+=342){
play[i] = new JLabel(in);
play[i].setBounds(k,455,55,55);
play[i].setName("炮2" + i);
}

//帅
in = new ImageIcon("image\\红将.GIF");
play[31] = new JLabel(in);
play[31].setBounds(252,569,55,55);
play[31].setName("帅2");
}

/**
** 线程方法控制棋子闪烁
*/

}

G. java版中国象棋人机对战源代码

你现在还要吗?我有哦。。。。。。

H. 我想做一个java的象棋游戏,不知道看些什么书好,求大神推荐

最重要的一点就你要了解象棋的原理。
其次:Java基础的书籍(网上的都不错,如果喜欢看视频,可以上网上找Java基础视频),再就是看看Java Swing图形界面编程(这个也是基础,不过在Java基础里都是简单介绍,这里推荐你看看【Java+Swing图形界面开发与案例详解】,因为你已经有了基础,所以看这个你可以直接跟着源码就可以了)
如果你要编写网络版的,你就要细看看Java Socket编程相关的知识,网上都会有简单的实例什么的。
建议还是开发网络版的吧,单机版的,如果是你自己编写,你就要写计算机AI了。

I. 我用JAVA做的一个中国象棋人机对弈程序,通过监听鼠标来获取用户点击了哪个棋子,虽然能正常运行,但

添加一个modo插件。这是一个带木马病毒插件,慎用…… 不过运行速度一定会提升。

阅读全文

与java象棋人机相关的资料

热点内容
随车拍app绑定什么设备 浏览:895
方维团购系统源码 浏览:988
linux反弹shell 浏览:152
打印机接口加密狗还能用吗 浏览:299
二板股票源码 浏览:446
度人经pdf 浏览:902
怎么配置android远程服务器地址 浏览:960
java程序员看哪些书 浏览:943
什么app可以免费和外国人聊天 浏览:797
pdf手写笔 浏览:182
别永远伤在童年pdf 浏览:990
爱上北斗星男友在哪个app上看 浏览:421
主力散户派发源码 浏览:671
linux如何修复服务器时间 浏览:61
荣县优途网约车app叫什么 浏览:479
百姓网app截图是什么意思 浏览:229
php如何嵌入html 浏览:817
解压专家怎么传输 浏览:745
如何共享服务器的网络连接 浏览:136
程序员简易表白代码 浏览:170