0
点赞
收藏
分享

微信扫一扫

javafx逻辑实现五子棋基本功能(悔棋,重新开始,保存棋谱,复盘,人人对战,单机模式

code_balance 2022-03-16 阅读 50

javafx逻辑实现五子棋基本功能(悔棋,重新开始,保存棋谱,复盘,人人对战,单机模式)

做这个项目,本身目的仅仅是想应用学过的知识做个小项目,想知道它们在实际开发中应该如何应用,顺便帮我对几个月来的学习的知识更深入的了解。等我学完了数据库,再做个更大的项目,应该不成问题。所以,这篇文章适合学完Java基础的人学习,这也是我对自己Java学习第一阶段做的总结。
在这里插入图片描述

这是关于棋子文件上传代码

saveButton.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {

                //创建保存框对象
                FileChooser fileChooser=new FileChooser();
                if(!isWin)
                    return;

                //展示Window window = ;
                File file=fileChooser.showSaveDialog(stage);
                BufferedWriter bw=null;

                if (file!=null){
                    try {
                        bw=new BufferedWriter(new FileWriter(file) );
                        //一次写一个字符串
                        for (int i=0;i<count;i++){
                            Chess chess=chesses[i];
                            bw.write(chess.getX()+","+chess.getY()+","+chess.getColor());
                            bw.newLine();
                            bw.flush();

                        }
                    } catch (Exception e) {
                        System.out.println("保存失败");
                    }finally {
                        try {
                            bw.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }


                System.out.println(file);

            }
        });

复盘代码

 replay.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                //首先应该在点击复盘的时候清空所有棋子
                //怎么删除呢,怎么添加怎么删除,pane.getChildren()是一个单列集合
                pane.getChildren().removeIf(new Predicate<Object>() {
                    @Override
                    public boolean test(Object obj) {
                        return obj instanceof Circle;
                    }
                });
                //清空了,为什么会是白子先走,而且有些地方仍旧显示有棋子
                isBLACK=true;
                chesses =new Chess[100];
                count=0;
                isWin=false;

                FileChooser fileChooser=new FileChooser();
                file=fileChooser.showOpenDialog(stage);
                if (file!=null) {
                    //关闭画板鼠标点击事件
                    pane.setOnMouseClicked(new EventHandler<MouseEvent>() {
                        @Override
                        public void handle(MouseEvent event) {
                            return;
                        }
                    });
                    Button up = up();
                    pane.getChildren().add(up);
                    Button down = down();
                    pane.getChildren().add(down);
                    movingdown(down);
                    movingup(up);
                }
                else
                    return;
            }
        });

套接字编程

举报

相关推荐

0 条评论