關於c語言110猜謎的信息

本文目錄一覽:

C語言題目 編程實現數字猜謎遊戲!

一個函數用於生成一個隨機數

再用一個函數進行三次循環

如果循環中輸入的數字猜對了就返回1如果三次循環結束則返回0

主數字判斷返回的結果如果是1則表示猜對否則表示猜錯

然後詢問是否繼續進行猜數字遊戲

下面是一個簡單的代碼

#include stdio.h

#include time.h

void clean_input_buf(void)

{

    while(getchar() != ‘\n’);

}

int make_num(int num)

{

    srand(num);

    return 1+rand()%20;

}

int guess_num(void)

{

    int i=3;

    int n;

    int num;

    num=make_num(clock());

    while(i)

    {

        printf(“請輸入一個你猜的數字:”);

        scanf(“%d”,n);

        if(n == num)

            return 1;

        clean_input_buf();

        –i;

    }

    return 0;

}

int main(int argc,char **argv)

{

    char c;

    printf(“猜數字遊戲!\n遊戲要猜測的數字為1-20,每個數字可以猜測3次!\n”);

    while(1)

    {

        if(guess_num() == 1)

            printf(“恭喜你,你猜中了!\n”);

        else

            printf(“很遺憾,你猜錯了!\n”);

redo:

        printf(“還要繼續遊戲嗎?繼續輸入Y否則輸入N!\nY/N:”);

        c=getchar();

        clean_input_buf();

        if(c == ‘Y’ || c == ‘y’)

            continue;

        else if(c == ‘N’ || c == ‘n’)

            break;

        else

        {

            printf(“輸入錯誤,請重新輸入!\n”);

            goto redo;

        }

    }

    return 0;

}

c語言猜數字遊戲源代碼

小遊戲2048:

#includestdio.h

#includestdlib.h

#includeconio.h

#includetime.h

#includewindows.h

int  jsk( );   //計算空格數

void rsgm( );  //重置遊戲

void inkey( );  //按鍵輸入

void left( );   //向左移動

void right( );  //向右移動

void up( );  //向上移動

void down( );  //向下移動

void show( );   //輸出界面

void adnum( ); //添加隨機數

void yes( );   //遊戲是否結束(1是0否)

void gtxy(int x, int y); //控制光標位置的函數

int a[4][4];   //存儲16個格子中的數字

int score = 0;  //每局得分

int best = 0;  //最高得分

int ifnum;  //是否需要添加數字(1是0否)

int over;   //遊戲結束標誌(1是0否)

int i,j,k;

int main( )

{ rsgm( );  //重置遊戲

  inkey( );  //按鍵輸入

  return 0;

}

void Color(int a)   //設定字符顏色的函數(a應為1-15)

{  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);  }

void rsgm( )   //重置遊戲

{ score = 0; ifnum = 1; over = 0; srand((unsigned)time(0));  //啟動隨機數發生器

int n = rand( ) % 16;   //隨機函數產生0-15的數字

for (i = 0; i 4; i++)

{for (j = 0; j 4; j++)

   { if (n == 0) { int k = rand( ) % 3; if (k == 0 || k == 1) { a[i][j] = 2; }

                        else { a[i][j] = 4; } n–; }

     else { a[i][j] = 0; n–; }

   }

}

adnum( );

system(“cls”);

CONSOLE_CURSOR_INFO gb={1,0};  //以下兩行是隱藏光標的設置,gb代指光標

SetConsoleCursorInfo( GetStdHandle(STD_OUTPUT_HANDLE), gb );

Color(14);   //設置字體淡黃色

printf(“\n\n\t\t  2048小遊戲”); Color(7);   //恢復白字黑底

printf(“\n\t┌──────┬──────┬──────┬──────┐”);

printf(“\n\t│      │      │      │      │”);

printf(“\n\t├──────┼──────┼──────┼──────┤”);

printf(“\n\t│      │      │      │      │”);

printf(“\n\t├──────┼──────┼──────┼──────┤”);

printf(“\n\t│      │      │      │      │”);

printf(“\n\t├──────┼──────┼──────┼──────┤”);

printf(“\n\t│      │      │      │      │”);

printf(“\n\t└──────┴──────┴──────┴──────┘”);

show( );

}

