[课程相关]homework-06
一、c++11
lambda
/*
* File: main.cpp
* Author: liangjie
*
* Created on 2013年11月23日, 下午12:02
*/ #include <cstdlib>
#include <iostream> using namespace std; /*
*
*/
int main(int argc, char** argv) {
string aa = "Hello World!";
int b = , c = ;
for_each(aa.begin(), aa.end(), [&b, &c](char a){if (a == 'l') {b++;} else if (a == 'e'){c++;};});
cout<< "Number of e: " << c<<endl;
cout<<"Number of l: "<<b<<endl;
return ;
}
lambda,看了一下就搞懂了。
smart_ptr
/*
* File: main.cpp
* Author: liangjie
*
* Created on 2013年11月23日, 下午12:16
*/ #include <cstdlib>
#include <iostream>
#include <memory> using namespace std; /*
*
*/ void move_print(int n){
unique_ptr<string> aa(new string("Hello World!"));
for (int i=aa.length() - n; i<aa.length();i++){
cout<<aa[i];
}
for (int i=;i<aa.length()-n;i++){
cout<<aa[i];
}
} int main(int argc, char** argv) {
int n = ;
move_print(n);
return ;
}
smart_prt,自动清理申请的空间。概念不错。
二、围棋程序
01年就有C#了?搜了一下居然是00年发布的。我第一次听说c#大概是11年吧。原来也不是一个很新的语言了。
playPrev函数
public void playPrev(GoMove gm)
{
Point thepoint = gm.Point;
Grid[thepoint.X,thepoint.Y].removeStone();
if (gm.DeadGroup)
{
int thecount = gm.DeadGroup.Count;
thecount = gm.DeadGroup.Capacity;
System.Collections.IEnumerator theenum = gm.DeadGroup.GetEnumerator();
while (theenum.MoveNext())
{
thepoint = (Point)theenum.Current;
Grid[thepoint.X,thepoint.Y].setStone(gm.DeadGroupColor);
}
}
m_gmLastMove = gameTree.peekPrev();
if (m_gmLastMove)
{
repaintOneSpotNow(m_gmLastMove.Point);
setLabelsOnBoard(m_gmLastMove);
setMarksOnBoard(m_gmLastMove);
}
optRepaint();
m_colorToPlay = nextTurn(m_colorToPlay);
textBox1.Clear();
if (m_gmLastMove)
textBox1.AppendText(m_gmLastMove.Comment);
}
编码风格:
个人很少用c系的语言,所以说不上什么好坏。不过单从代码角度来说的话,变量名还可以,能传递一部分的意思。不过注释感觉有些过多,很多时候变量名以及代码结构已经足以表达清楚意思了。在我的观点里,一个函数最多只需要一行注释,说明函数的用途及用法。至于函数内部的实现应该靠代码就足以表述清楚——如果表述不清楚,那就是函数写的有问题。
一大串if else我觉得switch比较好。当然我不是用c的,貌似switch只能处理字符?那还不如叫switch_only_for_char。
程序架构:
1500多行,实在没有太多耐心来看。想必其中大部分代码都是画界面的。
MVC的话,感觉并没有很明确的体现出来。各种函数的调用好像并没有什么明显的规则,比如nextTurn()这种,如果按照MVC的话,应该是不能直接调用的。
不过话说话来,MVC还是用在大型程序上比较好,这种小程序完全没必要。大炮大蚊子明显没有用手打有效。
错误处理:
trycatch好像有点太笼统了。如果能细致一点指出具体的错误就更好了。
特殊情况最好归到trycatch里,统一管理。写到外面容易被当做正常情况来看待。
注释:
加到代码里了,太长就不贴到这了。
[课程相关]homework-06的更多相关文章
- 【学习笔记】B站-2019-NLP(自然语言处理)之 BERT 课程 -- 相关课程笔记
BERT 课程笔记 1. 传统方案遇到的问题 BERT的核心在于Transformer,Transformer就类似seq2seq网络输入输出之间的网络结构. 传统的RNN网络:最大的问题,因为不能并 ...
- Linux及安全课程——相关链接总结
附录:学习笔记链接总结 MOOC课程学习笔记与实验: 第一周:计算机是如何工作的 第二周:操作系统是怎么工作的 -- 一个简单的时间片轮转多道程序内核代码及分析 第三周:构造一个简单的Linux系统M ...
- [课程相关]homework-04
零.准备工作 这次的作业仍然是结对编程,我们队伍的成员为:梁杰.夏天晗.谢祖三.上次我们是选择了一个时间大家聚在一起进行编程,效果不错,所以这次我们还是决定采用这种方式.由于大家平时比较忙,这周六日我 ...
- [课程相关]homework-02
一.如何组织代码 因为这个代码比较简单,用函数就足够了,个人觉得没必要用类,杀鸡不必用牛刀. 代码有点长,主要是加了很多判断参数的部分. 提取了一个公共的递归函数. 用了不少全局变量,可能当做参数传入 ...
- 潭州课堂25班:Ph201805201 django 项目 第四十二课 后台 课程相关,用户组管理 (课堂笔记)
在线课程: 当点击进入页面时,显示所有课程 def get(self, request): courses = Course.objects.select_related('category', 't ...
- java面试(Web相关)06
1.JSP 和 servlet 有什么区别? JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式.servlet 和 JSP 最主要的不同点在于,servlet 的应用逻辑 ...
- [课程相关]附加题——stack的理解
一.stack的三种解释 stack有三种解释,我个人理解如下. 1.用户自定义的stack 用户自定义的stack就是一般意义上的后进先出队列,从名字上就能理解了,stack由下向上增长,有一个顶指 ...
- [课程相关]homework-09
零.前言 这次的作业比较特殊,有两种做法.由于我对网页很熟悉,所以选择网页. 细节不赘述,下面写一下这次作业的几个亮点. 一.亮点 最大的亮点就是这个页面是纯客户端的,没有服务端.也就是说所有功能都是 ...
- homework -06 围棋
playPrev功能的实现 public void playPrev(ref GoMove gm) { Point p = gm.Point; m_colorToPlay = gm.Color; cl ...
随机推荐
- HTTP原理
HTTP原理 1 简介 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统. HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式. 2.简单快速:客 ...
- Java Service Wrapper配置详解
#encoding=UTF-8 # Configuration files must begin with a line specifying the encoding # of the the fi ...
- 【转】google推出的SwipeRefreshLayout下拉刷新用法
SwipeRefreshLayout是Google在support v4 19.1版本的library更新的一个下拉刷新组件,实现刷新效果更方便. 使用如下: 1.先下载android-support ...
- 集成iscroll 下拉加载更多 jquery插件
一个插件总是经过了数月的沉淀,不断的改进而成的.最初只是为了做个向下滚动,自动加载的插件.随着需求和功能的改进,才有了今天的这个稍算完整的插件. 一.插件主功能: 1.下拉加载 2.页面滚动到底部自动 ...
- Hadoop伪分布配置与基于Eclipse开发环境搭建
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 计算Excel中的Sheet个数
$strpath="d:\ee.xlsx"$excel=new-object -comobject excel.application$WorkBook = $excel.Work ...
- VS2013 安装phonegap
https://www.microsoft.com/en-us/download/details.aspx?id=40783
- codeforces Gym 100187H H. Mysterious Photos 水题
H. Mysterious Photos Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/p ...
- linux下的文件操作——批量重命名
概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...
- ntoskrnl.exe损坏或丢失的解决方式
同事的电脑启动时出现下面提示:"因下面文件损坏或丢失Windows无法启动 %systemroot%\system32\ntoskrnl.exe,请又一次安装以上文件的拷贝"(Wi ...