zoukankan      html  css  js  c++  java
  • 结队作业五子棋游戏

    一、题目简介:

     编辑一个简单的五子棋小游戏

     要求能够实现:

    ①判断输赢②可以选择哪一方先开始③一轮游戏后可以自动重新开始

    二、代码链接

    https://github.com/loiskris/test/blob/master/Enzit.java

    三、我和队员两个人分工情况

    我的任务表主要是负责:1、写出选择性,黑先还是白先2、如何去判断整盘棋的输赢。

    队友的任务主要是1、页面控件的设置 2、 游戏的开始 3、一局以后的重新开始

    四、我所设计的模块测试用例、测试结果截图 

    对于黑先还是还是白先的实现:        

                                          public void itemStateChanged(ItemEvent e)
                                                     {
                                                         if (ckbHB[0].getState()) //选择黑子先还是白子先
                                                          {
                                                                    color_Qizi=0;
                                                                                           }
                                                               else
                                                                        {
                                                                           color_Qizi=1;
                                                                                                    }
                                                                                                      }

              对于输赢的实现,我们都知道五子棋练成五个就算赢,那么  代码实现:

    public boolean Game_win_2(int x,int y) //判断输赢 竖
    {
    int x1,y1,t=1;
    x1=x;
    y1=y;

    for (int i=1;i<5 ;i++ )
    {
    if (x1>15)
    {
    break;
    }
    if (intGame_Body[x1][y1+i]==intGame_Body[x][y])
    {
    t+=1;
    }
    else
    {
    break;
    }

    }

    for (int i=1;i<5 ;i++ )
    {
    if (x1<1)
    {
    break;
    }

    if(intGame_Body[x1][y1-i]==intGame_Body[x][y])
    {
    t+=1;
    }
    else
    {
    break;
    }
    }

    if (t>4)
    {
    return true;
    }
    else
    {
    return false;
    }
    }

    而且成五子分四种情况:横着、竖着、左斜、右斜,那么在这里我以实现左斜为例:

    public boolean Game_win_3(int x,int y) //判断输赢 左斜
    {
    int x1,y1,t=1;
    x1=x;
    y1=y;

    for (int i=1;i<5 ;i++ )
    {
    if (x1>15)
    {
    break;
    }
    if (intGame_Body[x1+i][y1-i]==intGame_Body[x][y])
    {
    t+=1;
    }
    else
    {
    break;
    }

    }

    for (int i=1;i<5 ;i++ )
    {
    if (x1<1)
    {
    break;
    }

    if(intGame_Body[x1-i][y1+i]==intGame_Body[x][y])
    {
    t+=1;
    }
    else
    {
    break;
    }
    }

    if (t>4)
    {
    return true;
    }
    else
    {
    return false;
    }
    }

    五、心得体会

    本次试验是同舍友一起做的,我的任务表主要是负责是写出选择性,黑先还是白先还有如何去判断整盘棋的输赢。一个小小的五子棋设计起来当真不容易,总体来说还是有收获的,一个实验重温童年乐趣,也是对知识的更深层次的巩固,我也意识到对于一个程序员来说仔细认真的重要性,一个小小的标点符号我居然调试了好久才发现,希望以后自己能够有更深层次的提高。

     

  • 相关阅读:
    模拟+bfs——cf1344D
    【留坑】模拟+极角排序+预处理——ICPC PNWRC 2019 H
    【好题】思维+几何+离散化——ICPC PNWRC 2019 G
    【难】组合数学+dp——ICPC PNWRC 2019
    【好题】导数+统计贡献+扫描—— icpc PNWRC 2019
    【模板】二分图匹配+构造+最大独立集——icpc PNWRC 2019
    [Scoi2014]方伯伯的OJ(动态开点splay)
    [ZJOI2006]书架(二分+树状数组)
    [TJOI2017]不勤劳的图书管理员(分块+树状数组)
    [APIO2016]Gap(交互)
  • 原文地址:https://www.cnblogs.com/loiskris/p/4510465.html
Copyright © 2011-2022 走看看