「javawuziqi」java五子棋课程设计报告

博主:adminadmin 2023-03-19 12:15:06 520

本篇文章给大家谈谈javawuziqi,以及java五子棋课程设计报告对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java五子棋怎么画ER图

先画正方形,然后画两条对折线完成。

第一步、我们先来画一画五子棋的棋盘,画出一个棋盘,画一个四方形。

第二步、接着我们画一画棋盘的棋盘格,横横竖竖的横要平,竖要直溜溜。

第三步、接着我们画出棋盘里面的棋子,黑色和白色的棋子就完成啦。

JAVA五子棋中如何实现重新开始和悔棋的功能

一般来说是不应该像你这样写的,应该是把要画的步骤写在组件的被覆写的paintComponent函数里,然后在你响应事件的函数里直接掉用该组件的repaint()函数即可。repaint函数是会去掉该组件的paintComponent()函数的。至于你这么写为啥不行,这个我也不清楚,据我猜测,repaint函数要做的事情是刷新组件,并且重新去画一遍,不过这个步骤不一定是立即完成,可能有延迟。总之在你画那些棋子之后,它又干了一些事情,导致你画的棋子没了(但这不会影响到它自己想去画的东西,即paintComponent()函数里的东西),另外不要忘了,覆写paintComponent时,第一行要写,super.paintComponent(g),这是去画它原来有的东西(比如加上去的按钮,文本框之类的东西)

例如下面:

12345678910111213141516171819202122232425262728293031323334353637class PanelM extends JPanel{ ImageIcon icon = new ImageIcon("app.gif"); JLabel jl = new JLabel(icon, SwingConstants.CENTER); int x, y; private ListInteger listX = new ArrayListInteger(); private ListInteger listY = new ArrayListInteger(); public PanelM() { add(jl); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent m) { x = m.getX(); y = m.getY(); listX.add(x); listY.add(y); repaint(); } }); } public void paintComponent(Graphics g) { super.paintComponent(g); for (int i = 0; i listX.size(); i++) { g.fillOval(listX.get(i), listY.get(i), 20, 20); } }}

JAVA五子棋判断输赢

import java.awt.*;

import javax.swing.*;

public class ChessFrame extends JFrame{

private ChessPanel cp;

private ChessModel cm;

public ChessFrame(){

this.setTitle("五子棋");

cm=new ChessModel();

cp=new ChessPanel(cm);

this.add(cp);

}

public void showMe(){

this.setVisible(true);

this.setSize(480,400);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

new ChessFrame().showMe();

}

}

----------------------------------------

import javax.swing.*;

public class ChessModel {

private int width,height;

private int x=0,y=0;

private int [][] arrMapShow;

private boolean isOdd,isExist;

public ChessModel(){

this.isOdd=true;

PaneInit(20,15);

}

private void PaneInit(int width,int height){

this.width=width;

this.height=height;

arrMapShow=new int[width+1][height+1];

for(int i=0;i=width;i++){

for(int j=0;jheight+1;j++){

arrMapShow[i][j]=5;

}

}

}

public int getWidth() {

return width;

}

public void setWidth(int width) {

this.width = width;

}

public int[][] getArrMapShow() {

return arrMapShow;

}

public void setArrMapShow(int[][] arrMapShow) {

this.arrMapShow = arrMapShow;

}

public int getHeight() {

return height;

}

public void setHeight(int height) {

this.height = height;

}

public int getX() {

return x;

}

public void setX(int x) {

this.x = x;

}

public int getY() {

return y;

}

public void setY(int y) {

this.y = y;

}

public boolean getisOdd() {

return isOdd;

}

public void setisOdd(boolean isOdd) {

if(isOdd)

this.isOdd = true;

else

this.isOdd=false;

}

public boolean isExist() {

return isExist;

}

public void setExist(boolean isExist) {

this.isExist = isExist;

}

private boolean badxy(int x,int y){

if(x=width+20||x0)

return true;

return y=height+20||y0;

}

public boolean chessExist(int i,int j){

if(this.arrMapShow[i][j]==1||this.arrMapShow[i][j]==2)

return true;

return false;

}

public void redyplay(int x,int y){

if(badxy(x,y))

return;

if(chessExist(x,y))

return;

this.arrMapShow[x][y]=3;

}

public void play(int x,int y){

if(badxy(x,y))

return;

if(chessExist(x,y)){

this.isExist=true;

return;

}else

this.isExist=false;

if(getisOdd()){

setisOdd(false);

this.arrMapShow[x][y]=1;

}else{

setisOdd(true);

this.arrMapShow[x][y]=2;

}

}

//判断胜利的条件

public boolean judgeSuccess(int x,int y,boolean isodd){

int num=1;

int arrvalue;

int x_temp=x,y_temp=y;

if(isodd)

arrvalue=2;

else

arrvalue=1;

int x_temp1=x_temp,y_temp1=y_temp;

//判断右边

for(int i=1;i=6;i++){

x_temp1+=1;

if(x_temp1this.width)

break;

if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)

num++;

else

break;

}

//判断左边

x_temp1=x_temp;

for(int i=1;i=6;i++){

x_temp1-=1;

if(x_temp10)

break;

if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)

num++;

else

break;

}

