亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C 語言的實際運用 ---150809124

發布時間:2020-07-21 17:11:33 來源:網絡 閱讀:588 作者:哇丿咔丿咔 欄目:網絡安全

#include<stdio.h>
#include<windows.h>//基本型態定義。支援型態定義函數。使用者界面函數 圖形裝置界面函數。
#include<conio.h> //用戶通過按鍵盤產生的對應操作 (控制臺)
#include<stdlib.h>
#include<time.h> //日期和時間頭文件
#define LEN 30
#define WID 25



int Snake[LEN][WID] = {0}; //數組的元素代表蛇的各個部位
char Sna_Hea_Dir = 'a';//記錄蛇頭的移動方向
int Sna_Hea_X, Sna_Hea_Y;//記錄蛇頭的位置
int Snake_Len = 3;//記錄蛇的長度
clock_t Now_Time;//記錄當前時間,以便自動移動
int Wait_Time ;//記錄自動移動的時間間隔
int Eat_Apple = 1;//吃到蘋果表示為1
int Level ;
int All_Score = -1;
int Apple_Num = -1;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //獲取標準輸出的句柄 <windows.h>
//句柄 :標志應用程序中的不同對象和同類對象中的不同的實例 方便操控,
void gotoxy(int x, int y)//設置光標位置
{
    COORD pos = {x,y}; //定義一個字符在控制臺屏幕上的坐標POS

   SetConsoleCursorPosition(hConsole, pos); //定位光標位置的函數<windows.h>

}

void Hide_Cursor()//隱藏光標 固定函數
{
   CONSOLE_CURSOR_INFO cursor_info = {1, 0};
   SetConsoleCursorInfo(hConsole, &cursor_info);
}

void SetColor(int color)//設置顏色
{
    SetConsoleTextAttribute(hConsole, color);
//是API設置字體顏色和背景色的函數 格式:SetConsoleTextAttribute(句柄,顏色);
}

void Print_Snake()//打印蛇頭和蛇的脖子和蛇尾
{
    int iy, ix, color;
    for(iy = 0; iy < WID; ++iy)
        for(ix = 0; ix < LEN; ++ix)
        {

           if(Snake[ix][iy] == 1)//蛇頭
            {
                SetColor(0xf);            //oxf代表分配的內存地址  setcolor:34行自定義設置顏色的函數
                gotoxy(ix*2, iy);
                printf("※");
            }
            if(Snake[ix][iy] == 2)//蛇的脖子
            {
                color = rand()%15 + 1; //rand()函數是產生隨機數的一個隨機函數。C語言里還有 srand()函數等。
//頭文件:stdlib.h
                if(color == 14)
                    color -= rand() % 13 + 1; //變色
                SetColor(color);
                gotoxy(ix*2, iy);
                printf("■");
            }
            if(Snake[ix][iy] == Snake_Len)
            {
                gotoxy(ix*2, iy);
                SetColor(0xe);
                printf("≈");
            }
        }
}

void Clear_Snake()//擦除貪吃蛇
{
    int iy, ix;
    for(iy = 0; iy < WID; ++iy)
        for(ix = 0; ix < LEN; ++ix)
        {
            gotoxy(ix*2, iy);
            if(Snake[ix][iy] == Snake_Len)
                printf("  ");
        }
}

void Rand_Apple()//隨機產生蘋果
{
    int ix, iy;

   do
    {
        ix = rand() % LEN;
        iy = rand() % WID;
    }while(Snake[ix][iy]);

   Snake[ix][iy] = -1;
    gotoxy(ix*2, iy);
    printf("⊙");
    Eat_Apple = 0;
}

void Game_Over()//蛇死掉了
{
    gotoxy(30, 10);
    printf("Game Over");
    Sleep(3000);
    system("pause > nul");
    exit(0);
}

