• <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 聶元朗 閱讀(486) 評論(1)  編輯 收藏 引用 所屬分類: C語言學習筆記

            Feedback

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

            国产精品久久久久久五月尺| 一本色综合网久久| 老男人久久青草av高清| 伊人久久大香线蕉AV色婷婷色| 国产精品9999久久久久| 久久一区二区免费播放| 久久久婷婷五月亚洲97号色| 激情久久久久久久久久| 久久综合国产乱子伦精品免费| 国内精品久久久久久久coent| 18岁日韩内射颜射午夜久久成人 | 偷偷做久久久久网站| 久久99精品久久久久久动态图 | 久久久无码人妻精品无码| 久久AⅤ人妻少妇嫩草影院| 精品人妻伦九区久久AAA片69| 国内精品久久久久久久久| 亚洲国产精品无码久久| 合区精品久久久中文字幕一区| 国产美女久久久| 久久精品国产亚洲AV无码娇色| 伊人久久大香线蕉精品不卡| 26uuu久久五月天| 久久99亚洲网美利坚合众国| 久久中文字幕人妻丝袜| 久久国产精品偷99| 香蕉久久夜色精品国产小说| 久久久久高潮毛片免费全部播放 | 国产精品天天影视久久综合网| 久久精品国产精品亚洲精品 | 久久人人爽人人爽人人AV | 久久国产视屏| 精品久久久久久国产免费了| 久久无码av三级| 日本精品久久久久中文字幕| 国产亚洲色婷婷久久99精品| 亚洲国产精品无码久久久秋霞2| 99精品久久精品一区二区| 国产成人精品久久| 漂亮人妻被黑人久久精品| 伊人久久综合成人网|