NO.1【嫿骨】の花裡胡哨Hello World!

嫿骨有心麼發表於2020-12-24

- 背景故事

首先說明我目前的情況
大二機械在讀生
自學了一點點c
只能說是勉強算入個門(或者並沒有)
這兩天在一個機構
購買了

會員 ————《老九學堂》

來學習的 想要更進一步地學習
之後也有很大用處的
於是 早上十點發布了第一次每日作業Hello World!後
我! 停了15個小時才去做的
一不留神就四個小時過去到了現在
2020年12月24日05:34:47
有點意思~
(話說我週末就要考試了啊喂 還有一堆東西要學要寫呢)
希望能夠拋轉引玉 也歡迎大家的挑刺(全是刺(笑))
請大家多多指教`
之後也會慢慢進步 一步步走下去的
希望大家可以一起進步
ヽ( ̄ω ̄( ̄ω ̄〃)ゝ

-程式碼

想了幾個算不上點子的小點子
上網搜了搜
翻了翻之前跟著視訊寫的程式碼
試著寫了寫
雖說還有會有些問題叭~
()
用了幾個函式 也更加方便去讀程式碼

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

#define HW "Hello World!"   //將Hello World!定義為常量,方便使用

/*
    需求:輸出各種花裡胡哨的Hello World!
    思路:
        1、顯示顏色(皮膚選擇):通過控制檯程式來對控制檯視窗的前景色背景色進行控制
            a、定時變色(幻影坦克):【待開發】,可由時間對其進行重新整理 不斷變化顏色
        2、原裝版本(元始天尊):直接輸出Hello World!
        3、擴充版本(多重分身):可以通過控制 行i 和 列j 來控制輸出的Hello World!的矩陣
        4、死迴圈版本(無盡深淵):單純地不斷輸出HelloWorld!
            a、輸出速度(死亡流速)【待開發】可隨著時間的流逝,輸出的速度不斷加快等
        5、超大號版本(法相天地):也就是由多個Hello World!來組成一個更大的Hello World!
        6、退出程式(世界核平):嗯 退了 不幹了
        7、一鍵炫彩版本(葫蘆兄弟):【不幹了】七個不同顏色的Hello World!
            a、介面重新整理變化(葫蘆金剛):【待開發】可以通過按鍵控制,對其進行7合1或1分7
        0、直接對話版本(直面世界):【隱藏選項】對世界輸入Hello World!,根據輸入的不同產生不同的回答
        (每次程式執行完後都可以清屏後返回選擇介面)
*/
void One()
{
    int choice; //在這個函式中 用於儲存選項
    printf("請在以下選項中選擇你的皮膚:\n1、紅黑配\n2、紫黑配\n3、紅白配\n4、紫白配\n5、黑白原皮膚\n");
    choice = getch();   //獲取新的選項
    if(choice == '1' || choice == '2' || choice == '3' || choice == '4' || choice == '5')
    {
        if(choice == '1')
        {
            SetColor(4, 0);     //紅黑
        }
        if(choice == '2')
        {
            SetColor(5, 0);     //紫黑
        }
        if(choice == '3')
        {
            SetColor(4, 7);     //紅白
        }
        if(choice == '4')
        {
            SetColor(5, 7);     //紫白
        }
        if(choice == '5')
        {
            SetColor(7, 0);     //黑白原皮膚
        }
    }
    else printf("你輸錯啦~\n"); //輸入其它皮膚選項時
}
void Two()
{
    printf("%s\nEmmmm,that's all.\n一滴也沒有啦~\n", HW);
}
void Three()
{
    int i,j;    //撒豆成兵中的行列
    int iMax,jMax;    //控制撒豆成兵中的行列
    int choice; //在這個函式中 用於儲存選項
    printf("九為極數,汝欲幾人成縱?"); //幾列
    choice = getch();   //getch()所得為ASCII碼
    if(choice == '1' || choice == '2' || choice == '3' || choice == '4' || choice == '5' || choice == '6' || choice == '7' || choice == '8' || choice == '9')
    {
    jMax = choice - 48;    //列數
    }
    else {
    printf("錯了錯了,且退去吧!\n");
    exit(0);
    }
    printf("九為極數,汝欲幾人成縱?\n"); //幾行
    choice = getch();   //getch()所得為ASCII碼
    if(choice == '1' || choice == '2' || choice == '3' || choice == '4' || choice == '5' || choice == '6' || choice == '7' || choice == '8' || choice == '9')
    {
    iMax = choice - 48;     //行數
    }
    else{
    printf("錯了錯了,且退去吧!\n");
    exit(0);
    }
    for(i = 0; i < iMax; i++)
    {
        for(j = 0; j < jMax; j++)
        {
            printf("%s\t", HW);
        }
        printf("\n");
    }
}
void Four()
{
    printf("你終究還是來了……\n");
    Sleep(3000);
    while(1)
    {
        printf("%s\n", HW);
    }
}
void Five()
{
    int k,l;    //控制圖形中間的行列
    printf(
    "         Hello World\n"
    "     !hihihihi hihihihi!\n"
    " !hihihihihihi hihihihihihi!\n");
    //前三排的規律性不強,所以直接顯示
    for(k=0;k<3;k++)//顯示中間三排
    {
    for(l=0;l<29;l++)
    printf("*");
    printf("\n");
    }
    for(k=0;k<7;k++)//顯示呈遞減趨勢規dao律的中間7排
    {
        for(l=0;l<2*(k+1)-1;l++)
        printf(" ");
        for(l=0;l<27-k*4;l++)
        printf("*");
        printf("\n");
    }
}
void Six()
{
    printf("BOOM!!!\n");
    Sleep(1000);
    printf("~");
    Sleep(1000);
    printf("~~");
    Sleep(1000);
    printf("~~~\n");
    Sleep(3000);
    printf("世界被你玩炸了,再也不見!\n");
    printf("Goodbye World!\n");
    exit(0);
}
void Zero()
{
    int choice; //在這個函式中 用於儲存選項
    printf("【站在你面前的正是世界,你正直面著它/他/她】\n");
    printf("Oh~my God!\n");
    Sleep(1500);
    printf("Look who's here!\n");
    Sleep(1500);
    printf("Hi!");
    Sleep(1000);
    while(1)
    {
        printf("我們該說啥子0.0\n請選擇:\n1、Hi!\n2、Hello World!\n3、Goodbye World!\n");
        choice = getch();   //獲取新的選項
        if(choice == '1' || choice == '2' || choice == '3')
        {
            if(choice == '1')
            {
                printf("Hi!\n");
                Sleep(1000);
                printf("The World : Hi!\n");
            }
            if(choice == '2')
            {
                printf("Hello World!\n");
                Sleep(1000);
                printf("The World : 哼╭(╯^╰)╮\n");
            }
            if(choice == '3')
            {
                printf("Goodbye World!\n");
                Sleep(1000);
                printf("The World : 再見了您嘞!!!\n");
                Sleep(3000);
                printf("附:小新老師好棒,果果最厲害啦~\n");
                exit(0);
            }
            printf("這樣 這樣不可以哦~\n");
        }
    }
}
void SetColor(int foreColor, int backColor) //1、皮膚選擇
{
    HANDLE winHandle;  //控制程式碼(相當於windows在管理計算機時,將每一個裝置當作一個控制程式碼)(工作管理員中的映像)
    winHandle = GetStdHandle(STD_OUTPUT_HANDLE); //標準輸出裝置,即控制檯視窗
    //設定文字顏色
    SetConsoleTextAttribute(winHandle, foreColor + backColor * 0x10);  //經過位運算
}
void SetTitle(char *title)
 {
     SetConsoleTitle(title); //SetConsoleTitle()為<windows.h>中的函式
 }


int main()
{
    int key;    //用於存放選擇的選項
    SetTitle("【嫿骨】のHelloWorld世界");
    printf("******************************************************************\n");
    printf("歡迎來到【嫿骨】的世界,");
    while(1)
    {
        printf("接下來請跟隨您的“好奇心”做出最佳選擇:\n1、皮膚選擇:\n2、元始天尊:\n3、撒豆成兵\n4、無盡深淵\n5、法相天地\n6、世界核平\n");
        printf("%s\n", HW);
        printf("******************************************************************\n");
        key = getch();  //相較getchar 不需要按回車
        if(key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key == '6' || key == '0')
        {
            if(key == '1')  //1、皮膚選擇
            {
                One();
            }
            if(key == '2')  //2、元始天尊
            {
                Two();
            }
            if(key == '3')  //3、撒豆成兵
            {
                Three();
            }
            if(key == '4')  //4、無盡深淵
            {
                Four();
            }
            if(key == '5')  //5、法相天地
            {
                Five();
            }
            if(key == '6')  //6、世界核平
            {
                Six();
            }
            if(key == '0')  //0、直面世界
            {
                Zero();
            }
        }
        else
        {
            printf("同志,你輸錯了哦!\n");
        }
        Sleep(3500);    //延時2.5s後開始新的一輪選擇
        system("cls");  //清屏
        printf("歡迎回到【嫿骨】的世界,");
    }
    return 0;
}

//啊,終於打完了 中途還減少了 改變了些功能 上網也查了好多東西 也是很有收穫的 所以,啊我睡了(所以我為什麼要搞成這樣的啊 噗哈哈(*^▽^*))
//對了 下面還有三個警告 不太會整了 噗噗

  • 部分執行程式碼
    請新增圖片描述
    請新增圖片描述
    請新增圖片描述
    請新增圖片描述
    請新增圖片描述
    請新增圖片描述
    請新增圖片描述
    請新增圖片描述
    請新增圖片描述
  • 結束語
    望大家不吝賜教~
    溜了溜了 睡了睡了
    一會還要起床上課
    學校課程也不能落
    要搞得好好的呢~~
    大家 加油~
    ヾ(◍°∇°◍)ノ゙
    請大家眼熟我~

相關文章