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

            Feedback

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

            精品久久久噜噜噜久久久| 亚洲精品午夜国产VA久久成人| 中文精品久久久久人妻不卡| 久久久久99精品成人片| 伊人久久国产免费观看视频| 色综合久久中文字幕无码| 精品九九久久国内精品| 欧美激情精品久久久久久久九九九 | 一级A毛片免费观看久久精品| 综合久久给合久久狠狠狠97色 | 久久久综合九色合综国产| 久久精品视频网| 欧美激情精品久久久久久| 久久精品人人做人人爽97 | 久久高潮一级毛片免费| 日韩欧美亚洲综合久久| 99久久人人爽亚洲精品美女 | 亚洲精品乱码久久久久久蜜桃不卡 | 国内精品久久久久久久涩爱| 亚洲色大成网站www久久九| 国内精品久久久久久不卡影院| 久久精品国产99久久无毒不卡| 欧美性大战久久久久久 | 久久精品成人欧美大片| AV无码久久久久不卡网站下载| 一极黄色视频久久网站| 国产2021久久精品| 久久国产热精品波多野结衣AV | 久久久av波多野一区二区| 久久免费视频一区| 久久线看观看精品香蕉国产| 久久婷婷国产综合精品| 欧美日韩精品久久久久| 久久五月精品中文字幕| 久久精品国产99久久香蕉| 欧美日韩中文字幕久久伊人| 精品久久久久香蕉网| 久久人人爽人人爽人人片AV不| 无码AV中文字幕久久专区| 亚洲成色www久久网站夜月| 久久久久久久久久久|