| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11274 人关注过本帖
标题:[原创]一个五子棋程序
取消只看楼主 加入收藏
jellen
Rank: 1
等 级:新手上路
威 望:1
帖 子:107
专家分:0
注 册:2004-5-3
收藏
 问题点数:0 回复次数:3 
[原创]一个五子棋程序

刚刚到Java GUI版报告,给大家贴一个我写的五子棋程序。这里重点是关注Java GUI的设计,所以程序只能人和人走(就是没有智能:),不过大家可以看看,做个参考:

程序代码:

/* * filename: Game.java * * author: jellen * */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.awt.geom.*; import java.util.*;

class PaintPanel extends JPanel { ArrayList Items = new ArrayList();

public PaintPanel() { setLayout(new BorderLayout()); ButtonPanel buttonPanel = new ButtonPanel(); add(buttonPanel, BorderLayout.SOUTH); addMouseListener(new MouseHandler()); }

public void paintComponent(Graphics g) { int startX = 50; int startY = 50; boolean isMy = false; super.paintComponent(g); Graphics2D g2 = (Graphics2D)g;

for(int i=0; i<16; i++) { g2.draw(new Line2D.Double(startX, startY+20*i, startX+300, startY+20*i)); g2.draw(new Line2D.Double(startX+20*i, startY, startX+20*i, startY+300)); } for(int i=0; i<Items.size(); i++) { isMy = !isMy; if(isMy) g2.setColor(Color.BLACK); else g2.setColor(Color.WHITE); g2.fill((Ellipse2D)Items.get(i)); } } void myRepaint() { repaint(); } private class MouseHandler extends MouseAdapter { public void mousePressed(MouseEvent event) { int x = event.getX(); int y = event.getY(); paintItem(x, y); repaint(); } void paintItem(int x, int y) { if(x > 50 && x < 350 && y >50 && y < 350) { int X = x / 20; int Y = y / 20; int centerX = X*20 + 10; int centerY = Y*20 + 10; Ellipse2D ellipse = new Ellipse2D.Double(); ellipse.setFrameFromCenter(centerX, centerY, centerX+8, centerY+8); Items.add(ellipse); } } } private class ButtonPanel extends JPanel { public ButtonPanel() { JButton reset = new JButton(\"Reset\"); add(reset); JButton quit = new JButton(\"Quit\"); add(quit);

ResetEvent listenerR = new ResetEvent(); reset.addMouseListener(listenerR); QuitEvent listenerQ = new QuitEvent(); quit.addMouseListener(listenerQ); }

private class QuitEvent extends MouseAdapter { public void mouseClicked(MouseEvent event) { System.exit(1); } }

private class ResetEvent extends MouseAdapter { public void mouseClicked(MouseEvent event) { Items.clear(); myRepaint(); } } } }

class GameFrame extends JFrame { public GameFrame() { setTitle(\"A Little Game\"); setSize(400, 500); setResizable(false);

PaintPanel panel = new PaintPanel(); getContentPane().add(panel); } } public class Game { public static void main(String[] args) { GameFrame frame = new GameFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.show(); } }

搜索更多相关主题的帖子: 五子棋 
2004-06-17 19:13
jellen
Rank: 1
等 级:新手上路
威 望:1
帖 子:107
专家分:0
注 册:2004-5-3
收藏
得分:0 
呵呵,现丑了。谢谢楼上两位的鼓励!
只是胡乱贴几个以前的程序,想提高论坛的人气。

再见,理想!
2004-06-20 09:00
jellen
Rank: 1
等 级:新手上路
威 望:1
帖 子:107
专家分:0
注 册:2004-5-3
收藏
得分:0 
要完成”五子棋“的人工智能部分如果自己重新来写,要花很多时间,如果利用现成的算法的算法应该不难:)

我的目的是学习Java Swing编程,所以不打算写算法了。(网上有五子棋的例子)


再见,理想!
2004-07-26 18:43
jellen
Rank: 1
等 级:新手上路
威 望:1
帖 子:107
专家分:0
注 册:2004-5-3
收藏
得分:0 

Y08tkYnJ.rar (2.06 KB) [原创]一个五子棋程序

呵呵,应大家的要求,我改进了这个五子棋程序,修复了可以覆盖以前棋子的Bug,并且加入了判断输赢的模块。

现在这个程序终于有了一点可玩性,大家可以看看:)


再见,理想!
2004-11-28 21:52
快速回复:[原创]一个五子棋程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018480 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved