2022软工K班结对编程作业

2022.10.13
github链接
https://github.com/032002424liuyuqi/2022-K-/tree/main
bilibili链接
https://www.bilibili.com/video/BV1D84y1B7HH/

一、结对探索(4分)

1.1 队伍基本信息(1分)

结对编号:47 ;队伍名称:IKUN家族;

姓名学号博客链接具体分工
刘宇旗032002424https://blog.csdn.net/codeboy1111/article/details/127308208UI设计,编程实现,算法设计
罗桢彬032002425https://blog.csdn.net/qq_56128672/article/details/127309926原型设计,博客编写,视频制作

1.2 描述结对的过程(1分)

一个宿舍很方便,直接组队

1.3 非摆拍的两人在讨论设计或结对编程过程的照片(2分)

在这里插入图片描述

二、原型设计(16分)

2.1 原型工具的选择(2分)

墨刀。
对于第一次接触原型设计的人来说,上手快,交互性强,且有着丰富的组件,方便分享给别人并且预览速度快。

2.2 遇到的困难与解决办法(3分)

困难:如果没有开通个人版只能创建的页面数量有限,难以达到预期。
解决方法:去某宝花几块钱购买了一月试用期。

2.3 原型作品链接(5分)

作品链接:https://modao.cc/app/d49IzsVXrjj9ugKQ5Q1JY

2.4 原型界面图片展示(6分)

进入界面:
在这里插入图片描述
游戏界面:
在这里插入图片描述
结束界面:
在这里插入图片描述

三、编程实现(14分)

3.1 网络接口的使用(2分)

3.2 代码组织与内部实现设计(类图)(2分)

场景切换

代码脚本文件

3.3 说明算法的关键与关键实现部分流程图(2分)

在这里插入图片描述

3.4 贴出重要的/有价值的代码片段并解释(2分)


 public void set() //投色子
    {   
        if(touzi == true)
        {
            x = Random.Range(1, 7);
            Text.text = x.ToString();
            touzi = false;
        }
        
    }
    public void aiset()  //AI自动投色子
    {   
        if(touzi == true)
        { 
            x = Random.Range(1, 7);
            Text.text = x.ToString();
        }
       
    }
    
    public void rest()
    {
        //休息专用
    }
    public void is_over() //判断游戏是否结束
    {
        bool count_1 = true;
        bool count_2 = true;
        for (int i = 0; i < 9; i++)
        {
            if (Lists_Left[i].y == 0) count_1 = false;  
            if(count_1 == false) break;
        }
        for (int i = 0; i < 9; i++)
        {
            if (Lists_Right[i].y == 0) count_2 = false;
            if (count_2 == false) break;
        }
        if (count_1 == true || count_2 == true)
        {
            Gameover();  
        }
    }
    
    public void Gameover()  //游戏结束
    {
        getscore();
        PlayerPrefs.SetInt("p1_score", p1score);
        PlayerPrefs.SetInt("p2_score", p2score);
        SceneManager.LoadScene("gameover1");
    }
       
    public void getscore()    //获取P1 P1的分数
    {
        for(int j=0;j<3;j++)
        {   int[] a = new int[7];
                for(int i = 0+j*3; i < 3+j*3; i++)
            {
                if (Lists_Left[i].y == 0) continue;
                else a[Lists_Left[i].y]++;
            }
                for(int i = 1; i < 7; i++)
            {
                p1score += a[i] * a[i] * i;
            }
         }
        for (int j = 0; j < 3; j++)
        {
            int[] a = new int[7];
            for (int i = 0 + j * 3; i < 3 + j * 3; i++)
            {
                if (Lists_Right[i].y == 0) continue;
                else a[Lists_Right[i].y]++;
            }
            for (int i = 1; i < 7; i++)
            {
                p2score += a[i] * a[i] * i;
            }
        }
    }

	public void eliminate()     //重复进行消除
    {
        if (leftright==0)
        {
            for(int i = 0; i < 9; i++)
            {
                if(dicecon.Lists_Right[i].hang == hang)
                {
                    if (y == dicecon.Lists_Right[i].y)
                    {   
                        dicecon.source3.Play();
                        dicecon.Lists_Right[i].y = 0;
                        
                    } 
                }
            }
        }
        if (leftright == 1)
        {
            for (int i = 0; i < 9; i++)
            {
                if (dicecon.Lists_Left[i].hang == hang)
                {
                    if (y == dicecon.Lists_Left[i].y)
                    {
                        dicecon.source2.Play();
                        dicecon.Lists_Left[i].y = 0;
                        
                    } 
                }
            }
        }
    }

