亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? same.c

?? minigui 1.6.10 游戲例子 能對編程有很大啟發(fā)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*** $Id: same.c,v 1.7 2006-03-02 05:28:28 xgwang Exp $**** Same: the Same game.** (C) 1997 the Free Software Foundation**** Author: Miguel de Icaza.**         Federico Mena.**         Horacio Pe?a.**** The idea is originally from KDE's same game program.**** Ported to MiniGUI by Wei Yongming***//***  This source is free software; you can redistribute it and/or**  modify it under the terms of the GNU General Public**  License as published by the Free Software Foundation; either**  version 2 of the License, or (at your option) any later version.****  This software is distributed in the hope that it will be useful,**  but WITHOUT ANY WARRANTY; without even the implied warranty of**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU**  General Public License for more details.****  You should have received a copy of the GNU General Public**  License along with this library; if not, write to the Free**  Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,**  MA 02111-1307, USA*/#include <sys/types.h>#include <string.h>#include <stdlib.h>#include <time.h>#include <dirent.h>#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>#define IDM_NEW         100#define IDM_SCORES        110#define IDM_EXIT        120#define IDM_PREF        200#define IDM_ABOUT        300#define STONE_SIZE        40#define STONE_COLS        15#define STONE_LINES        10#define ID_TIMER        100#define _(x) (x)static RECT rcBoard;static HWND hwnd_score = HWND_INVALID, hwnd_menu;static BITMAP stones;static int tagged_count = 0;static int ball_timeout_id = -1;static int old_x = -1, old_y = -1;static int score;static const char* lang= "en";static const char**pmain_menu =NULL;static const char**pgame_menu =NULL;static const char**pabout_menu =NULL;static const char**pmessagebox =NULL;static const char**phelpmessage = NULL;static const char* messagebox_cn[] ={    "你確定要退出嗎?",    "同色球",    "得分:%.5d",    "游戲結(jié)束!\n你的分?jǐn)?shù)是:%.5d",    "同色球游戲",    "場景",    "分?jǐn)?shù)",    "同色球--1.0\n\nCopyright (C) 2003 ~ 2008 北京飛漫軟件技術(shù)有限公司\n\n 保留所有權(quán)利"};static const char* messagebox_tw[] ={    "你確定要退出嗎?",    "同色球",    "得分:%.5d",    "游戲結(jié)束!\n你的分?jǐn)?shù)是:%.5d",    "同色球游戲",    "場景",    "分?jǐn)?shù)",    "同色球--1.0\n\nCopyright (C) 2003 ~ 2008 北京飛漫軟件技術(shù)有限公司\n\n 保留所有權(quán)利"};static const char* messagebox_en[] ={    "Are you sure to quit?",    "Same",    "Score: %.5d",               //2    "End of Game! \nYour Score: %.5d",      //3    "The Same Game",              //4    "Scenario: ",                //5    "Score:",                    //6    "Same -- Version 1.0\n\nCopyright (C) 2003 ~ 2008 Beijing Feynman Software Technology Co., Ltd.\nAll rights reserved."          //7};static const char* about_menu_cn[] ={    "關(guān)于",    "關(guān)于同色球游戲"};static const char* about_menu_tw[] ={    "關(guān)於",    "關(guān)於同色球游戲"};static const char* about_menu_en[] ={    "About",    "About same game"};static const char* game_menu_cn[] ={    "游戲",    "新游戲",    "退出"};static const char* game_menu_tw[] ={    "游戲",    "新游戲",    "退出"};static const char* game_menu_en[] ={    "Game",    "New game",    "Exit"};static const char* main_menu_cn[] ={    "游戲",    "關(guān)于"};static const char* main_menu_tw[] ={    "游戲",    "關(guān)於"};static const char* main_menu_en[] ={    "Game",    "About"};static const char* main_help_cn[] ={" 同色球 -- 1.0 \n\n Copyright (C) 2003 ~ 2008 北京飛漫軟件技術(shù)有限公司\n\n 保留所有權(quán)利."};static const char* main_help_tw[] ={" 同色球 -- 1.0 \n\n Copyright (C) 2003 ~ 2008 北京飛漫軟件技術(shù)有限公司\n\n 保留所有權(quán)利."};static const char* main_help_en[] ={" Same -- Version 1.0 \n\n Copyright (C) 2003 ~ 2008 Beijing Feynman Software Technology Co., Ltd.\nAll rights reserved."};static int cur_sel_scen = 0;static PLOGFONT cap_font = NULL;static PLOGFONT ctrl_font = NULL;static PLOGFONT menu_font = NULL;static PLOGFONT utf8_font = NULL;static void init_same(){    cap_font = g_SysLogFont[SYSLOGFONT_CAPTION];    ctrl_font = g_SysLogFont[SYSLOGFONT_CONTROL];    menu_font = g_SysLogFont[SYSLOGFONT_MENU];    utf8_font = CreateLogFontByName("*-Arial-rrncnn-*-12-UTF-8");    g_SysLogFont[SYSLOGFONT_CAPTION] = utf8_font;    g_SysLogFont[SYSLOGFONT_CONTROL] = utf8_font;    g_SysLogFont[SYSLOGFONT_MENU] = utf8_font;    if(strcasecmp(lang,"zh_cn")==0){        local_SysText = GetSysTextInUTF8("zh_CN");    }    else if(strcasecmp(lang,"zh_tw")==0){        local_SysText = GetSysTextInUTF8("zh_TW");    }    else       local_SysText = GetSysTextInUTF8("EN");}static void release_same(){    g_SysLogFont[SYSLOGFONT_CAPTION] = cap_font;    g_SysLogFont[SYSLOGFONT_CONTROL] = ctrl_font;    g_SysLogFont[SYSLOGFONT_MENU] = menu_font;    DestroyLogFont(utf8_font);}static struct ball {    int color;    int tag;    int frame;} field [STONE_COLS][STONE_LINES];static int nstones;static int ncolors;static int sync_stones = 0;#define mapx(x) (x)#define mapy(y) (STONE_LINES-1-(y))static voiddraw_ball (HDC hdc, int x, int y){    int bx, by;    if (field [x][y].color){        by = STONE_SIZE * (field [x][y].color - 1);        bx = STONE_SIZE * (field [x][y].frame);                FillBoxWithBitmapPart (hdc, x * STONE_SIZE, y * STONE_SIZE,                  STONE_SIZE, STONE_SIZE, 0, 0, &stones,                 bx, by);    } else {        SetBrushColor (hdc, PIXEL_black);        FillBox (hdc, x * STONE_SIZE, y * STONE_SIZE,                       STONE_SIZE, STONE_SIZE);    }}static void paint (HWND hwnd, HDC hdc){    RECT rc;    int x1, y1, x2, y2, x, y;        GetClientRect (hdc, &rc);    x1 = rc.left / STONE_SIZE;    y1 = rc.top / STONE_SIZE;    x2 = rc.right / STONE_SIZE;    y2 = rc.bottom / STONE_SIZE;    for (x = 0; x < STONE_COLS; x++){        for (y = 0; y < STONE_LINES; y++){            draw_ball (hdc, x, y);        }    }}static void untag_all (HWND hwnd){    int x, y;    HDC hdc = GetClientDC (hwnd);    for (x = 0; x < STONE_COLS; x++)        for (y = 0; y < STONE_LINES; y++){            field [x][y].tag   = 0;            if (sync_stones && field [x][y].frame != 0) {                field [x][y].frame = 0;                draw_ball (hdc, x, y);            }        }    ReleaseDC (hdc);}static int flood_fill (int x, int y, int color){    int c = 0;        if (field [x][y].color != color)        return c;        if (field [x][y].tag)        return c;    c = 1;    field [x][y].tag = 1;        if (x+1 < STONE_COLS)        c += flood_fill (x+1, y, color);    if (x)        c += flood_fill (x-1, y, color);    if (y+1 < STONE_LINES)        c += flood_fill (x, y+1, color);    if (y)        c += flood_fill (x, y-1, color);    return c;}static int move_tagged_balls (HDC hdc){    int x, y;        for (x = 0; x < STONE_COLS; x++)        for (y = 0; y < STONE_LINES; y++){            if (!field [x][y].tag)                continue;            field [x][y].frame = (field [x][y].frame + 1) % nstones;            draw_ball (hdc, x, y);        }    return 1;}static void disable_timeout (HWND hwnd){    if (ball_timeout_id != -1){        KillTimer (hwnd, ball_timeout_id);        ball_timeout_id = -1;    }}static void mark_balls (HWND hwnd, int x, int y){    if (x == old_x && y == old_y)        return;    old_x = x;    old_y = y;    untag_all (hwnd);    disable_timeout (hwnd);    if (!field [x][y].color)        return;        tagged_count = flood_fill (x, y, field [x][y].color);        if (tagged_count > 1) {        SetTimer (hwnd, ID_TIMER, 10);         ball_timeout_id = ID_TIMER;    }}static void unmark_balls (HWND hWnd){    old_x = -1;    old_y = -1;    disable_timeout (hWnd);    untag_all (hWnd);}static void compress_column (int x){    int y, ym;        for (y = STONE_LINES - 1; y >= 0; y--){        if (!field [mapx(x)][mapy(y)].tag)            continue;        for (ym = y; ym < STONE_LINES - 1; ym++)            field [mapx(x)][mapy(ym)] = field [mapx(x)][mapy(ym+1)];        field [mapx(x)][mapy(ym)].color = 0;        field [mapx(x)][mapy(ym)].tag   = 0;    }}static void compress_y (void){    int x;    for (x = 0; x < STONE_COLS; x++)        compress_column (x);}static void copy_col (int dest, int src){    int y;        for (y = 0; y < STONE_LINES; y++)        field [mapx(dest)][mapy(y)] = field [mapx(src)][mapy(y)];}static void clean_last_col (void){    int y;    for (y = 0; y < STONE_LINES; y++){        field [mapx(STONE_COLS-1)][mapy(y)].color = 0;        field [mapx(STONE_COLS-1)][mapy(y)].tag   = 0;    }}static void compress_x (void){    int x, xm, l;    for (x = 0; x < STONE_COLS; x++){        for (l = STONE_COLS; field [mapx(x)][mapy(0)].color == 0 && l; l--){            for (xm = x; xm < STONE_COLS-1; xm++)                copy_col (xm, xm+1);            clean_last_col ();        }     }}static void set_score (int new_score){    char b [40];        score = new_score;    sprintf (b, pmessagebox[2], score);    if (hwnd_score != HWND_INVALID)        SetWindowText (hwnd_score, b);}static void end_of_game (HWND hWnd, char *title){        char b [256];    sprintf (b, pmessagebox[3], score);    MessageBox (hWnd, b, title,             MB_OK | MB_ICONINFORMATION | MB_BASEDONPARENT);}static void check_game_over (HWND hwnd){    int cleared=1;    int x,y;        for(x = 0; x < STONE_COLS; x++)        for(y = 0 ; y < STONE_LINES; y++) {            if (!field [x][y].color)                continue;            cleared = 0;            if(x+1 < STONE_COLS)                 if(field[x][y].color == field[x+1][y].color)                    return;            if(y+1 < STONE_LINES)                 if(field[x][y].color == field[x][y+1].color)                    return;        }    if (cleared){        set_score (score+1000);        end_of_game (hwnd, _(pmessagebox[4]));    }    else        end_of_game(hwnd, _(pmessagebox[4]));}static void kill_balls (HWND hwnd, int x, int y){    if (!field [x][y].color)        return;        if (tagged_count < 2)        return;    set_score (score + (tagged_count - 2) * (tagged_count - 2));    compress_y ();    compress_x ();    InvalidateRect (hwnd, &rcBoard, FALSE);    check_game_over (hwnd);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产拍揄自揄精品视频麻豆| 欧美影视一区在线| 久久亚洲精华国产精华液| 蜜桃91丨九色丨蝌蚪91桃色| 7777精品伊人久久久大香线蕉完整版| 91亚洲精品久久久蜜桃| 亚洲人精品午夜| 9191国产精品| 国产成人日日夜夜| 亚洲精品伦理在线| 日韩女优制服丝袜电影| 国产69精品久久久久毛片| 亚洲色图视频网| 日韩一区二区免费高清| 国产不卡高清在线观看视频| 亚洲丝袜自拍清纯另类| 91麻豆精品国产91久久久使用方法| 奇米色一区二区| 国产精品久久久久精k8 | 亚洲乱码国产乱码精品精98午夜| 欧美丝袜丝交足nylons| 欧美bbbbb| 欧美激情一区不卡| 在线成人免费观看| 成人黄色a**站在线观看| 天天做天天摸天天爽国产一区 | 欧美三级乱人伦电影| 久久草av在线| 亚洲免费视频中文字幕| 精品久久国产老人久久综合| 99精品视频中文字幕| 麻豆精品国产91久久久久久| 亚洲欧美日韩在线| 久久综合久久99| 欧美在线观看视频一区二区三区| 国产一区91精品张津瑜| 亚洲电影欧美电影有声小说| 久久精品夜色噜噜亚洲a∨| 欧美喷潮久久久xxxxx| 99久久久久久| 国产精品一级片| 免费的成人av| 香港成人在线视频| 成人欧美一区二区三区1314 | 中文字幕欧美区| 91精品国产综合久久精品app| 国产成人av网站| 久久精品99久久久| 午夜精品成人在线| 亚洲午夜久久久久久久久电影院| 久久久噜噜噜久久人人看| 欧美一区二区三区视频在线观看| 91视频.com| 成人小视频在线| 国产精品一区二区无线| 免费一级片91| 日韩精品一级中文字幕精品视频免费观看 | 玉米视频成人免费看| 国产女同互慰高潮91漫画| 日韩精品最新网址| 日韩一区二区三区电影 | 91国产成人在线| 99久久精品国产麻豆演员表| 国产东北露脸精品视频| 国产精品一区二区在线播放| 国产在线精品一区二区不卡了 | 欧美自拍偷拍午夜视频| 91麻豆精品在线观看| 99r精品视频| 91啪在线观看| 91国偷自产一区二区三区成为亚洲经典| 成人黄色av网站在线| 成人激情免费电影网址| av激情亚洲男人天堂| 99免费精品视频| 日本韩国精品一区二区在线观看| 91免费看视频| 日本韩国一区二区三区视频| 欧美性大战久久久久久久| 欧美性大战久久久| 91麻豆精品国产91久久久更新时间| 欧美一区二区视频免费观看| 91精品在线观看入口| 日韩精品一区二区三区视频播放 | 91精品国产91久久久久久一区二区 | 美女免费视频一区二区| 另类成人小视频在线| 国产最新精品免费| 国产成人av一区二区三区在线观看| 国产91精品精华液一区二区三区 | 欧美bbbbb| 欧美日韩免费不卡视频一区二区三区| 欧美四级电影网| 欧美电影免费观看高清完整版在 | 蜜桃久久av一区| 国产精品系列在线观看| kk眼镜猥琐国模调教系列一区二区| 大胆欧美人体老妇| 91福利资源站| 欧美成人精品二区三区99精品| 精品久久久久99| 亚洲美女屁股眼交| 奇米影视7777精品一区二区| 国产精品88av| 欧美日韩亚洲国产综合| 日韩欧美黄色影院| 中文字幕在线免费不卡| 性感美女久久精品| 国产福利一区在线| 在线观看欧美黄色| 久久久三级国产网站| 亚洲午夜精品久久久久久久久| 日韩精品一二区| 成人福利在线看| 日韩欧美成人一区二区| 国产精品国产精品国产专区不蜜| 亚洲成人激情自拍| 成人理论电影网| 欧美一二区视频| 亚洲激情av在线| 国产99久久久国产精品免费看| 色综合久久久网| 国产亚洲成av人在线观看导航| 亚洲亚洲人成综合网络| 国产ts人妖一区二区| 欧美巨大另类极品videosbest| 中文字幕乱码亚洲精品一区| 图片区小说区区亚洲影院| 成人开心网精品视频| 欧美第一区第二区| 亚洲高清免费在线| 99精品久久久久久| 久久久亚洲高清| 蜜臀国产一区二区三区在线播放 | 久久精品国产77777蜜臀| 色综合网色综合| 欧美激情自拍偷拍| 精品亚洲国内自在自线福利| 欧美怡红院视频| 亚洲美女一区二区三区| 成人午夜短视频| 久久久精品国产免大香伊| 日本女人一区二区三区| 欧美中文字幕一区二区三区 | 欧美美女一区二区三区| 国产精品久久久久国产精品日日| 精品一区二区三区在线观看| 欧美日韩高清一区二区三区| 亚洲美女少妇撒尿| 99久久免费视频.com| 国产精品乱码妇女bbbb| 国产麻豆91精品| 国产偷国产偷精品高清尤物| 极品少妇一区二区三区精品视频 | 丝袜诱惑亚洲看片| 在线视频国内自拍亚洲视频| 亚洲日穴在线视频| 99久久精品国产一区二区三区| 国产精品三级久久久久三级| 国产成人精品在线看| 肉色丝袜一区二区| 欧美日韩一区二区在线观看| 亚洲自拍欧美精品| 色视频一区二区| 亚洲国产一区在线观看| 欧美无砖砖区免费| 午夜精品福利久久久| 欧美剧情片在线观看| 青青草一区二区三区| 日韩精品资源二区在线| 久久精工是国产品牌吗| 久久久另类综合| 成a人片国产精品| 亚洲欧美电影一区二区| 欧美性xxxxx极品少妇| 日韩精品欧美精品| 欧美大片免费久久精品三p | 亚洲国产成人porn| 91麻豆精品久久久久蜜臀| 蜜桃视频第一区免费观看| 久久影院电视剧免费观看| 成人午夜大片免费观看| 一区二区三区日韩欧美| 日韩一区二区在线观看视频| 国产在线一区二区| 中文字幕一区二区三区精华液 | 欧美一区二区三区不卡| 国产麻豆视频一区二区| 国产精品久久久久久久久免费桃花| 日本精品一区二区三区高清| 日韩黄色小视频| 久久久精品国产免费观看同学| 91网址在线看| 久久精品国产77777蜜臀| 国产精品久久精品日日| 精品视频资源站| 国产在线视视频有精品| 一区二区三区在线观看网站| 日韩三级精品电影久久久| 99这里只有精品|