• <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 冷月
            太強了!  回復  更多評論
              

            久久精品一区二区三区AV| 国产一区二区精品久久凹凸| 热综合一本伊人久久精品| 久久强奷乱码老熟女| 亚洲精品无码久久久久AV麻豆| 精产国品久久一二三产区区别 | 久久精品亚洲中文字幕无码麻豆| 久久99国内精品自在现线| 伊人色综合久久| 伊人久久大香线蕉综合Av| 久久99精品国产麻豆宅宅| 欧美日韩精品久久久久| 国产亚洲精久久久久久无码| 久久综合狠狠综合久久97色| 久久久久国产精品熟女影院| 久久久久97国产精华液好用吗| 久久人人爽人人爽人人片AV不| 中文字幕亚洲综合久久2| 久久久久亚洲av成人网人人软件 | 99久久精品免费观看国产| 中文精品99久久国产| 久久精品国产亚洲沈樵| 亚洲精品无码久久久久| 久久精品国产清自在天天线| 国产成人无码久久久精品一| 亚洲中文久久精品无码| 日韩久久久久中文字幕人妻 | 亚洲人成网亚洲欧洲无码久久| 国产福利电影一区二区三区久久老子无码午夜伦不 | 99久久777色| 日产精品99久久久久久| 久久久久久久综合狠狠综合| 久久婷婷五月综合成人D啪| 国产成人精品久久| 中文字幕亚洲综合久久2| 91精品观看91久久久久久| 国产成人精品白浆久久69| 亚洲av成人无码久久精品| 精品熟女少妇a∨免费久久| 无码久久精品国产亚洲Av影片| 老色鬼久久亚洲AV综合|