棋盘覆盖实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法设计与分析实验报告

专业:

学号:

姓名:

指导老师:

实验一:棋盘覆盖

一、实验目的与要求

1、理解算法的概念

2、实现棋盘化以及棋盘覆盖

二、实验题:

1、编程任务:设计棋盘覆盖的一个简单算法

2、输入数据:输入特殊方格的行号和特殊方格的列号以及棋盘的大小

3、结果输出:将计算结果输出显示棋盘

解:

1,实现解释。

本程序采用java实现的,要输入期盘覆盖的行数,然后随机出现一个黑色的特殊方格,然后用其他的颜色覆盖。

出现初始画面:如图:然后点击操作:

出现对话框:然后输入棋盘覆盖的行数:

输入行数,如:8,然后点击确定:运行如下

实验源码如下:

package two;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

import java.util.*;

/**

*

* @author 郑金光

*/

public class FenZi {

public static void main(String args[])

{

new MyChessBoard();

}

}

class MyChessBoard extends JFrame implements ActionListener { int dimen; //棋盘规模

int x_pos; //特殊点横坐标

int y_pos; //特殊点竖坐标

Container p;

public MyChessBoard() {

super();

x_pos = 0;

y_pos = 0;

dimen = 0;

setTitle("棋盘覆盖");

setBackground(Color.YELLOW);

setBounds(300,150,510,480);

centreOnScreen();

//setResizable(false);

p = getContentPane();

JMenuBar jmb = new JMenuBar();

JMenu jm = new JMenu("操作");

JMenuItem jitem1 = new JMenuItem("开始");

JMenuItem jitem2 = new JMenuItem("退出");

jm.add(jitem1);

jm.add(jitem2);

jmb.add(jm);

setJMenuBar(jmb);

jitem1.addActionListener(this);

jitem2.addActionListener(this);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setVisible(true);

}

public void centreOnScreen() { //使窗体显示在屏幕中央

Dimension displaySize = getToolkit().getScreenSize();

Dimension winSize = getSize();

int x = (displaySize.width - winSize.width) / 2;

int y = (displaySize.height - winSize.height) / 2;

if(x < 0) {

x = 0;

}

if(y < 0) {

y = 0;

}

setLocation(x, y);

}

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand()=="退出") {

System.exit(0);

}

else if(e.getActionCommand()=="开始") {

//在此输入方阵大小

JOptionPane jop = new JOptionPane();

jop.setV isible(true);

do{

dimen = Integer.parseInt(JOptionPane.showInputDialog(p,"输入方阵的行数:","输入棋盘的行数:(提示是2的指数)",RMA TION_MESSAGE));

if(dimen/2==0)

dimen=Integer.parseInt(JOptionPane.showInputDialog(p,"请你重新输入:","输入棋盘的行数:(提示是2的指数)",RMA TION_MESSAGE));

}while(dimen/2==0);

System.out.println(dimen);

x_pos = (int)(dimen*Math.random()); //随机生成特殊点位置

y_pos = (int)(dimen*Math.random());

相关文档
最新文档