「javawuziqi」java五子棋课程设计报告
本篇文章给大家谈谈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五子棋课程设计报告的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。