1.java设计中国象棋课程设计怎么做
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。
2.求关于中国象棋的开题报告、结题报告、论文
这个很简单,论述一个布局定式的发展就行,我很轻松就能写一篇,呵呵,现写都行。
随便说说都可以,比如中炮过河车对屏风马,你就可以说,最早,红方过河车平炮对车以后都是走炮八平七,而当时黑方没有发现马3退5的反击招法,所以一时吃亏很大。以至于很多当时的棋手第二步被迫走卒7进1,然后红方出车赶紧炮8进2顶上,形成不出车的河口炮阵型。
但是这种阵型经过演变,也被认为略感消极,理由是红方还没有进车巡河,你就走河口炮,没有什么针对性。红方可以车二进一,灵活调整阵型,黑方难免落后手。
后来之所以黑方又敢走平跑对车了,就是因为我刚才说的,找到了马3退5这样的手段。因此红方发现炮八平七很难找到便宜了,于是七路马又成为了主流,。
之后又出现了炮击中卒,边跑出击,盘河马等等功法,一般可以小持先手,多赚几个兵,为残局做铺垫,而黑方在红方右侧也有很多的反击机会,阵型开扬,双方各攻一翼,互有机会。局面一般会非常精彩。
你还可以提到黑方还有高车保马这样一个体系,这和我刚才说的也有联系,就是当时黑方主要两种奏法就是河口炮和高车保马,对于高车保马红方开始也有走炮八平七的,黑方对此有炮2退1,然后如果红方进七兵,黑就有不予理睬,走车8进8然后双炮强行打红方底象的反击。 一时间红方找不到应对办法,也是吃亏很大。
但后来随着布局的发展,红方也发现了好的应法——先马三退五,就能够有效抑制黑方这种攻势,那黑方以后也就不敢这么走了。所以你看象棋很有意思。
简单的窝心马,你可能会说“很容易想到”,其实不是那么回事,布局的发展是一个漫长的过程,是几代棋手在实战中总结成精华的,大浪淘沙,每种走法能够经得起考考验,都是对各种变化演练了无数次才得出的结论。 因此,在现代中炮过河车对屏风马布局中。
一般认为平跑对车好于高车保马,因为黑方反击速度会比较快,阵型容易开展。也就成为主流。
看成不成一篇论文了哈?这些你都可以写嘛。希望能给你提供个借鉴。
3.java设计中国象棋课程设计怎么做
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。
4.求关于中国象棋的开题报告、结题报告、论文
这个很简单,论述一个布局定式的发展就行,我很轻松就能写一篇,呵呵,现写都行。
随便说说都可以,比如中炮过河车对屏风马,你就可以说,最早,红方过河车平炮对车以后都是走炮八平七,而当时黑方没有发现马3退5的反击招法,所以一时吃亏很大。以至于很多当时的棋手第二步被迫走卒7进1,然后红方出车赶紧炮8进2顶上,形成不出车的河口炮阵型。
但是这种阵型经过演变,也被认为略感消极,理由是红方还没有进车巡河,你就走河口炮,没有什么针对性。红方可以车二进一,灵活调整阵型,黑方难免落后手。
后来之所以黑方又敢走平跑对车了,就是因为我刚才说的,找到了马3退5这样的手段。因此红方发现炮八平七很难找到便宜了,于是七路马又成为了主流,。
之后又出现了炮击中卒,边跑出击,盘河马等等功法,一般可以小持先手,多赚几个兵,为残局做铺垫,而黑方在红方右侧也有很多的反击机会,阵型开扬,双方各攻一翼,互有机会。局面一般会非常精彩。
你还可以提到黑方还有高车保马这样一个体系,这和我刚才说的也有联系,就是当时黑方主要两种奏法就是河口炮和高车保马,对于高车保马红方开始也有走炮八平七的,黑方对此有炮2退1,然后如果红方进七兵,黑就有不予理睬,走车8进8然后双炮强行打红方底象的反击。一时间红方找不到应对办法,也是吃亏很大。
但后来随着布局的发展,红方也发现了好的应法——先马三退五,就能够有效抑制黑方这种攻势,那黑方以后也就不敢这么走了。所以你看象棋很有意思。
简单的窝心马,你可能会说“很容易想到”,其实不是那么回事,布局的发展是一个漫长的过程,是几代棋手在实战中总结成精华的,大浪淘沙,每种走法能够经得起考考验,都是对各种变化演练了无数次才得出的结论。因此,在现代中炮过河车对屏风马布局中。
一般认为平跑对车好于高车保马,因为黑方反击速度会比较快,阵型容易开展。也就成为主流。
看成不成一篇论文了哈?这些你都可以写嘛。希望能给你提供个借鉴。
5.基于Java的中国象棋游戏软件,可以用哪些免费的软件测试工具进行性
1. jtest是parasoft公司推出的一款针对javajavajavajava语言的自动化自动化自动化自动化白盒测试工具工具工具工具,它通过自动实现java的单元测试单元测试单元测试单元测试和代码代码代码代码标准校验,来提高代码的可靠性。Jtest先分析分析分析分析每个java类,然后自动生成junit测试用例用例用例用例并执行用例,从而实现代码的最大覆盖,并将代码运行时未处理的异常暴露出来;另外,它还可以检查以DbC(Design by Contract)规范开发开发开发开发的代码的正确性。用户还可以通过扩展测试用例的自动生成器来添加更多的junit用例。Jtest还能按照现有的超过350个编码标准来检查并自动纠正大多数常见的编码规则上的偏差,用户可自定义这些标准,通过简单的几个点击,就能预防类似于未处理异常、函数错误、内存泄漏、性能性能性能性能问题、安全安全安全安全隐患这样的代码问题。
2.JMeter是Apache组织的开放源代码项目项目项目项目,它是功能功能功能功能和性能测试性能测试性能测试性能测试的工具,100%的用java实现。使用JMeter进行性能测试
3. JUnit是一个开源的java测试框架,它是Xuint测试体系架构的一种实现。在JUnit单元测试框架的设计时,设定了三个总体目标,第一个是简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写;第二个是使测试单元保持持久性;第三个则是可以利用既有的测试来编写相关的测试。
6.求关于象棋研究的一篇文章选修课选的象棋研究其实就是最基本的象棋
]《棋经论》 :em16: V1@+vsJ[ 夫弈棋者要专心绝虑,静算待敌,坦然无喜怒挂怀。
\HK:vV"E1a 大抵一局之中,千变万化。 j c[H c^P_u 如车前马后;发炮逐卒;如电掣雷轰,炮铺卒行,逼近士象,如狼奔虎跃。
NQts/i u 顺手炮先要活车;列手炮补士要牢;入角炮急使车冲; H}z!Pm~ 当头炮横车将路;破象局中心进卒;解马局车炮先行; 9H7hX!fZ3x1R 巡河车赶子有功;归心炮破象得法;辘轳炮抵敌最妙;重叠车兑子偏宜。 |bJn-_;d%t+r 马飞过角,车便巡河。
%ai9HO,X#Kn2yt [ 未得路莫离本位,已得势便可争先。 !vY#R%Bfx 鸳鸯马内顾保塞;蟹眼炮两岸拦车,骑河车禁子有力;两肋车助卒过河。
a&fJ uX2I%gKK9N 正补士等他车路;背立将忌炮来攻。 -@*SaSAwV X G 我势弱勿轻进;彼势强拼便攻。
mG@(@#Wo_,u*O 弃子须要得先;捉子莫教输手。 E0ei|rq(OX7K@ 急赶将有后着可行;慢入悻无内(纳)子宜动。
o#F+dyt)Fq 士象全或可求和;士象亏兑他车卒。 L4Rev(Z5p| 算隐着要成杀局,使急着恐悻不完。
4d Z+cC3i6K;H y 得先时切忌着忙;输棋时还叫心定。 iW/PIXy 子力猛局中寻胜;子力宽即便寻和。
。t)T1Hkz 学者详察于斯言,可为国手矣!-BU;\/L+_G ---------------------- 象棋?v史 博弈 博弈一词最早?於《?语》「子曰:?食终日,?o所用心,难矣哉,不有博弈者乎? ?橹q贤乎已」,博弈均是小道游?颍?然亦有人抓著「?橹q贤乎已」的「贤」字,?椴┺臓?一地位。
博和弈其??是??雍懿煌耐嫠?,博指的是六博,指一些骰?颍黄?颍?颍且恍Y运?獾倪[?颍腥苏J?樗闶乾F今?博的先祖,相反,弈是?澹ㄡ?戆ㄏ笃澹且环N斗智的游?颉6?恍?髡f显示,弈比博的?v更更悠久,西?x??华《博物志》说:「?蛟?澹越套拥ぶ臁梗梢酝?y弈??樯瞎诺漠a物。 ??б惶幔?r《楚辞》有云「?蔽象棋」,《说苑》中也有云「燕?t斗象棋而舞?女」,句中之象棋只是是象牙造的棋子,仍是六博之流而已,后?砟媳背幸灿邢笃逡辉~,又称象?颍@里的「象」?t指天象和物象了,而现在的象棋中的象指的其??是?鹣蟆? 棋?? 马飞过角,?便巡河。
未得路莫离本位,已得?荼憧蔂?先。鸳?马,?阮?保塞,骑河炮,河岸?r?,骑河?,禁子得力,?衫哕?,助卒过河,正补士,等他?路,背立?ⅲ膳?砉ァN?萑跷疠p进,彼?????便攻。
子?要得先,捉子莫教?手。急??⒂泻笾尚校脬?o?茸右?印J肯笕»蚩汕蠛停肯?o?端?卒。
算隐著,要成?⒕郑辜敝帚煌辍5孟?r,切忌著忙;?棋?r,?叫定心。子力猛,局中??伲蛔恿??,即便求和。
?手炮,列手炮,补士要牢;士角炮,急使??_;?头炮,?M??⒙罚黄葡缶郑行倪M卒;解马局,?炮先行;巡河?,赶子有功;?w心炮,破象得法;辘轳炮,抵?匙蠲睿恢丿B?,?蹲幼钜恕? 夫弈棋者,要?P摹⒔^?],静算待?常谷?o喜怒??选4蟮忠痪种校ё?万化。 如?前马后,发炮逐卒,如?掣雷轰,炮?卒行,逼近士、象,如狼奔虎跃。
适情雅趣 ?手炮先要?活,列手炮?补士牢,?头炮?M??⒙罚葡缶种凶浔剡M,??子?要得先,捉子莫教落后,士象全可去马兵,士象??端?卒,算隐著要成?⒕郑辜敝?有?樱恿??必?求?伲恿θ跫幢?ず汀? ======================= 马兵攻士象全 “马兵攻士象全”是古今棋手讨论的课题,经过近现代棋手们的研究和探索,找到了和棋的方法,甚至发现了很多微妙的巧胜局。 马兵难胜士象全 如图形势,是黑方防守得法成和的定式。
着法红先: 1.兵三进一将6退1 2.帅五进一象5进7 3.马五进三象3退1! 退边象是求和的关键着法。如误走象3退5(或象7退5),则兵三平四,将6平5,马三退五,红方可胜。
4.兵三平四将6平5 5.马三退五士5退6 6.帅五平六士4进5 7.马五退七象1进3 8.马七退八象7退5 9.帅六退一士5进4! 正着。如误走象5进7,则马八进九,象7退5,马九进八,黑失士,红胜。
10.帅六进一士4退5 11.马八进九士5进4 12.马儿进八将5平4 13.帅六退一象5进7 14.马八退七将4平5 15.马七进五士4退5 16.帅六进一象7退5 和。 红方无法取胜。
=========================== 。
7.如何用java swing 实现中国象棋的棋盘
package com.fzhw.app;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.HeadlessException;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Xiangqi extends JFrame{
private static final long serialVersionUID = 1;
public Xiangqi() throws HeadlessException {
super();
setTitle("my board");
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(new Board(), BorderLayout.CENTER);
this.setSize(960, 960);
this.(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
new Xiangqi().setVisible(true);
}
}
class Board extends JPanel{
private static final long serialVersionUID = 1L;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d=(Graphics2D)g;
int width=this.getWidth();
int height=this.getHeight();
int hGap=height/9;
int wGap=width/8;
for(int i=0;i<10;i++){
g2d.drawLine(0, i*hGap, width, i*hGap);
}
for(int i=0;i<9;i++){
g2d.drawLine(i*wGap, 0, i*wGap, 4*hGap);
g2d.drawLine(i*wGap, 5*hGap, i*wGap, height);
}
g2d.drawString("楚河 汉界", width/2, height/2);
g2d.drawLine(3*wGap, 0, 5*wGap, 2*hGap);
g2d.drawLine(5*wGap, 0, 3*wGap, 2*hGap);
g2d.drawLine(3*wGap, height, 5*wGap, height-2*hGap);
g2d.drawLine(3*wGap, height-2*hGap, 5*wGap, height);
g2d.dispose();
}
}
两种选择,第一,你用一个背景图片来充当欺骗,落子位置的在panel上转化,楚河汉界不用管,两边是对称的。
第二种,用Graphics2D自己draw line。
我给你写好了,但是10分太少,不想给啊
转载请注明出处众文网 » java中国象棋毕业论文