3.5 性能分析与改进(2分)

在这里插入图片描述

3.6 单元测试(2分)

判断游戏是否结束


public void is_over() //判断游戏是否结束
    {
        bool count_1 = true;
        bool count_2 = true;
        for (int i = 0; i < 9; i++)
        {
            if (Lists_Left[i].y == 0) count_1 = false;  
            if(count_1 == false) break;
        }
        for (int i = 0; i < 9; i++)
        {
            if (Lists_Right[i].y == 0) count_2 = false;
            if (count_2 == false) break;
        }
        if (count_1 == true || count_2 == true)
        {
            Gameover();  
        }
    }
    

3.7 贴出GitHub的代码签入记录,合理记录commit信息(2分)

没有使用

四、总结反思(11分)

4.1 本次任务的PSP表格(2分)

PSP2.1Personal Software预估耗时(分钟)实际耗时(分钟)
Planning计划2528
· Estimate· 估计这个任务需要多少时间1500200
Development开发500500
· Analysis· 需求分析 (包括学习新技术)400450
· Design Spec· 生成设计文档2526
· Design Review· 设计复审2010
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)68
· Design· 具体设计1010
· Coding· 具体编码500800
· Code Review· 代码复审300400
· Test· 测试(自我测试,修改代码,提交修改)200133
Reporting报告160160
· Test Repor· 测试报告4050
· Size Measurement· 计算工作量5060
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划3040
· 合计37004870
4.2 学习进度条(每周追加)(2分)

刘宇旗:

第N周新增代码(行)累计代码(行)本周学习耗时(小时)时) 累计学习耗时(小时)重要成长
1001515学习unity工具的基本使用,c#基本语法
2002035学习了unity小游戏开发的相关内容
3100010002560完成游戏

罗桢彬:

第N周新增代码(行)累计代码(行)本周学习耗时(小时)时) 累计学习耗时(小时)重要成长
1001515学习墨刀工具的基本使用,一些功能组件的作用
2001025具体学习墨刀原型设计一些效果的实现,观看实例
3100010002550协助完成游戏
4.3 最初想象中的产品形态、原型设计作品、软件开发成果三者的差距如何?(2分)

感觉差不多没什么差距,根据自己的想法来创建原型设计开发软件,结果跟设想的差不多。

4.4 评价你的队友(2分)

刘宇旗:

队友很优秀,对待这次作业很认真的学习,在原型制作的学习上也是下了很大的功夫,合作很愉快。

罗桢彬

学习能力很强,非常认真负责,为了加快游戏的制作连续熬了很多天的夜,合作十分愉快。

4.5 结对编程作业心得体会(3分)

刘宇旗

总得来说这次编程作业带给我的收获很大,学习了unity的开发,刚刚开始的时候还认为这是一项很艰巨的任务,后面通过学习慢慢一步步直到小游戏的制作完成,我受益匪浅,只能说感谢老师给我们布置的这一项作业,让我的学习能力进一步提高了。

罗桢彬

第一次接触结对编程,觉得是一件很新鲜的事情。享受和搭档一起学习新知识,讨论游戏的搭建框架,为了赶进度拼命的过程,也是在作为计算机学生,第一次制作游戏,收获颇多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值