<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【C語(yǔ)言】猜數(shù)字小游戲詳細(xì)教程

          共 13655字,需瀏覽 28分鐘

           ·

          2022-01-13 06:35

          游戲效果

          先帶大家看下游戲效果,

          1.首頁(yè)面

          img

          2.模式選擇頁(yè)面

          img

          3.游戲頁(yè)面

          img

          4.成功頁(yè)面

          img

          項(xiàng)目源碼分享

          注:VS2019編譯器不能用scanf,若想用要在第一行加上下面的代碼

          #define?_CRT_SECURE_NO_WARNINGS
          #include
          #include
          #include
          #include

          void?gotoxy(short?x,?short?y);?//將光標(biāo)移動(dòng)到指定位置

          void?date();??//時(shí)間函數(shù)

          void?Menu();??//游戲首頁(yè)面

          void?menu1();??//游戲模式選擇頁(yè)面

          void?menu2();??//魔鬼模式頁(yè)面

          void?menu3();??//變態(tài)模式頁(yè)面

          void?quit();??//游戲結(jié)束頁(yè)面

          void?fault();??//錯(cuò)選提示

          void?win();???//獲勝頁(yè)面

          void?fail();??//失敗頁(yè)面

          void?game1();??//簡(jiǎn)單模式

          void?game2();??//正常模式

          void?game3();??//魔鬼模式

          void?game4();??//變態(tài)模式

          void?pattern();??//模式選擇程序

          int?main()
          {
          ?
          ?system("COLOR?0A");
          ?int?input?=?0;
          ?srand((unsigned?int)time(0));
          ?do
          ?{
          ??system("cls");??//清屏
          ??date();????//打印時(shí)間。
          ??Menu();????//打印菜單
          ??gotoxy(54,?25);??//將光標(biāo)定位
          ??printf("請(qǐng)選擇->");
          ??while?(scanf("%d",?&input)?!=?EOF)
          ??{
          ???getchar();
          ???if?(input?==?1?||?input?==?2)
          ????break;
          ???fault();
          ???Sleep(1500);
          ??
          ???system("cls");??//清屏
          ???date();????//打印時(shí)間。
          ???Menu();????//打印菜單
          ???gotoxy(54,?25);??//將光標(biāo)定位
          ???printf("請(qǐng)選擇->");
          ??
          ??}
          ??
          ??switch?(input)
          ??{
          ??case?1:
          ???pattern();
          ???break;
          ??//case?2:
          ??//?system("cls");??//清屏
          ??//?date();
          ??//?rule();
          ??//?break;
          ??case?2:
          ???system("cls");??//清屏
          ???quit();
          ???Sleep(3000);
          ???exit(0);
          ???break;
          ??//default:
          ??//?//system("cls");??//清屏
          ??//?fault();
          ??//?Sleep(1500);
          ??//?break;
          ??}
          ??
          ?}?while?(1);
          ?return?0;
          }

          void?gotoxy(short?x,?short?y)
          {
          ?COORD?coord?=?{?x,?y?};
          ?SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),?coord);
          }

          void?date()?//顯示當(dāng)前日期
          {
          ?printf("\n當(dāng)前日期:");
          ?system("date/t");
          ?printf("當(dāng)前時(shí)間:");
          ?system("time/t");

          }

          void?Menu()?{
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓??????????????????????????????????????????????*??歡迎進(jìn)入猜數(shù)字小游戲??*????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n?????????????????????????????◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");
          ?printf("????????????????????????????|◆|******|◆|?????????????????????????????????????|◆|******|◆|\n");
          ?printf("????????????????????????????|◆|******|◆|???????☆?開(kāi)始游戲????請(qǐng)按?1?????????|◆|******|◆|\n");
          ?printf("????????????????????????????|◆|******|◆|???????☆?退出游戲????請(qǐng)按?2?????????|◆|******|◆|\n");
          ?printf("????????????????????????????|◆|******|◆|?????????????????????????????????????|◆|******|◆|\n");
          ?printf("?????????????????????????????◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓???????????????????????????????????????????????*************************?????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");

          }

          void?menu1()?{
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓?????????????????????????????????????????????????????*?歡迎使用?*????????????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n??????????????????????????????◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");
          ?printf("????????????????????????????|◆|******|◆|?????????????????????????????????????|◆|******|◆|\n");
          ?printf("????????????????????????????|◆|******|◆|???????☆?簡(jiǎn)單模式????請(qǐng)按?1?????????|◆|******|◆|\n");
          ?printf("????????????????????????????|◆|******|◆|???????☆?正常模式????請(qǐng)按?2?????????|◆|******|◆|\n");
          ?printf("????????????????????????????|◆|******|◆|???????☆?魔鬼模式????請(qǐng)按?3?????????|◆|******|◆|\n");
          ?printf("????????????????????????????|◆|******|◆|???????☆?變態(tài)模式????請(qǐng)按?4?????????|◆|******|◆|\n");
          ?printf("????????????????????????????|◆|******|◆|?????????????????????????????????????|◆|******|◆|\n");
          ?printf("??????????????????????????????◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓???????????????????????????????????????????????*************************?????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");

          }

          //*******************************************************************************************************************
          //game3頁(yè)面

          void?menu2()
          {
          ?system("cls");??//清屏
          ?date();????//打印時(shí)間。
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓?????????????????????????????????????????????????*?歡迎進(jìn)入魔鬼模式?*????????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓????????????????????????????☆規(guī)則:系統(tǒng)隨機(jī)生成一組0到9不重復(fù)的數(shù),具體生成幾個(gè)由玩家設(shè)定???????????????????????????▓\n");
          ?printf("\n▓????????????????????????????☆規(guī)則:玩家需要輸入和系統(tǒng)順序一致且數(shù)字相同的數(shù),即可獲勝。?????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓????????????????????????????☆提示:A表示數(shù)字和位置都正確,B代表只有數(shù)字正確,順序不對(duì)。?????????????????????????????▓\n");
          ?printf("\n▓????????????????????????????☆提示:???字母前面的數(shù)字表示個(gè)數(shù)????????????????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");

          }

          //*******************************************************************************************************************
          //game4頁(yè)面

          void?menu3()
          {
          ?system("cls");??//清屏
          ?date();????//打印時(shí)間。
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓?????????????????????????????????????????????????*?歡迎進(jìn)入魔鬼模式?*????????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓????????????????????????????☆規(guī)則:系統(tǒng)隨機(jī)生成一組0到19不重復(fù)的數(shù),具體生成幾個(gè)由玩家設(shè)定??????????????????????????▓\n");
          ?printf("\n▓????????????????????????????☆規(guī)則:玩家需要輸入和系統(tǒng)順序一致且數(shù)字相同的數(shù),即可獲勝。?????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓????????????????????????????☆提示:A表示數(shù)字和位置都正確,B代表只有數(shù)字正確,順序不對(duì)。?????????????????????????????▓\n");
          ?printf("\n▓????????????????????????????☆提示:???字母前面的數(shù)字表示個(gè)數(shù)????????????????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");

          }

          //*******************************************************************************************************************
          //結(jié)束頁(yè)面

          void?quit()
          {

          ?printf("\n\n");
          ?printf("########################################################################################################################\n");
          ?printf("###??????????????????????????????????????????????????????????????????????????????????????????????????????????????????###\n");
          ?printf("###???\t\t\t||================================================================||\t\t\t?????###\n");
          ?printf("###???\t\t\t||?????????????????????????*猜數(shù)字小游戲*?????????????????????????||\t\t\t?????###\n");
          ?printf("###???\t\t\t||================================================================||\t\t\t?????###\n");
          ?printf("###???\t\t\t||??????????????????????☆☆☆☆☆☆☆☆☆☆??????????????????????||\t\t\t?????###\n");
          ?printf("###???\t\t\t||??????????????????????☆????????????????☆??????????????????????||\t\t\t?????###\n");
          ?printf("###???\t\t\t||????????????????☆☆????歡迎玩家下次挑戰(zhàn)????☆☆????????????????||\t\t\t?????###\n");
          ?printf("###???\t\t\t||??????????????????????☆????????????????☆??????????????????????||\t\t\t?????###\n");
          ?printf("###???\t\t\t||??????????????????????☆☆☆☆☆☆☆☆☆☆??????????????????????||\t\t\t?????###\n");
          ?printf("###???\t\t\t||????????????????????????????????????????????????????????????????||\t\t\t?????###\n");
          ?printf("###???\t\t\t||================================================================||\t\t\t?????###\n");
          ?printf("###???\t\t\t||================================================================||\t\t\t?????###\n");
          ?printf("###??????????????????????????????????????????????????????????????????????????????????????????????????????????????????###\n");
          ?printf("########################################################################################################################\n");

          }

          //*******************************************************************************************************************
          //錯(cuò)選提示
          void?fault()
          {
          ?printf("\n\n?????????????????????????????????????***********************************************??????????????????????????????????????\n");
          ?printf("?????????????????????????????????????▓????$#$??????選擇錯(cuò)誤,重新選擇??????$#$?????▓\n");
          ?printf("\n?????????????????????????????????????***********************************************??????????????????????????????????????\n");

          }

          //*******************************************************************************************************************
          //成功頁(yè)面

          void?win()
          {
          ?printf("\n\n\n\n\n\n");
          ?printf("????\t\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
          ?printf("????\t\t\t|#|??????????????????????????????????????????????????????????|#|\n");
          ?printf("????\t\t\t|#|????????????????????☆☆☆☆☆☆☆☆☆☆??????????????????|#|\n");
          ?printf("????\t\t\t|#|????????????????????☆????????????????☆??????????????????|#|\n");
          ?printf("????\t\t\t|#|?????????????☆☆?????恭喜你,挑戰(zhàn)成功!???☆☆???????????|#|\n");
          ?printf("????\t\t\t|#|????????????????????☆????????????????☆??????????????????|#|\n");
          ?printf("????\t\t\t|#|????????????????????☆☆☆☆☆☆☆☆☆☆??????????????????|#|\n");
          ?printf("\t\t\t|#|??????????????????????????????????????????????????????????|#|\n");
          ?printf("\t\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
          ?system("COLOR?0A");
          }

          //*******************************************************************************************************************
          //失敗頁(yè)面
          void?fail()
          {
          ?printf("\n\n\n\n\n\n");
          ?printf("????\t\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
          ?printf("????\t\t\t|#|??????????????????????????????????????????????????????????|#|\n");
          ?printf("????\t\t\t|#|????????????????????☆☆☆☆☆☆☆☆☆☆??????????????????|#|\n");
          ?printf("????\t\t\t|#|????????????????????☆????????????????☆??????????????????|#|\n");
          ?printf("????\t\t\t|#|?????????????☆☆?????????挑戰(zhàn)失敗!???????☆☆???????????|#|\n");
          ?printf("????\t\t\t|#|????????????????????☆????????????????☆??????????????????|#|\n");
          ?printf("????\t\t\t|#|????????????????????☆☆☆☆☆☆☆☆☆☆??????????????????|#|\n");
          ?printf("\t\t\t|#|??????????????????????????????????????????????????????????|#|\n");
          ?printf("\t\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");

          }

          //*******************************************************************************************************************
          //簡(jiǎn)單模式

          void?game1()
          {
          ?system("cls");??//清屏
          ?date();????//打印時(shí)間。
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓?????????????????????????????????????????????????*?歡迎進(jìn)入簡(jiǎn)單模式?*????????????????????????????????????????????????▓\n");
          ?printf("\n▓????????????????????????????????????????*?在1-100之間系統(tǒng)會(huì)隨機(jī)生成一個(gè)數(shù)字?*????????????????????????????????????????▓\n");
          ?printf("\n▓????????????????????????????????????????*???????????請(qǐng)用戶猜該數(shù)字??????????*????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");

          ?int?n?=?rand()?%?100?+?1;
          ?int?guess?=?0;
          ?while?(1)
          ?{
          ??printf("\n▓#$請(qǐng)猜數(shù)字:>");
          ??scanf("%d",?&guess);
          ??if?(guess???{
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ???printf("\n????????????????????????????????????????▓????????#$????猜小了????$#??????????▓\n");
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ??}
          ??else?if?(guess?>?n)
          ??{
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ???printf("\n????????????????????????????????????????▓????????#$????猜大了????$#??????????▓\n");
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ??}
          ??else
          ??{
          ???system("COLOR?04");
          ???system("cls");??//清屏
          ???date();????//打印時(shí)間。
          ???win();
          ???break;
          ??}
          ?}

          }

          //*******************************************************************************************************************
          //正常模式

          void?game2()
          {
          LOOP:date();????//打印時(shí)間。
          ?system("COLOR?A0");
          ?system("cls");??//清屏
          ?date();????//打印時(shí)間。
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓?????????????????????????????????????????????????*?歡迎進(jìn)入正常模式?*????????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓???????????????????????????????????????????????*?提醒:這是個(gè)鏡像世界?*??????????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");

          ?int?n?=?rand()?%?100?+?1;
          ?int?guess?=?0;
          ?int?i?=?0,?k?=?1,?s;
          ?printf("\n▓#$請(qǐng)輸入挑戰(zhàn)次數(shù):>");
          ?scanf("%d",?&s);
          ??
          ?for?(i?=?0;?i??{
          ??printf("\n▓#$請(qǐng)猜數(shù)字:>");
          ??scanf("%d",?&guess);
          ??if?(guess???{
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ???printf("\n????????????????????????????????????????▓????????#$????猜大了????$#??????????▓\n");
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ??}
          ??else?if?(guess?>?n)
          ??{
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ???printf("\n????????????????????????????????????????▓????????#$????猜小了????$#??????????▓\n");
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ??}
          ??else
          ??{
          ???system("COLOR?04");
          ???system("cls");??//清屏
          ???date();????//打印時(shí)間。
          ???win();
          ???k?=?0;
          ???break;
          ??}
          ?}
          ?if?(k)
          ?{
          ??system("cls");??//清屏
          ??date();????//打印時(shí)間。
          ??win();
          ??Sleep(3000);
          ??printf("\n??????????????????????????????????????************************************??????????????????????????????????????\n");
          ??printf("\n ?????????????????????????????????????▓????$#$??嘻嘻,逗你呢!??$#$????▓\n");
          ??printf("\n??????????????????????????????????????************************************???????????????????????????????????????\n");
          ??Sleep(3000);
          ??goto?LOOP;
          ?}
          }

          //*******************************************************************************************************************
          //魔鬼模式

          void?game3()
          {
          ?int?acount,?bcount,?n?=?0,?i,?j,?k?=?0,?flag,?a[10],?b[10];


          ?do
          ?{
          ??menu2();
          ??printf("\n▓?#$請(qǐng)輸入要猜幾個(gè)數(shù)字(1);
          ??while?(n?<=?1?||?n?>?10)
          ???scanf("%d",?&n);
          ??flag?=?0;
          ??for?(i?=?0;?i???{
          ???a[i]?=?rand()?%?10;???//每次產(chǎn)生0-9范圍內(nèi)任意的一個(gè)隨機(jī)數(shù)字并存到數(shù)組a中
          ??}
          ??for?(i?=?0;?i?1
          ;?i++)
          ??{
          ???for?(j?=?i?+?1;?j????{
          ????if?(a[i]?==?a[j])?//判斷數(shù)組a中是否有相同數(shù)字
          ????{
          ?????flag?=?1;??//若有上述情況則標(biāo)志位置1
          ?????break;
          ????}
          ???}
          ??}
          ??//for?(i?=?0;?i?
          ??//?printf("%d?",?a[i]);
          ??//printf("\n");
          ??
          ?}?while?(flag?==?1);??//若標(biāo)志位為1則重新分配數(shù)據(jù)
          ??
          ?do
          ?{
          ??k++;??//記錄猜數(shù)字的次數(shù)
          ??acount?=?0;???//每次猜的過(guò)程中位置和數(shù)字都正確的個(gè)數(shù)
          ??bcount?=?0;???//每次猜的過(guò)程中位置不正確但數(shù)字正確的個(gè)數(shù)、
          ??printf("\n▓#$請(qǐng)猜%d個(gè)數(shù),用空格分開(kāi):>",?n);
          ??for?(i?=?0;?i???{
          ???scanf("%d",?&b[i]);??//輸入猜測(cè)的數(shù)據(jù)到數(shù)組b中
          ???getchar();
          ??
          ??}
          ??for?(i?=?0;?i????for?(j?=?0;?j????{
          ????if?(a[i]?==?b[i])?//檢測(cè)輸入的數(shù)據(jù)與計(jì)算機(jī)分配的數(shù)據(jù)相同且位置相同的個(gè)數(shù)
          ????{
          ?????acount++;
          ?????break;
          ????}
          ????if?(a[i]?==?b[j]?&&?i?!=?j)?//檢測(cè)輸入的數(shù)據(jù)與計(jì)算機(jī)分配的數(shù)據(jù)相同但位置不同的個(gè)數(shù)
          ????{
          ?????bcount++;
          ?????break;
          ????}
          ???}
          ??printf("▓#$提示:%dA , %dB\n\n",?acount,?bcount);
          ??if?(acount?==?n)
          ??{
          ???system("COLOR?04");
          ???system("cls");??//清屏
          ???date();????//打印時(shí)間。
          ???win();
          ???break;
          ??}
          ?}?while?(1);
          }

          //*******************************************************************************************************************
          //變態(tài)模式

          void?game4()
          {
          ?int?acount,?bcount,?i,?j,?k?=?0,?flag,?a[20],?b[20],?n?=?0;
          ?do
          ?{
          ??menu3();
          ??printf("\n▓?#$請(qǐng)輸入要猜幾個(gè)數(shù)字(5);
          ??while?(n?<=?5?||?n?>=?20)
          ???scanf("%d",?&n);
          ??flag?=?0;
          ??for?(i?=?0;?i???{
          ???a[i]?=?rand()?%?20;???//每次產(chǎn)生0-19范圍內(nèi)任意的一個(gè)隨機(jī)數(shù)字并存到數(shù)組a中
          ??}
          ??for?(i?=?0;?i?1
          ;?i++)
          ??{
          ???for?(j?=?i?+?1;?j????{
          ????if?(a[i]?==?a[j])?//判斷數(shù)組a中是否有相同數(shù)字
          ????{
          ?????flag?=?1;??//若有上述情況則標(biāo)志位置1
          ?????break;
          ????}
          ???}
          ??}
          ??//for?(i?=?0;?i?
          ??//?printf("%d?",?a[i]);
          ??//printf("\n");

          ?}?while?(flag?==?1);??//若標(biāo)志位為1則重新分配數(shù)據(jù)
          ??
          ?do
          ?{
          ??k++;??//記錄猜數(shù)字的次數(shù)
          ??acount?=?0;???//每次猜的過(guò)程中位置和數(shù)字都正確的個(gè)數(shù)
          ??bcount?=?0;???//每次猜的過(guò)程中位置不正確但數(shù)字正確的個(gè)數(shù)、
          ??printf("\n▓#$請(qǐng)猜%d個(gè)數(shù),用空格分開(kāi):>",?n);
          ??for?(i?=?0;?i???{
          ???scanf("%d",?&b[i]);??//輸入猜測(cè)的數(shù)據(jù)到數(shù)組b中
          ???getchar();
          ??
          ??}
          ??for?(i?=?0;?i????for?(j?=?0;?j????{
          ????if?(a[i]?==?b[i])?//檢測(cè)輸入的數(shù)據(jù)與計(jì)算機(jī)分配的數(shù)據(jù)相同且位置相同的個(gè)數(shù)
          ????{
          ?????acount++;
          ?????break;
          ????}
          ????if?(a[i]?==?b[j]?&&?i?!=?j)?//檢測(cè)輸入的數(shù)據(jù)與計(jì)算機(jī)分配的數(shù)據(jù)相同但位置不同的個(gè)數(shù)
          ????{
          ?????bcount++;
          ?????break;
          ????}
          ???}
          ??printf("▓#$提示:%dA , %dB\n\n",?acount,?bcount);
          ??if?(acount?==?n)
          ??{
          ???system("COLOR?04");
          ???system("cls");??//清屏
          ???date();????//打印時(shí)間。
          ???win();
          ???break;
          ??}
          ?}?while?(1);
          }

          //*******************************************************************************************************************
          //模式選擇頁(yè)面

          void?pattern()
          {
          ?int?input1?=?0,?n?=?0;
          ?char?s?=?0;
          ?do
          ?{
          ??system("cls");??//清屏
          ??date();
          ??menu1();
          ??gotoxy(54,?25);
          ??printf("請(qǐng)選擇->");

          ??while?(scanf("%d",?&input1)?!=?EOF)
          ??{
          ???getchar();
          ???if?(input1?>=?1?&&?input1?<=?4)
          ????break;
          ???fault();
          ???Sleep(1500);
          ???system("cls");??//清屏
          ???date();
          ???menu1();
          ???gotoxy(54,?25);
          ???printf("請(qǐng)選擇->");
          ??}
          ??switch?(input1)
          ??{
          ??case?1:
          ???game1();
          ???goto?LINK;
          ??
          ??case?2:
          ???game2();
          ???goto?LINK;
          ??case?3:
          ???game3();
          ???goto?LINK;
          ??case?4:
          ???game4();
          ???goto?LINK;
          ??
          ??}
          ??
          ?}?while?(1);
          LINK:printf("\n\n?????????????????????????????????????***********************************************??????????????????????????????????????\n");
          ?printf("?????????????????????????????????????▓????$#$??按ENTER鍵進(jìn)入、返回主菜單??$#$?????▓\n");
          ?printf("\n?????????????????????????????????????***********************************************??????????????????????????????????????\n");

          ?getchar();
          ?while?((s?=?getchar())?!=?'\n')
          ?{
          ??;
          ?}

          }

          分步講解以下為代碼塊,在編譯器上不能執(zhí)行,只用于理解

          一、主函數(shù)

          int?main()
          {
          ?
          ?system("COLOR?0A");????????//改變字體背景顏色
          ?int?input?=?0;
          ?srand((unsigned?int)time(NULL));????//設(shè)置隨機(jī)種子
          ?do
          ?{
          ??system("cls");??//清屏
          ??date();????//打印時(shí)間。
          ??Menu();????//打印菜單
          ??gotoxy(54,?25);??//將光標(biāo)定位
          ??printf("請(qǐng)選擇->");
          ??while?(scanf("%d",?&input)?!=?EOF)????//處理當(dāng)用戶輸入信息為字母或其他數(shù)字的bug
          ??{
          ???getchar();
          ???if?(input?==?1?||?input?==?2)
          ????break;
          ???fault();
          ???Sleep(1500);????????????//程序停止運(yùn)行,vs2019的單位是毫秒。
          ??
          ???system("cls");??//清屏
          ???date();????//打印時(shí)間。
          ???Menu();????//打印菜單
          ???gotoxy(54,?25);??//將光標(biāo)定位
          ???printf("請(qǐng)選擇->");
          ??
          ??}
          ??
          ??switch?(input)????
          ??{
          ??case?1:
          ???pattern();????????????//進(jìn)入模式選擇頁(yè)面
          ???break;
          ??
          ??case?2:
          ???system("cls");??//清屏
          ???quit();????????????//進(jìn)入游戲結(jié)束頁(yè)面
          ???Sleep(3000);
          ???exit(0);????????????//程序結(jié)束。
          ???break;
          ??
          ??}
          ??
          ?}?while?(1);????????//能多次玩游戲
          ?return?0;
          }

          1)system("COLOR 0A");system頭文件

              其中COLOR后面的0是背景色代號(hào),A是前景色代號(hào)

          顏色代號(hào)

          0 黑色 1 藍(lán)色 2 綠色 3 湖藍(lán)色 4 紅色 5 紫色 6 黃色 7 白色 8 灰色 9 淡藍(lán)色 A 淡綠色 B 淡淺綠色 C 淡紅色 D 淡紫色 ?E 淡黃色 F 亮白色

          2)srand((unsigned int)time(NULL));srand()函數(shù)用來(lái)設(shè)置算法的種子,time(NULL)返回當(dāng)前的時(shí)間,先調(diào)用srand(time(NULL))是把當(dāng)前的時(shí)間作為種子,使程序每次運(yùn)行產(chǎn)生不同的隨機(jī)數(shù)序列。

          3)system("cls"); ? ? ? ?//清屏

          1. gotoxy(54, 25) ? ? ? ? ? ? ? ?//光標(biāo)定位1、在 Turbo C 或 Borland C 中可以使用 gotoxy 函數(shù),包含在頭文件 conio.h中。

          2、而在 Visual C++ 或 GCC 中使用 gotoxy 函數(shù),就需要把上面自定義的 gotoxy 函數(shù)寫(xiě)在自己的程序中。

          下面這個(gè) C 程序?qū)⒃谄聊恢械?行10列(橫向?yàn)閄,縱向?yàn)閅軸)中央輸出“你好 陌生人”

          #include?
          #include?

          void?gotoxy(short?x,?short?y)
          {
          ????COORD?coord?=?{x,?y};
          ????SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),?coord);
          }

          int?main(void)?{
          ????gotoxy(10,?5);
          ????printf("你好?陌生人\n");

          ????return?0;
          }

          來(lái)源于百度gotoxyhttps://baike.baidu.com/item/gotoxy/2986529?fr=aladdin

          5)Sleep()Sleep函數(shù)可以使計(jì)算機(jī)程序(進(jìn)程,任務(wù)或線程)進(jìn)入休眠,使其在一段時(shí)間內(nèi)處于非活動(dòng)狀態(tài)。

          windows下的Sleep函數(shù),首字母大寫(xiě) ?#include ? ? 參數(shù)usigned long類(lèi)型,為毫秒數(shù)。

          linux下的sleep函數(shù),首字母小寫(xiě) ? #include ?其參數(shù)為秒數(shù)。

          sleep函數(shù)https://baike.baidu.com/item/Sleep%E5%87%BD%E6%95%B0

          6)exit(0);exit(0)的意思指的是正常狀態(tài)退出。

          exit()就是退出,傳入的參數(shù)是程序退出時(shí)的狀態(tài)碼,0表示正常退出,其他表示非正常退出。退出程序,括號(hào)中的0表示程序的退出返回代碼,無(wú)實(shí)際意義。exit()就是退出 , 0就是返回的參數(shù), ?也可以返回 1 ?-1 等 ?你可以用來(lái)判斷函數(shù)是否正確返回

          二、pattern子函數(shù)

          void?pattern()
          {
          ?int?input1?=?0,?n?=?0;
          ?char?s?=?0;
          ?do
          ?{
          ??system("cls");??//清屏
          ??date();????????????//顯示日期
          ??menu1();???????????
          ??gotoxy(54,?25);
          ??printf("請(qǐng)選擇->");

          ??while?(scanf("%d",?&input1)?!=?EOF)
          ??{
          ???getchar();
          ???if?(input1?>=?1?&&?input1?<=?4)
          ????break;
          ???fault();
          ???Sleep(1500);
          ???system("cls");??//清屏
          ???date();
          ???menu1();
          ???gotoxy(54,?25);
          ???printf("請(qǐng)選擇->");
          ??}
          ??switch?(input1)
          ??{
          ??case?1:
          ???game1();
          ???goto?LINK;
          ??
          ??case?2:
          ???game2();
          ???goto?LINK;
          ??case?3:
          ???game3();
          ???goto?LINK;
          ??case?4:
          ???game4();
          ???goto?LINK;
          ??
          ??}
          ??
          ?}?while?(1);
          LINK:printf("\n\n?????????????????????????????????????***********************************************??????????????????????????????????????\n");
          ?printf("?????????????????????????????????????▓????$#$??按ENTER鍵進(jìn)入、返回主菜單??$#$?????▓\n");
          ?printf("\n?????????????????????????????????????***********************************************??????????????????????????????????????\n");

          ?getchar();
          ?while?((s?=?getchar())?!=?'\n')
          ?{
          ??;
          ?}

          }

          1)goto語(yǔ)句goto (無(wú)條件轉(zhuǎn)換語(yǔ)句)函數(shù)可以出現(xiàn)在程序的任意一條語(yǔ)句之前,

          一般形式:

          goto ?標(biāo)號(hào) ;

          標(biāo)號(hào) : 語(yǔ)句;程序可直接由goto跳的標(biāo)號(hào)的那一個(gè)語(yǔ)句。

          三、簡(jiǎn)單模式

          void?game1()
          {
          ?system("cls");??//清屏
          ?date();????//打印時(shí)間。
          ?printf("\n########################################################################################################################\n");
          ?printf("\n▓?????????????????????????????????????????????????*?歡迎進(jìn)入簡(jiǎn)單模式?*????????????????????????????????????????????????▓\n");

          ?printf("\n▓????????????????????????????????????????*?在1-100之間系統(tǒng)會(huì)隨機(jī)生成一個(gè)數(shù)字?*????????????????????????????????????????▓\n");
          ??
          ?printf("\n▓????????????????????????????????????????*???????????請(qǐng)用戶猜該數(shù)字??????????*????????????????????????????????????????▓\n");
          ?printf("\n########################################################################################################################\n");
          ??
          ?int?n?=?rand()?%?100?+?1;????????//去1——100之間的隨機(jī)變量賦值給n
          ?int?guess?=?0;
          ?while?(1)
          ?{
          ??printf("\n▓#$請(qǐng)猜數(shù)字:>");
          ??scanf("%d",?&guess);
          ??if?(guess?//猜的數(shù)比系統(tǒng)產(chǎn)生的數(shù)小。
          ??{
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ???printf("\n????????????????????????????????????????▓????????#$????猜小了????$#??????????▓\n");
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ??}
          ??else?if?(guess?>?n)????//猜的數(shù)比系統(tǒng)產(chǎn)生的數(shù)大。
          ??{
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ???printf("\n????????????????????????????????????????▓????????#$????猜大了????$#??????????▓\n");
          ???printf("\n????????????????????????????????????????****************************************????????????????????????????????????????\n");
          ??}
          ??else????????//猜對(duì)了,
          ??{
          ???system("COLOR?04");????//換顏色
          ???system("cls");??//清屏
          ???date();????//打印時(shí)間。
          ???win();
          ???break;
          ??}
          ?}

          }

          「游戲設(shè)置思路」先由系統(tǒng)產(chǎn)生一個(gè)隨機(jī)數(shù)。用個(gè)變量先存起來(lái)。再設(shè)個(gè)變量來(lái)存玩家猜的數(shù),然后讓再讓這兩數(shù)比較不同給出提示,相同則游戲通過(guò)。

          注意:猜錯(cuò)了的提示不要弄反,猜錯(cuò)了之后不要結(jié)束程序要有循環(huán)讓玩家繼續(xù)猜。

          四、魔鬼模式

          void?game3()
          {
          ?int?acount,?bcount,?n?=?0,?i,?j,?k?=?0,?flag,?a[10],?b[10];


          ?do
          ?{
          ??menu2();????//打印魔鬼模式的界面
          ??printf("\n▓?#$請(qǐng)輸入要猜幾個(gè)數(shù)字(1);
          ??while?(n?<=?1?||?n?>?10)
          ???scanf("%d",?&n);
          ??flag?=?0;
          ??for?(i?=?0;?i?//把隨機(jī)生成的數(shù)存到數(shù)組a中

          ??{
          ???a[i]?=?rand()?%?10;???//每次產(chǎn)生0-9范圍內(nèi)任意的一個(gè)隨機(jī)數(shù)字并存到數(shù)組a中
          ??}
          ??for?(i?=?0;?i?1;?i++)????????//若有一樣的數(shù),重新分配數(shù)字。
          ??{
          ???for?(j?=?i?+?1;?j????{
          ????if?(a[i]?==?a[j])?//判斷數(shù)組a中是否有相同數(shù)字
          ????{
          ?????flag?=?1;??//若有上述情況則標(biāo)志位置1
          ?????break;
          ????}
          ???}
          ??}
          ??//for?(i?=?0;?i?
          ??//?printf("%d?",?a[i]);
          ??//printf("\n");
          ??
          ?}?while?(flag?==?1);??//若標(biāo)志位為1則重新分配數(shù)據(jù)
          ??
          ?do
          ?{
          ??k++;??//記錄猜數(shù)字的次數(shù)
          ??acount?=?0;???//每次猜的過(guò)程中位置和數(shù)字都正確的個(gè)數(shù)
          ??bcount?=?0;???//每次猜的過(guò)程中位置不正確但數(shù)字正確的個(gè)數(shù)、
          ??printf("\n▓#$請(qǐng)猜%d個(gè)數(shù),用空格分開(kāi):>",?n);
          ??for?(i?=?0;?i???{
          ???scanf("%d",?&b[i]);??//輸入猜測(cè)的數(shù)據(jù)到數(shù)組b中
          ???getchar();
          ??}
          ??for?(i?=?0;?i????for?(j?=?0;?j????{
          ????if?(a[i]?==?b[i])?//檢測(cè)輸入的數(shù)據(jù)與計(jì)算機(jī)分配的數(shù)據(jù)相同且位置相同的個(gè)數(shù)
          ????{
          ?????acount++;
          ?????break;
          ????}
          ????if?(a[i]?==?b[j]?&&?i?!=?j)?//檢測(cè)輸入的數(shù)據(jù)與計(jì)算機(jī)分配的數(shù)據(jù)相同但位置不同的個(gè)數(shù)
          ????{
          ?????bcount++;
          ?????break;
          ????}
          ???}
          ??printf("▓#$提示:%dA , %dB\n\n",?acount,?bcount);
          ??if?(acount?==?n)????????//玩家猜的數(shù)組與系統(tǒng)產(chǎn)生的一樣,游戲通過(guò)
          ??{
          ???system("COLOR?04");
          ???system("cls");??//清屏
          ???date();????//打印時(shí)間。
          ???win();
          ???break;
          ??}
          ?}?while?(1);
          }

          「1)游戲設(shè)置思路」先讓玩家輸入一個(gè)數(shù)字作為產(chǎn)生數(shù)組a的個(gè)數(shù),例如:輸入5,就產(chǎn)生5的隨機(jī)數(shù)并存到數(shù)組a中。

          玩家在輸入一組數(shù)存到數(shù)組b中,讓數(shù)組b與a比較完全相同則游戲通過(guò)

          提示A:順序與數(shù)字相同 ? ? ? ?B順序不對(duì),但系統(tǒng)生成的隨機(jī)數(shù)里有這個(gè)數(shù)字。

          來(lái)源:https://blog.csdn.net/weixin_62263267/article/details/122389955

          僅供大家學(xué)習(xí)參考與知識(shí)傳播,版權(quán)歸原作者所有,如有侵權(quán),麻煩聯(lián)系進(jìn)行刪除,感謝~

          ???????????????? ?END ?????????????????

          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  囯产精品久久久久久久久久久久久久 | 美女裸身18禁 | 欧美性爱在线观看网站 | A视频免费观看 | 欧美黄色片在线观看 |