弱者的五子棋

编程入门 行业动态 更新时间:2024-10-25 08:14:57

<a href=https://www.elefans.com/category/jswz/34/1680009.html style=弱者的五子棋"/>

弱者的五子棋

那天看见yangtuo做了个 五子棋 心血来潮也写了个五子棋 ,用了他给我的图片!(注意是java写的,未完成的部分——————人机、联网 如有大神喜欢可以拿去完成接下来的部分 欢迎大家自己写 自己玩)(如果有bug也可以说。。。。)


package com.game;
import java.awt.*;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
public class wuziqi extends JFrame implements MouseListener {int x=0;int y=0;int [][]ans=new int [19][19];boolean iswhat=true;boolean isrun=true;private Image iBuffer;  private Graphics gBuffer;public wuziqi(){int width=Toolkit.getDefaultToolkit().getScreenSize().width;int height=Toolkit.getDefaultToolkit().getScreenSize().height;this.setTitle("五子棋");this.setSize(500, 500);this.setResizable(false);this.setLocation((width-400)/2,(height-300)/2);this.addMouseListener(this);this.setVisible(true);this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);}public void paint(Graphics g)//整个paint类实现重写 并使用双缓冲技术防止闪屏{if(iBuffer==null)  {  iBuffer=createImage(this.getSize().width,this.getSize().height);  gBuffer=iBuffer.getGraphics();  } BufferedImage image=null;try {image=ImageIO.read(new File("F:/qwe.jpg"));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}gBuffer.drawImage(image,0,20,this);//以上的部分是为了实现将图片放在放在jframe这个容器中for(int i=0;i<19;i++){gBuffer.drawLine(10,70+20*i,370,70+20*i);gBuffer.drawLine(10+20*i,70,10+20*i,430);}gBuffer.fillOval(68,128,4,4);gBuffer.fillOval(308,12,4,4);//(重复设置圆点)Font font=new Font("",1,20);gBuffer.setFont(font);if(iswhat)gBuffer.drawString("现在轮到黑方", 120, 60);elsegBuffer.drawString("现在轮到白方", 120, 60);for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(ans[i][j]==1){int tempx=i*20+10;int tempy=j*20+70;gBuffer.fillOval(tempx-7, tempy-7, 14, 14);}if(ans[i][j]==2){int tmpx=i*20+10;int tmpy=j*20+70;gBuffer.setColor(Color.WHITE);gBuffer.fillOval(tmpx-7, tmpy-7, 14, 14);gBuffer.setColor(Color.BLACK);gBuffer.drawOval(tmpx-7, tmpy-7, 14, 14);}}}g.drawImage(iBuffer, 0, 0, this);}public void update(Graphics g)//也是双缓冲的一部分{paint(g);}@Overridepublic void mouseClicked(MouseEvent arg0) {//把键的位置范围确定下来然后实现某个功能 ,我有一些没看到所以没实现// TODO Auto-generated method stubif(arg0.getX()>=400&&arg0.getX()<=470&&arg0.getY()>=320&&arg0.getY()<=350){JOptionPane.showMessageDialog(this, "made by yangtuo");}if(arg0.getX()>=400&&arg0.getX()<=470&&arg0.getY()>=370&&arg0.getY()<=400){System.exit(0);}if(arg0.getX()>=400&&arg0.getX()<=470&&arg0.getY()>=170&&arg0.getY()<=200){JOptionPane.showMessageDialog(this, "只要某一方连续的五个棋子出现就为赢 ");}if(arg0.getX()>=400&&arg0.getX()<=470&&arg0.getY()>=270&&arg0.getY()<=300){int n = JOptionPane.showConfirmDialog(this, "你确定要结束游戏吗?", "标题",JOptionPane.YES_NO_OPTION);if(n==0){isrun=false;}}}@Overridepublic void mouseEntered(MouseEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void mouseExited(MouseEvent arg0) {// TODO Auto-generated method stub}@Overridepublic void mousePressed(MouseEvent arg0) {//这个是确定鼠标点击的位置在哪里// TODO Auto-generated method stubx=arg0.getX();y=arg0.getY();System.out.println(x+" "+y);if(x>=10&&x<=370&&y>=70&&y<=430&&isrun==true){x=(x-10)/20;y=(y-70)/20;//System.out.println(x+" "+y);if(ans[x][y]==0){if(iswhat==true){ans[x][y]=1;iswhat=false;}else if(iswhat==false){ans[x][y]=2;iswhat=true;}//System.out.println(ans[x][y]);}else{JOptionPane.showMessageDialog(this, "对不起这里已经有棋子了");}if(judge1(x,y)==1){JOptionPane.showMessageDialog(this, "恭喜黑方赢了");isrun=false;}else if(judge1(x,y)==2){JOptionPane.showMessageDialog(this, "恭喜白方赢了");isrun=false;}this.repaint();}}@Overridepublic void mouseReleased(MouseEvent arg0) {// TODO Auto-generated method stub}public static void main(String[] args) {// TODO Auto-generated method stub}public int judge1(int x,int y)//看看名字就知道了 是为了判断有没有赢{int count=0;int count1=0;int count2=0;int count3=0;int count4=0;int count5=0;int count6=0;int count7=0;int count8=0;int count9=0;int count10=0;int count11=0;for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(ans[i][j]==1){count++;if(count==5){return 1;}}if(ans[i][j]!=1){count=0;}}}for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(ans[i][j]==2){count1++;if(count1==5){return 2;}}if(ans[i][j]!=2){count1=0;}}}for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(ans[j][i]==1){count2++;if(count2==5){return 1;}}if(ans[j][i]!=1){count2=0;}}}for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(ans[j][i]==2){count3++;if(count3==5){return 2;}}if(ans[j][i]!=2){count3=0;}}}for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(i+j<19){if(ans[j][j+i]==1){count4++;if(count4==5){return 1;}}if(ans[j][j+i]!=1){count4=0;}}}}for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(i+j<19){if(ans[j][j+i]==2){count5++;if(count5==5){return 2;}}if(ans[j][j+i]!=2){count5=0;}}}}for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(i+j<19){if(ans[i+j][j]==1){count6++;if(count6==5){return 1;}}if(ans[j+i][j]!=1){count6=0;}}}}for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(i+j<19){if(ans[i+j][j]==2){count7++;if(count7==5){return 2;}}if(ans[j+i][j]!=2){count7=0;}}}}for(int i=18;i>=0;i--){for(int j=0;j<19;j++){if(i-j<19&&i-j>=0){if(ans[i-j][j]==1){count8++;if(count8==5){return 1;}}if(ans[i-j][j]!=1){count8=0;}}}}for(int i=18;i>=0;i--){for(int j=0;j<19;j++){if(i-j<19&&i-j>=0){if(ans[i-j][j]==2){count9++;if(count9==5){return 2;}}if(ans[i-j][j]!=2){count9=0;}}}}for(int i=0;i<19;i++){for(int j=0;j<19;j++){if(i+j<19){if(ans[18-j][i+j]==1){count10++;if(count10==5){return 1;}}if(ans[18-j][j+i]!=1){count10=0;}}}}for(int i=18;i>=0;i--){for(int j=0;j<19;j++){if(i+j<19){if(ans[18-j][i+j]==2){count11++;if(count11==5){return 2;}}if(ans[18-j][j+i]!=2){count11=0;}}}}return 0;}}


更多推荐

弱者的五子棋

本文发布于:2024-02-11 08:20:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1680008.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:弱者   五子

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!