螺旋遍歷實現蚊香數組

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
    作者:    wencan
    Mail:    wencan#live.cn
    Site:    blog.wencan.me
    日期:    2011/11/22
*/

/*蚊香数组
如:
1       2       3       4       5       6
20      21      22      23      24      7
19      32      33      34      25      8
18      31      36      35      26      9
17      30      29      28      27      10
16      15      14      13      12      11
*/

//螺旋遍历解决

//数组宽度
const int Width=6;

struct _Array
{
    int num;//数值
    int x;    //行
    int y;    //列
};

typedef struct _Array Array;

void fun(Array **pArray,int width)
{
    //元素总数
    int total=Width*Width;
   
    //螺旋遍历开始
    //从左上角元素开始
    Array *p=pArray[0];   
    for(int i=0,j=0,w=width,_w=0;i<total; )
    {
        //i统计已遍历的元素的个数
        //j统计遍历过程中折向的次数
        //w为每条直线的宽度
        //_w为当前直线遍历过的元素的个数。
        //故,当_w==w时,当前直线遍历结束,遍历折向
        p->num=++i;
        _w++;
        if(_w==w)
        {
            //遍历折向
            switch(j%4)
            {
                case 0:
                    //移至相邻的下边的元素
                    p=pArray[p->x+1]+p->y;
                    break;
                case 1:
                    //移至相邻的左边的元素
                    p=pArray[p->x]+p->y-1;
                    break;
                case 2:
                    //移至相邻的上边的元素
                    p=pArray[p->x-1]+p->y;
                    break;
                case 3:
                    //移至相邻的右边的元素
                    p=pArray[p->x]+p->y+1;
                    break;
                default:
                    break;
            }
           
            _w=0;
            j++;//折向次数加1

            //直线宽度减1
            if(j%2)
                w;
        }
        else
        {
            //遍历不折向
            switch(j%4)
            {
                case 0:
                    //移至相邻的右边的元素
                    p=pArray[p->x]+p->y+1;
                    break;
                case 1:
                    //移至相邻的下边的元素
                    p=pArray[p->x+1]+p->y;
                    break;
                case 2:
                    //移至相邻的左边的元素
                    p=pArray[p->x]+p->y-1;
                    break;
                case 3:
                    //移至相邻的上边的元素
                    p=pArray[p->x-1]+p->y;
                    break;
                default:
                    break;
            }
        }
    }
   
}

int main(int argc,char **argv)
{
    //构造动态二维数组
    Array ** pArray=(Array **)malloc(Width*sizeof(Array *));
    for(int i=0;i<Width;i++)
    {
        pArray[i]=(Array *)malloc(Width*sizeof(Array));
        for(int j=0;j<Width;j++)
        {
            pArray[i][j].num=0;
            pArray[i][j].x=i;
            pArray[i][j].y=j;
        }
    }
   
    //计算数组内的数值
    fun(pArray,Width);

    //输出
    for(int i=0;i<Width;i++)
    {
        for(int j=0;j<Width;j++)
            printf("%d\t",pArray[i][j].num);
        printf("\n");
    }       

    //释放
    for(int i=0;i<Width;i++)
        free(pArray[i]);
    free(pArray);

}

Code File: EverBox

QSketchPad-Qt畫板

起初,寫這個程序是爲了瞭解Qt與MFC繪圖的一些不同。后,爲了打發時間,給程序擴充了一些功能。

最近一直找不到工作,心裡有些煩。程序未能盡善盡美,權當練習之用。

特性:

1、保存每個點在窗口中的相對位置。

2、Delete清空。

3、Backspace鍵刪除最後一筆。

Down: EverBox Box

QtMinesweeper|Qt踩地雷|Qt掃雷

本遊戲採用Qt技術開發,支持多平臺,是自由軟件。

Minesweeper在正體中文中譯爲“踩地雷”,或”拆地雷”。本程序採用前一種譯法。

本程序使用了Gnome同名遊戲中的圖片。

本程序暫時只提供部分環境的編譯版本。其它環境的版本,請自行編譯。(有編譯方面的疑問,請參見這裏。)

本程序目前可能存在BUG,歡迎玩家反饋(如果玩家數量大於1的話)。

程序特性:

支持隨意調節窗口尺寸,且遊戲中方塊保持爲正方形。

支持English、正體中文、簡體中文。程序在啓動時根據環境自動選擇語言。程序缺省語言爲English。

下載:Box EverBox

Qt4應用程序跨平臺編譯指南

編譯QT應用程序的基本步驟爲:

1、生成pro文件

qmake -project

2、生成MakeFile文件

qmake -*.pro 或qmake

3、生成可執行文件

make

在某些環境中qmake命令應爲qmake-qt4,make應爲mingw32-make

在某些環境中,qmake無法識別路徑和文件名中的中文。

將程序複製到另一環境,用Qt Creator打開,可能會提示以下信息:

這中情況需要更改項目設置。在上面的對話框中選“否”,進入項目設置對話框

之後程序便可以成功編譯。

 

撥了400-882-8008

實在沒法忍受,終於在今天撥打了聯想移動的客戶熱綫400-882-8008。

很多Android應用都只提供電子市场的链接,而聯想樂Pad禁用了Google賬戶。

樂Pad K1首先在北美市場上市。聯想爲用戶提供的演示視頻,清晰地展示了外國用戶手上樂Pad上的電子市場圖標。K1在北美上市幾個月後,才在出現聯想的淘寶商城旗艦店中。這幾個月不是幹別的去了,專使K1具有“中國特色”。

中國大陸地區是聯想的“本土市場”,而本土市場既未得到聯想的特殊照顧,也未被一視同仁,而是當成了聯想推廣“聯想賬戶”殖民地。

這一切源於聯想在“本土市場”根基厚底子深,中國消費者本分好欺負。它若敢在國外市場提供禁用掉Google賬戶的樂Pad,早被用戶堵住大門要求退貨了。

聯想客戶人員提供的回答,也讓人恨得咬牙:國外的樂Pad跟國內的不一樣;原生的Android不能安裝在樂Pad上。客戶人員面對用戶的追問,除了這兩個回答,還有就是這兩個回答,和一句“你還有什麼問題“。——中國用戶再次被聯想當作白癡。

跟其它的客戶熱綫一樣,客戶熱綫最後有個對服務態度的評價環節:滿意、一般、不滿意。不滿意下面有:對服務態度不滿意、對客戶人員專業水平不滿意,沒有諸如對聯想不滿意之類的其它選項——沒有企業會提供用戶扇自己耳光的機會。