翻到幾年前的代碼,我驚了。
#關(guān)于程序注釋#
void wanggei(int a,int b)//畫網(wǎng)格
{
initgraph(20*a,20*b);
setbkcolor(BLUE);
cleardevice();
setwritemode(R2_XORPEN);
setfillcolor(WHITE);
settextstyle(15, 0, _T("楷體")); // 操作說明
outtextxy(20, 10, _T("操作說明"));
outtextxy(20, 30, _T("w:旋轉(zhuǎn)"));
outtextxy(20, 50, _T("a:左移"));
outtextxy(20, 70, _T("d:右移"));
outtextxy(20, 90, _T("s:下移"));
return;
}
void suiji(int a[],int b[])//生成隨機(jī)方塊
{
int n;
srand((unsigned)time(NULL));
n=rand()%(X-9);
if(n==1)
{
a[0]=1+n;b[0]=Y+1;a[1]=1+n;b[1]=Y+2;a[2]=2+n;b[2]=Y+1;a[3]=2+n;b[3]=Y+2;//正方形的方塊。
return;
}
if(n==2)
{
a[0]=1+n;b[0]=Y+1;a[1]=2+n;b[1]=Y+1;a[2]=3+n;b[2]=Y+1;a[3]=2+n;b[3]=Y+2;
return;
}
if(n==3)
{
a[0]=1+n;b[0]=Y+1;a[1]=1+n;b[1]=Y+2;a[2]=1+n;b[2]=Y+3;a[3]=1+n;b[3]=Y+4;
return;
}
if(n==4)
{
a[0]=1+n;b[0]=Y+1;a[1]=2+n;b[1]=Y+1;a[2]=2+n;b[2]=Y+2;a[3]=2+n;b[3]=Y+3;
return;
}
if(n==5)
{
a[0]=1+n;b[0]=Y+3;a[1]=1+n;b[1]=Y+1;a[2]=1+n;b[2]=Y+2;a[3]=2+n;b[3]=Y+1;
return;
}
if(n==6)
{
a[0]=2+n;b[0]=Y+1;a[1]=2+n;b[1]=Y+2;a[2]=1+n;b[2]=Y+2;a[3]=1+n;b[3]=Y+3;
return;
}
if(n==7)
{
a[0]=1+n;b[0]=Y+1;a[1]=1+n;b[1]=Y+2;a[2]=2+n;b[2]=Y+2;a[3]=2+n;b[3]=Y+3;
return;
}
}
void Judge(int a[],int b[],int n,int x[X+2][Y+2],int y[X+2][Y+2],int speed)//游戲規(guī)則
{
int i=0,j=0,k,a0[4],b0[4];
char c;
while(1)
{
for(j=1;j<=Y;j++) //消去的行
{
for(i=1;i<=X;i++)
if(i!=x[i][j]&&j!=y[i][j])break;
if(i==X+1)
{
for(i=1;i<=X;i++)
{
Rectangle(i,j);
x[i][j]=0;
y[i][j]=0;
}
for(i=1;i<=X;i++)
for(k=j+1;k<=Y;k++)
if(x[i][k]==i&&y[i][k]==k)
{
x[i][k]=0;
y[i][k]=0;
x[i][k-1]=i;
y[i][k-1]=k-1;
Rectangle(i,k);
Rectangle(i,k-1);
}
}
}
for(i=0;i<n;i++)
Rectangle(a[i],b[i]);
Sleep(1000-100*speed);
for(i=0;i<n;i++)
Rectangle(a[i],b[i]);
for(i=0;i<n;i++)
{
a0[i]=a[i];
b0[i]=b[i];
}
if(kbhit())
{
c=getch();
Move(a,b,n,c);
if(c=='s')speed=10;
}
else
{
Move(a,b,n,'0');
for(i=0;i<X+2;i++)
for(j=0;j<Y+2;j++)
for(k=0;k<n;k++)
if(a[k]==x[i][j]&&b[k]==y[i][j])
{
for(i=0;i<n;i++)
{
a[i]=a0[i];
b[i]=b0[i];
}
return;
}
}
for(i=0;i<X+2;i++)
for(j=0;j<Y+2;j++)
for(k=0;k<n;k++)
if(a[k]==x[i][j]&&b[k]==y[i][j])
{
for(i=0;i<n;i++)
{
a[i]=a0[i];
b[i]=b0[i];
}
goto ex;
}
ex:;
}
}
但,如果程序結(jié)構(gòu)好,注釋也多,代碼的可讀性應(yīng)該就會(huì)更強(qiáng)了。
畢竟程序員最討厭的兩件事就是:
1、別人的代碼不寫注釋。
2、自己寫完代碼還要寫注釋。
《代碼大全》,講到注釋有以下幾個(gè)種類:
1、復(fù)述代碼—這種把代碼復(fù)述一遍的注釋最無聊。
2、解釋代碼—解釋代碼的思路,這種代碼可以有,但是大部分時(shí)候是因?yàn)榇a寫得不好。
3、概述代碼一句話告訴別人代碼做了什么,很好的注釋。
4、代碼意圖說明—指出代碼要解決的問題。
5、傳達(dá)代碼無法表述的信息—非常重要。
不知道各位朋友喜歡寫哪種注釋,還是喜歡寫完代碼絕對(duì)不回頭。
當(dāng)然,注釋只是項(xiàng)目文檔之一,還可能要寫設(shè)計(jì)文檔、測(cè)試用例、變更列表、使用手冊(cè)等多種文檔去讓別人理解及維護(hù)項(xiàng)目。
這樣的話,如果只是單寫個(gè)程序注釋,應(yīng)該算上是一件幸福的事情。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!