if(num==5)

return true;

//判断上方

x_temp1=x_temp;

y_temp1=y_temp;

num=1;

for(int i=1;i=6;i++){

y_temp1-=1;

if(y_temp10)

break;

if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)

num++;

else

break;

}

//判断下方

y_temp1=y_temp;

for(int i=1;i=6;i++){

y_temp1+=1;

if(y_temp1this.height)

break;

if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)

num++;

else

break;

}

if(num==5)

return true;

//判断左上

x_temp1=x_temp;

y_temp1=y_temp;

num=1;

for(int i=1;i=6;i++){

x_temp1-=1;

y_temp1-=1;

if(y_temp10 || x_temp10)

break;

if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)

num++;

else

break;

}

//判断右下

x_temp1=x_temp;

y_temp1=y_temp;

for(int i=1;i=6;i++){

x_temp1+=1;

y_temp1+=1;

if(y_temp1this.height || x_temp1this.width)

break;

if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)

num++;

else

break;

}

if(num==5)

return true;

//判断右上

x_temp1=x_temp;

y_temp1=y_temp;

num=1;

for(int i=1;i=6;i++){

x_temp1+=1;

y_temp1-=1;

if(y_temp10 || x_temp1this.width)

break;

if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)

num++;

else

break;

}

//判断左下

x_temp1=x_temp;

y_temp1=y_temp;

for(int i=1;i=6;i++){

x_temp1-=1;

y_temp1+=1;

if(y_temp1this.height || x_temp10)

break;

if(this.arrMapShow[x_temp1][y_temp1]==arrvalue)

num++;

else

break;

}

if(num==5)

return true;

return false;

}

//五子成线后的提示

public void showSuccess(JPanel jp){

JOptionPane.showMessageDialog(jp,"你赢了,好厉害!","win",

JOptionPane.INFORMATION_MESSAGE);

new ChessFrame().showMe();

}

}

----------------------

import java.awt.*;

import java.awt.event.*;

import javax.swing.JPanel;

public class ChessPanel extends JPanel {

private int width, height;

private ChessModel cm;

public ChessPanel(ChessModel mm) {

cm = mm;

width = cm.getWidth();

height = cm.getHeight();

addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent e) {

int x=(e.getX()-10)/20;

int y=(e.getY()-10)/20;

cm.play(x,y);

repaint();

if(cm.judgeSuccess(x,y,cm.getisOdd())){

cm.showSuccess(null);

}

}

});

}

public void paintComponent(Graphics g){

super.paintComponent(g);

for(int j=0;j=height;j++){

for(int i=0;iwidth;i++){

int v=cm.getArrMapShow()[i][j];

draw(g,i,j,v);

}

}

}

public void setModel(ChessModel mm){

cm=mm;

width=cm.getWidth();

height=cm.getHeight();

}