void Move_Snake()//讓蛇動起來
{
    int ix, iy;

   for(ix = 0; ix < LEN; ++ix)//先標記蛇頭
        for(iy = 0; iy < WID; ++iy)
            if(Snake[ix][iy] == 1)
            {
               switch(Sna_Hea_Dir)//根據新的蛇頭方向標志蛇頭
                {
                    case 'w':
                        if(iy == 0)
                            Game_Over();
                        else
                            Sna_Hea_Y = iy - 1;
                        Sna_Hea_X = ix;

                       break;
                    case 's':
                        if(iy == (WID -1))
                                Game_Over();
                        else
                            Sna_Hea_Y = iy + 1;
                        Sna_Hea_X = ix;

                        break;
                    case 'a':
                        if(ix == 0)
                                Game_Over();
                        else
                            Sna_Hea_X = ix - 1;
                        Sna_Hea_Y = iy;

                        break;
                    case 'd':
                        if(ix == (LEN - 1))
                                Game_Over();
                        else
                            Sna_Hea_X = ix + 1;
                        Sna_Hea_Y = iy;

                       break;
                    default:
                        break;
                }
            }

    if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1&&Snake[Sna_Hea_X][Sna_Hea_Y]!=0&&Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)
        Game_Over();

   if(Snake[Sna_Hea_X][Sna_Hea_Y] < 0)//吃到蘋果
    {
        ++Snake_Len;
        Eat_Apple = 1;
    }
    for(ix = 0; ix < LEN; ++ix)//處理蛇尾
        for(iy = 0; iy < WID; ++iy)
        {
            if(Snake[ix][iy] > 0)
            {
                if(Snake[ix][iy] != Snake_Len)
                    Snake[ix][iy] += 1;
                else
                    Snake[ix][iy] = 0;
            }
        }

Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//處理蛇頭    
}

void Get_Input()//控制蛇的移動方向
{
    if(kbhit())
    {
        switch(getch())
        {
        case 87:

                Sna_Hea_Dir = 'w';
            break;
        case 83:

            Sna_Hea_Dir = 's';
            break;
        case 65:

            Sna_Hea_Dir = 'a';
            break;
        case 68:

            Sna_Hea_Dir = 'd';
            break;
        default:
            break;
        }
    }

   if(clock() - Now_Time >= Wait_Time)//蛇到時間自動行走
    {
        Clear_Snake();
        Move_Snake();
        Print_Snake();
        Now_Time = clock();
    }
}

void Init()//初始化
{
    system("title 貪吃毛毛蛇");
    system("mode con: cols=80 lines=25");
    Hide_Cursor();

   gotoxy(61, 4);
    printf("You Score:");
    gotoxy(61, 6);
    printf("You Level:");
    gotoxy(61, 8);
    printf("The Lenght:");
    gotoxy(61, 10);
    printf("The Speed:");
    gotoxy(61, 12);
    printf("Apple Num:");

   int i;
    for(i = 0; i < Snake_Len; ++i)//生成蛇
        Snake[10+i][15] = i+1;

   int iy, ix;//打印蛇
    for(iy = 0; iy < WID; ++iy)
        for(ix = 0; ix < LEN; ++ix)
        {
            if(Snake[ix][iy])
            {
                SetColor(Snake[ix][iy]);            
                gotoxy(ix*2, iy);
                printf("■");
            }
        }
}

       運用C語言中的語句不僅能做一些有趣的小游戲也可以完成生活中的一些實際問題,理清關系很重要,先完成定義 然后進行關系上的輸入,最后就可以進行程序的運行,達到自己想要的目的,C語言貼切實際,我要好好學習它。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武穴市| 满城县| 扶风县| 城口县| 新营市| 股票| 和静县| 霸州市| 伊宁市| 儋州市| 锡林郭勒盟| 新泰市| 新乐市| 沙坪坝区| 平湖市| 西昌市| 东辽县| 灵山县| 河西区| 绥滨县| 邵东县| 黔江区| 通山县| 大姚县| 松桃| 奉化市| 江源县| 白朗县| 马公市| 姚安县| 乐昌市| 无为县| 河津市| 旬邑县| 石门县| 开鲁县| 平南县| 虎林市| 静宁县| 凌源市| 滨州市|