• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            朗朗空間

            我知道并不是 所有鳥兒都飛翔

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              16 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(1)

            我參與的團隊

            搜索

            •  

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            書上的一個練習!

            // date 2008.5.25
            // author fanghua.nie
            // just do a exercise in the C How To Program
             
            #include <windows.h>
            #include <stdio.h>
            #include <stdlib.h>
            #include <time.h>
             
            #define START_POS 1
            #define RACE_DISTANCE  70  // the distances of the race
             
            #define TORTOISE 'T'    // the symbol that is printed  in the screen as a tortoise
            #define RABBIT 'R'      // the symbol that is printed in the screen as a rabbit
            #define ROAD '.'        // the symbol that is printed in the screen as a mile road.
            #define COMPLETE_ROAD '+'
             
            // define the console color
            #define LIGHT_GREEN FOREGROUND_GREEN | FOREGROUND_INTENSITY
            #define LIGHT_YELLOW FOREGROUND_GREEN | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY
            #define LIGHT_RED FOREGROUND_RED | FOREGROUND_INTENSITY
            // define BOOL datatype
            typedef int BOOL;
            #define TRUE 1   
            #define FALSE 0
             
             
             
            //get the speed of the tortoise or the rabbit
            int GetTortoiseSpeed ( int percent, int * speed );
            int GetRabbitSpeed ( int percent, int * speed );
             
            //output the result in console interface
            void PrintRaceResult ( int tortoisePosition, int rabbitPosition );
             
            int main (void)
            {
                
            int percent; // save the percent as a integer that less 10
                            
            // 1  10%,   2 20%, 9 90%, 10 100% etc.
                
            int speed; // save the speed of the rabbit or the tortoise
                
                
            int tortoisePosition = START_POS;
                
            int rabbitPosition = START_POS;
             
                
            srand ( time(NULL) );
             
                
            printf ("     The game began:\n");
                
            //show the tortoise and the rabbit
                
            PrintRaceResult ( tortoisePosition, rabbitPosition );
             
                
            while ( rabbitPosition < RACE_DISTANCE && tortoisePosition < RACE_DISTANCE )
                
            {
                    
            //compute next speed of the tortoise
                    
            percent = rand()%10 + 1;
             
                    
            if ( !GetTortoiseSpeed ( percent, &speed ) ) //get the speed of the tortoise
                    
            {
                        
            puts ("Error!\n");
                        
            exit (ERROR);
                    
            }
                    
                    
            // move the tortoise to next position
                    
            tortoisePosition = tortoisePosition + speed;
             
                    
            if ( tortoisePosition < 0 )
                        
            tortoisePosition = START_POS;
                    
            else if ( tortoisePosition > RACE_DISTANCE )
                        
            tortoisePosition = RACE_DISTANCE;
                    
                    
            //compute next rate of rabbit speed
                    
            percent = rand()%10 + 1; //get the percent
             
                    
            if ( !GetRabbitSpeed (percent, &speed) ) //get the speed of rabbit
                    
            {
                        
            puts ("Error!\n");
                        
            exit (ERROR);
                    
            }
                    
                    
            //move the rabbit
                    
            rabbitPosition = rabbitPosition + speed;
                    
                    
            //check the position whether is right or not, then correct it.
                    
            if ( rabbitPosition < 0 )
                        
            rabbitPosition = START_POS;
                    
            else if ( rabbitPosition > RACE_DISTANCE )
                        
            rabbitPosition = RACE_DISTANCE;
                    
                    
            //show the tortoise and the rabbit
                    
            PrintRaceResult ( tortoisePosition, rabbitPosition );
             
                
            }
                
                
            //print the race result
                
            if ( rabbitPosition > tortoisePosition )
                
            {
                    
            printf ("Rabbit Wins!\n");
                
            }
                
            else if ( rabbitPosition == tortoisePosition )
                
            {
                    
            printf ("It's a tie\n");
                
            }
                
            else
                
            {
                    
            printf ("Tortoise Wins!\n");
                
            }
             
                
            return 0;
            }
             
            BOOL GetTortoiseSpeed ( int percent, int * speed )
            {
                
            if ( percent >= 1 && percent <= 5 )
                
            {
                    
            (*speed) = 3;
                    
            return TRUE;
                
            }
                
            else if ( percent >= 6 && percent <= 7 )
                
            {
                    
            (*speed) = -6;
                    
            return TRUE;
                
            }
                
            else if ( percent >= 8 && percent <= 10 )
                
            {
                    
            (*speed) = 1;
                    
            return TRUE;
                
            }
                
            else
                
            {
                    
            return FALSE;
                
            }
            }
             
            BOOL GetRabbitSpeed ( int percent, int * speed )
            {
                
            if ( percent >= 1 && percent <= 2 )
                
            {
                    
            (*speed) = 0;
                    
            return TRUE;
                
            }
                
            else if ( percent >= 3 && percent <= 4 )
                
            {
                    
            (*speed) = 9;
                    
            return TRUE;
                
            }
                
            else if ( percent == 5 )
                
            {
                    
            (*speed) = -12;
                    
            return TRUE;
                
            }
                
            else if ( percent >= 6 && percent <= 8 )
                
            {
                    
            (*speed) = 1;
                    
            return TRUE;
                
            }
                
            else if ( percent >= 9 && percent <= 10 )
                
            {
                    
            (*speed) = -2;
                    
            return TRUE;
                
            }
                
            else
                
            {
                    
            return FALSE;
                
            }
            }
             
            void PrintRaceResult ( int tortoisePosition, int rabbitPosition )
            {
                
            int tcount;
                
            int rcount;
             
                
            HANDLE hOut;
                
            hOut = GetStdHandle(STD_OUTPUT_HANDLE);
                
            printf ("\n     ");
                
            for ( tcount = START_POS; tcount <= RACE_DISTANCE; tcount++ )
                
            {
             
                    
            if ( tcount == tortoisePosition )
                    
            {
                        
            SetConsoleTextAttribute (hOut, LIGHT_GREEN );
                        
            putchar (TORTOISE);
                    
            }
                    
            else if ( tcount < tortoisePosition )
                    
            {
                        
            SetConsoleTextAttribute (hOut, LIGHT_GREEN );
                        
            putchar (COMPLETE_ROAD);
                    
            }
                    
            else
                    
            {
                        
            SetConsoleTextAttribute (hOut, LIGHT_RED );
                        
            putchar (ROAD);
                    
            }
                
            }
                
            printf ("\n     ");
             
                
            for ( rcount = START_POS; rcount <= RACE_DISTANCE; rcount++ )
                
            {
                    
            if ( rcount == rabbitPosition )
                    
            {
                        
            SetConsoleTextAttribute ( hOut, LIGHT_GREEN );
                        
            putchar (RABBIT);
                    
            }
                    
            else if ( rcount < rabbitPosition )
                    
            {
                        
            SetConsoleTextAttribute (hOut, LIGHT_GREEN );
                        
            putchar (COMPLETE_ROAD);
                    
            }
                    
            else
                    
            {
                        
            SetConsoleTextAttribute ( hOut, LIGHT_YELLOW );
                        
            putchar (ROAD);
                    
            }
                
            }
                
            printf ("\n\n");
             
            }
            posted on 2008-05-25 13:56 聶元朗 閱讀(485) 評論(1)  編輯 收藏 引用 所屬分類: C語言學習筆記

            Feedback

            # re: 書上的練習-隨機數-龜兔賽跑[未登錄] 2008-05-27 13:54 冷月
            太強了!  回復  更多評論
              

            精品久久8x国产免费观看| 2021精品国产综合久久| 亚洲午夜精品久久久久久app| 777米奇久久最新地址| 久久99国产精品99久久| 久久精品成人免费观看97| 久久一区二区免费播放| 婷婷久久香蕉五月综合加勒比| 久久久精品人妻一区二区三区四| 久久精品无码午夜福利理论片| 91精品国产高清久久久久久io| 久久久久国色AV免费看图片| 无码伊人66久久大杳蕉网站谷歌 | 亚洲国产成人久久综合一| 久久久久国产精品三级网| 久久亚洲日韩精品一区二区三区| 91精品免费久久久久久久久| 精品国产99久久久久久麻豆| 久久久久久毛片免费看| 热re99久久6国产精品免费| 久久久久亚洲av无码专区导航| 久久精品国产一区二区三区不卡| 久久国产精品一国产精品金尊| 久久亚洲精品无码aⅴ大香| 欧美国产成人久久精品| 久久成人小视频| 欧美日韩精品久久免费| 久久久久久免费视频| 国产偷久久久精品专区| 久久精品亚洲AV久久久无码| 久久精品国产亚洲av麻豆蜜芽| 国产A级毛片久久久精品毛片| 99久久这里只精品国产免费| 国内精品伊人久久久久妇| 久久人爽人人爽人人片AV| 狠狠色婷婷综合天天久久丁香| 精品人妻伦一二三区久久| 超级97碰碰碰碰久久久久最新 | 久久热这里只有精品在线观看| 亚洲综合精品香蕉久久网| 国产成人99久久亚洲综合精品 |