Skip to content

架构设计

作者

天咏

原文

plain




        // -------------------- 数据设计 --------------------
/*
    棋盘:
        map[i][j]表示坐标(i,j)的值
        #表示空地
        1表示黑子
        2表示白子
    如: map[3][6] = 1  表示(3,6)的位置是黑子
*/
        int[][] map = new int[19][19];

		// 表示当前回合数  偶数表示黑棋落子  奇数表示白棋落子
		// 如: flag = 20 表示当前是第[20]次落子  由黑方落子
        int flag;

        //表示从游戏开始,对应第flag次落子的位子locationX,locationY
        final int MAX_FLAG =19*19-1;//最多下MAX_FLAG+1步
        int []locationX=new int[MAX_FLAG];
        int []locationY=new int[MAX_FLAG];
        //如: locationX[20] 表示当前是第[20]次落子的行位置
        //如: locationY[20] 表示当前是第[20]次落子的列位置
        int regretTimesB;//表示黑棋还有的悔棋次数
        int regretTimesW;//表示白棋还有的悔棋次数
// -------------------- 数据设计 --------------------
// -------------------- service --------------------
/*
    负责人:
    功能: 初始化游戏数据
        将棋盘的值初始化为#
        当前回合设为黑棋(flag设为0)
        当前落子信息设为空locationX={};locationY={};
        当前黑棋和白棋的悔棋次数设为2
    参数: void
    返回值: void
*/
        public void init();

    /*
        负责人:
        功能: 根据传入的坐标(map对应位置)和flag值 判断落点后是否获胜
        参数:
            x: 当前回合落子的x坐标
            y: 当前回合落子的y坐标
        返回值:
            0表示没有获胜
            1表示黑子胜利
            2表示白子胜利
    */
        int isWin(int x, int y);

    /*
        负责人:
        功能: 根据传入的flag和regretTimes值 判断当前棋子是否悔棋
        如果悔棋次数>0 则开始悔棋
        	撤回当前落子次数-1
            regretTimes--;悔棋次数-1
            map[locationX][locationY]="#"撤回当前落子 将落子位置覆盖为空格#
            否则不操作,返回0悔棋失败
        参数:
            regretTimes:当前回合棋子的剩余悔棋数

            locationX: 当前回合落子的x坐标
            locationY: 当前回合落子的y坐标
        返回值:
            0表示黑子悔棋失败
            1表示黑子成功悔棋
            2表示黑子悔棋失败
            3表示白子成功悔棋
    */
        int regret(int regretTimes,int locationX,int locationY);
    /*
        负责人:
        功能: 在指定位置落子
            如果map[x][y]是空地 则修改map[x][y]的值:改为相应颜色(flag对应颜色)
            否则不操作
        参数:
            x: 当前回合落子的x坐标
            y: 当前回合落子的y坐标
        返回值:
            0表示落子失败 (棋盘已经有子)
            1表示落子成功

    */
        int playerMove(int x, int y);
// -------------------- service --------------------
// -------------------- view --------------------
/*
	负责人: 张三
    功能: 展示选项, 玩家可以在这里选择进入游戏, 进入设置或退出游戏...
        进入游戏: 调用游戏界面函数gameView();
        模式选择: 调用模式选择界面函数modleView();  未实现...
        存档选择: 调用存档界面函数fileView();
        背景音乐: 调用背景音乐界面函数bgmView();//Back ground music
        氪金:	   调用氪金界面函数kryptonGoldyView();  未实现...
        游戏简介: 调用游戏简介界面函数gameIntroductionView();
        等级与成就: 调用等级与成就界面函数levelAndAchievementView();
        退出游戏: 调用exit(0);
*/
void menuView();

/*
	 负责人: 张三
    功能: 暂时没有
    参数: void
    返回值: void

*/
void modleView();

/*
	 负责人: 张三
    功能: 展示选项,玩家可选择以下功能
    	返回主菜单:调用主菜单界面函数menuView();
		删除存档:调用删除存档函数deleteSave();
		新建存档:调用新建存档函数newSave();
		选择存档:调用选择存档函数selectSava();
    参数: void
    返回值: void
*/
void fileView();

/*
	负责人: 张三
    功能: 展示选项,玩家可选择以下功能
    	返回主菜单:调用主菜单界面函数menuView();
		选择背景音乐:调用选择背景音乐函数selectBgm();
		选择落子音效:调用选择落子音效函数selectSoundEffects();
    参数: void
    返回值: void
*/
void bgmView();

/*
	 负责人: 张三
    功能: 暂时没有
    参数: void
    返回值: void

*/
void kryptonGoldyView();

/*
	 负责人: 张三
    功能: 展示选项,玩家可选择以下功能
    	返回主菜单:调用主菜单界面函数menuView();
		游戏规则:调用打印游戏规则函数outGameRule();
		游戏背景:调用打印游戏背景函数printGameBackground();
		开发团队:调用打印开发团队函数printDevelopmentTeam();
    参数: void
    返回值: void

*/
void gameIntroductionView();

/*
	 负责人: 张三
    功能: 展示选项,玩家可选择以下功能
    	返回主菜单:调用主菜单界面函数menuView();
		打印等级:调用打印等级函数printLevel();
		打印成就:调用打印成就函数printAchievement();
    参数: void
    返回值: void

*/
void levelAndAchievementView();

/*
    负责人: 张三
    功能: 根据map数组 打印游戏棋盘
    参数: void
    返回值: void
*/
void gameView_ShowMap();

/*
    负责人: 张三
    功能: 根据flag的值  打印游戏胜利界面  用户可以按任意键回到主菜单
    参数: void
    返回值: void
*/
void winView();

/*
    *难点2
    负责人: 张三
    功能: 游戏界面整合
        初始化游戏数据(调用函数init())
        while(1){
            打印游戏界面(调用函数gameView_ShowMap())
            接收玩家坐标输入

            落子(调用落子函数playerMove())
                (如果落子失败 重新开始循环)

            判断游戏是否胜利(调用胜利判断函数isWin())
                (如果游戏胜利 调用胜利界面函数 然后结束当前界面)
            判断玩家是否悔棋(调用悔棋函数regret())
            切换玩家(修改flag值)
        }
    参数: void
    返回值: void
*/
void gameView();
// -------------------- view --------------------

目前还需要完成的内容

fileView 蒋

删除存档:调用删除存档函数 deleteSave(); 新建存档:调用新建存档函数 newSave(); 选择存档:调用选择存档函数 selectSava();

bgmView 阮

选择背景音乐:调用选择背景音乐函数 selectBgm(); 选择落子音效:调用选择落子音效函数 selectSoundEffects();

gameIntroductionView 伍

游戏规则:调用打印游戏规则函数 outGameRule(); 游戏背景:调用打印游戏背景函数 printGameBackground(); 开发团队:调用打印开发团队函数 printDevelopmentTeam();

levelAndAchievementView 王

打印等级:调用打印等级函数 printLevel(); 打印成就:调用打印成就函数 printAchievement();

suspendView 赵

重玩:调用 gameView()默认参数; 认输:根据 flag 调用 winView();进入游戏胜利界面 保存:将当前的数据保存,调用 suspendView();回到暂停界面

贡献者

The avatar of contributor named as ruan-cat ruan-cat

页面历史

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。