public void draw(Graphics g,int i,int j,int v){

int x=20*i+20;

int y=20*j+20;

if(i!=widthj!=height){

g.setColor(Color.black);

g.drawRect(x, y, 20, 20);

}

if(i!=widthj!=height){

g.setColor(Color.black);

g.drawRect(x, y, 20, 20);

}

if(v==1){

g.setColor(Color.gray);

g.drawOval(x-8, y-8, 16, 16);

g.setColor(Color.black);

g.fillOval(x-8, y-8, 16, 16);

}

if(v==2){

g.setColor(Color.gray);

g.drawOval(x-8, y-8, 16, 16);

g.setColor(Color.white);

g.fillOval(x-8, y-8, 16, 16);

}

if(v==3){

g.setColor(Color.cyan);

g.drawOval(x-8, y-8, 316, 16);

}

}

}

三个类,可以直接使用了

五子棋盘怎么画?

问题一:五子棋盘的规格是怎样的? “下棋者面对的棋盘的纵线长2.5*14cm、横线长2.4*14cm”这是对的。因为这样规格的棋盘看起来最舒服,是从人的视觉考虑的。这种方形棋盘长2.5*14+2*2=39厘恭,宽2.4*14+2*2=37.6厘米。

问题二:五子棋棋盘怎么画 横线竖线垂直相交,就是画方格,数量多多宜善。

问题三:五子棋棋盘以及下子 怎么画 都是正方形方格,越多越好

问题四:五子棋的棋盘怎么画 都是正方形方格,越多越好

问题五:五子棋棋盘以及下子 怎么画 如果是用画的方式下子,那么建议16横16竖,围成225个格子,并且标识上横坐标ABCD纵坐标1234,类似第一象限

问题六:请问要用MFC做五子棋游戏,在对话框中画出棋盘要怎么做? 对话框画棋盘 不就是划线吗.。不要告诉我你不知道怎么划线啊!!!

onpaint函数里画线。(横竖方向 for循环 划线操作)

问题七:怎样用C画五子棋棋盘 画图的函数:line(a,a,b,b)可以画线。

楼主就知道这一个函数。。。

这个得查函数,定义图形中点的问题我也不会

这个好像有点用:

getpixel

原型:extern int getpixel(int x, int y);

用法:#include

功能:返回屏幕上指定点的状态

说明:(x,y)为屏幕上点的坐标,如果点为清除状态返回零,否则返回非零值。

举例:

pixel.c

#include

main()

{

int i,j;

clrscr();

printf(V);

gotoxy(10,10); Hide cursor

for(i=0;i

功能:在屏幕的指定位置上画点

说明:(x,y)为屏幕上点的坐标,mode值含义如下:

mode=0:清除(x,y)处的点

1:在(x,y)处画点

2:将(x,y)处的点的状态取反

举例:

pixel.c

#include

main()

{

int i,j;

clrscr();

printf(V);

gotoxy(10,10); Hide cursor

for(i=0;i库里,引用的时候必须在开头注明。

再给lz一个示范吧:贪吃蛇。我现在手头就这一个了。

#define N 200

#include

#include

#include

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

int i,key;

int score=0;/*得分*/

int gamespeed=500000;/*游戏速度自己调整*/

struct Food

{

int x;/*食物的横坐标*/

int y;/*食物的纵坐标*/

int yes;/*判断是否要出现食物的变量*/

}food;/*食物的结构体*/

struct Sna......

问题八:五子棋的棋盘怎么绘制 五子棋的棋盘就是方格,用笔后和尺子绘制,如果是在绘图软件里用直线工具,借助标尺就可以绘制了。格子的大小,略大于棋子的大小即可。一般横竖都有20来格就可以了,适当多点更好。

希望采纳。

问题九:怎样用Java绘制五子棋的棋盘 for (int i = 0 ; i 问题十:就是用java,用划线的方法画出一个14*14的五子棋盘,只用画格子就可以了 代码如下:

package .lijie.test;

import java.awt.Graphics;

import java.awt.Point;

import javax.swing.JFrame;

public class JFrameTestor extends JFrame {

public JFrameTestor() {

setSize(480, 320);

setLocation(new Point(400, 150));

setVisible(true);

setResizable(false);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

new JFrameTestor();

}

public void paint(Graphics g) {

for(int i = 30; i

关于javawuziqi和java五子棋课程设计报告的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。