void show( )   //輸出界面

{ for(i=0;i4;i++)

for(j=0;j4;j++)

   { gtxy(7*j+9,2*i+4);   //gtxy(7*j+9, 2*i+4)是光標到指定位置輸出數字

     if(a[i][j]==0){printf(”      “); Color(7); printf(“│”);}

     else if(a[i][j]10){ if (a[i][j] == 2) { Color(14); }

                                else if (a[i][j] == 4) { Color(13); }

                                else if (a[i][j] == 8) { Color(12); }

                                printf(”   %d  “, a[i][j]); Color(7 ); printf(“│”);

                              }

    else if (a[i][j] 100){if (a[i][j] == 16) { Color(12); }

                                   else if (a[i][j] == 32) { Color(10); }

                                   else if (a[i][j] == 64) { Color(2 ); }

                                   printf(”  %d  “, a[i][j]); Color(7); printf(“│”);

                                 }

   else if (a[i][j] 1000) {if (a[i][j] == 128) { Color(9); }

                                       else if (a[i][j] == 256) { Color(1); }

                                       else if (a[i][j] == 512) { Color(13); }

                                       printf(”  %d “, a[i][j]); Color(7); printf(“│”);

                                     }

    else if (a[i][j] 10000) {if (a[i][j] == 1024) { Color(5); }

                                         else { Color(15); }

                                         printf(” %d “, a[i][j]); Color(7); printf(“│”);

                                       }

}

if (jsk( ) == 0)

  {  yes( );  if (over) { gtxy(9,12); Color(10);

                                printf(“\n\n  遊戲結束!是否繼續? [ Y/N ]:”); }

  }

}

void inkey( )   //按鍵輸入

{ int key;

while (1)

    { key = getch( );

      if (over) { if (key == 89|| key == 121) { rsgm( ); continue; }

                      else  if (key == 78|| key == 110) { return; }

                      else  continue; }

      ifnum = 0;

     if(key==224)key=getch( );

        switch (key)

            { case 75: left( ); break;

              case 77: right( ); break;

              case 72: up( ); break;

              case 80: down( );break;

}

  if (score best) { best = score; }

  if (ifnum) { adnum( ); show( ); }

}

}

int jsk( )   //計算空格數

{ int n = 0;

for (i = 0; i 4; i++)

   { for (j = 0; j 4; j++) { if ( a[i][j] == 0) {n++;}  }   }

return n;

}

void left( )   //向左移動

{ for (i = 0; i 4; i++)

{for (j = 1, k = 0; j 4; j++)

    { if (a[i][j] 0)

       { if ( a[i][k] == a[i][j])

             { a[i][k] *= 2;  k++;

                score = score + 2 * a[i][j];

                a[i][j] = 0;  ifnum = 1; }

          else if ( a[i][k] == 0) { a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }

          else { a[i][k + 1] = a[i][j]; if ((k + 1) != j) { a[i][j] = 0; ifnum = 1; }

          k++; }

       }

     }

}

}

void right( )   //向右移動

{for (i = 0; i 4; i++)

  {for (j = 2, k = 3; j = 0; j–)

     {if (a[i][j] 0)

        { if (a[i][k] == a[i][j])

               {a[i][k] *= 2; k–; score = score + 2 * a[i][j]; a[i][j] = 0; ifnum = 1; }

    else if ( a[i][k] == 0) {a[i][k] = a[i][j]; a[i][j] = 0; ifnum = 1; }

    else { a[i][k – 1] = a[i][j]; if ((k – 1) != j) { a[i][j] = 0; ifnum = 1; } k–; }

   }

     }

}

}

void up( )   //向上移動

{for (i = 0; i 4; i++)

{for (j = 1, k = 0; j 4; j++)

     {if (a[j][i] 0)

         {if ( a[k][i] == a[j][i]) { a[k][i] *= 2; k++;score = score + 2 * a[j][i];

                                           a[j][i] = 0; ifnum = 1; }

          else if ( a[k][i] == 0) { a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }

          else { a[k + 1][i] = a[j][i]; if ((k + 1) != j) { a[j][i] = 0; ifnum = 1; }

          k++; }

   }

    }

}

}

void down( )   //向下移動

{ for (i = 0; i 4; i++)

{for (j = 2, k = 3; j = 0; j–)

  {if (a[j][i] 0)

     {if (a[k][i] == a[j][i])

          {a[k][i] *= 2; k–;score = score + 2 * a[j][i]; a[j][i] = 0; ifnum = 1; }

       else if (a[k][i] == 0) {a[k][i] = a[j][i]; a[j][i] = 0; ifnum = 1; }

       else {a[k – 1][i] = a[j][i];

                if ((k – 1) != j) {a[j][i] = 0; ifnum = 1; } k–; }

      }

   }

}

}

void adnum( )   //添加隨機數

{ srand(time(0)); int n = rand( ) % jsk( );

for (int i = 0; i 4; i++)

   {for (int j = 0; j 4; j++)

      { if (a[i][j] == 0) {if (n != 0) { n–; }

        else {int k = rand( ) % 3;

                if (k == 0 || k == 1) {a[i][j] = 2; return; }

                else {a[i][j] = 4; return; } }

      }

   }

}

}

void yes( )   //遊戲是否結束

{ for (int i = 0; i 4; i++)

{for (int j = 0; j 3; j++)

     {if (a[i][j] == a[i][j + 1] || a[j][i] == a[j + 1][i]) {over = 0; return; }}

}

over = 1;

}

void gtxy(int x, int y)   //控制光標位置的函數

{ COORD zb;   //zb代指坐標

zb.X = x;

zb.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), zb);

}

C語言猜謎小遊戲

把int count = 3;定義在do裡面,要不然你循環過去後count=0;這句count0就永不成立。

還有就是在scanf(“%c”, another_game);前要清空緩衝區。

第一種用fflush(stdin)清除緩存,也就是清楚緩存中上一次輸入殘留下來的回車鍵

第二種scanf(” %c”, another_game);;在%c前加上一個空格

第三種在scanf(“%c”, another_game);前加getchar();用於吃掉回車鍵,避免被%c接收

c語言編程 ——數字迷

#includestdio.h

intmain()

{

intT,R,e,n,i,g,v,q,Q,C,E,G,I,N,V;

inta,b,c;

#includestdio.h

intmain()

{

intT,R,e,n,i,g,v,q,Q,C,E,G,I,N,V;

inta,b,c;

for(i=4;i=9;i=i+5){

for(v=8;v=9;v++){

for(e=1;e=9;e=e+2){

for(n=0;n=9;n++){

for(g=0;g=9;g++){

for(c=1;c=9;c++){

for(q=0;q=9;q++){

a=v*10000+i*1000+n*100+g*10+1;

b=(c*1000+i*100+n*10+q)*2;

c=100000+e*1000+n*100+10+e;

if((a+b)==c){

printf(“%d:%d”,C,c);

printf(“%d:%d”,E,e);

printf(“%d:%d”,G,g);

printf(“%d:%d”,I,i);

printf(“%d:%d”,N,n);

printf(“%d:%d”,Q,q);

printf(“R:0 “);

printf(“T:1 “);

printf(“%d:%d”,V,v);}}}}}}}}

return 0;

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/287141.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-23 13:06
下一篇 2024-12-23 13:06

相關推薦

  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Java 監控接口返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控接口返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論