Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 22 kết quả

Đề tài: Bài tập lý thuyết C++ | Rùa và Thỏ tournament T_T

  1. #1
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Mặc định Bài tập lý thuyết C++ | Rùa và Thỏ tournament T_T

    Đề bài

    Ở bài tập này chúng ta sẽ viết 1 chương trình mô phỏng lại quá trình chạy đua của Rùa và Thỏ với những quy luật sau đâu : Cả 2 con vật sẽ bắt đầu từ điểm xuất phát tại ô 1 trong 70 ô. Mỗi ô sẽ biểu diễn cho 1 vị trí trong suốt chặng đua này. Vị trí ô thứ 70 sẽ là đích đến. Con nào tới được ô 70 trước sẽ là winner hì hì. Nhưng sẽ có những chướng ngại giữa đường đi và làm tăng thêm hấp dẫn cho cuộc đua, chúng ta sẽ có những quy luật sau theo phần trăm của thời gian và những bước di chuyển. Chúng ta sẽ điều khiển 2 chú rùa và thỏ theo quy luật ở trong các box dưới đây.
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		ru_tho.jpg
Lần xem:	14
Size:		32.7 KB
ID:		5336

    Chương trình của chúng ta sẽ có 2 biến để theo vết vị trí của rùa và thỏ. Chúng ta sẽ cho random 1 số từ nguyên x ( 0 < x < 10 ).
    Đối với rùa thì : nếu 1 <= x <= 5 thì là fast plod, khi 6 <= x <= 7 thì là slip còn khi 8 <= x <= 10 thì là slow pod.
    Đối với thỏ thì ta có 5 TH : sleep, big hop, big slip, small hop, và small slip, ta sẽ tự quyết định giá trị của x cho thỏ tương tự như Rùa.
    In ra màn hình chữ T tương trưng cho Thỏ và R tượng trưng cho rùa, mô phỏng lại chặng đua thú vị này.
    Nếu trường hợp 2 con trùng ô thì in ra “Ouch !!”.
    Nếu tại điểm xuất phát mà con nào lùi lại thì đưa nó lên lại vị trí xuất phát.


    Bài này cũng không khó, chẳng có giải thuật gì cả, chỉ là rèn luyện kĩ năng lập trình rất hay, have fun

    Demo

    Code:
    The Grand Tortoise and Hare Race
    
    Select race speed:
    1. Slow
    2. Medium
    3. Fast
    4. Astronomical!
    
    1
    
    Select number of races to run (min = 1, max = 100): 1
    
    Press enter to start the racing
    
    Race 1. They're Off!
                                                                                 |
     T      H                                                                    |
        T   H                                                                    |
         T           H                                                           |
       T              H                                                          |
        T           H                                                            |
           T         H                                                           |
              T      H                                                           |
               T   H                                                             |
                T   H                                                            |
                 T   H                                                           |
                    OUCH!                                                        |
                     OUCH!                                                       |
                      HT                                                         |
                      H T                                                        |
                    H    T                                                       |
        H                   T                                                    |
         H                T                                                      |
                  H        T                                                     |
                           HT                                                    |
                         H   T                                                   |
                          HT                                                     |
                           H  T                                                  |
                             T     H                                             |
                        H      T                                                 |
                        H       T                                                |
            H                    T                                               |
          H                         T                                            |
          H                          T                                           |
                   H                  T                                          |
                 H                       T                                       |
     H                                 T                                         |
      H                                 T                                        |
    H                                    T                                       |
     H                                      T                                    |
    H                                          T                                 |
    H                                             T                              |
     H                                          T                                |
    H                                              T                             |
    H                                                 T                          |
    H                                               T                            |
    H                                             T                              |
     H                                             T                             |
     H                                                T                          |
     H                                                 T                         |
     H                                                  T                        |
      H                                               T                          |
    H                                                  T                         |
    H                                                     T                      |
    H                                                        T                   |
    H                                                         T                  |
     H                                                         T                 |
      H                                                         T                |
      H                                                          T               |
               H                                                  T              |
                H                                                  T             |
    H                                                                 T          |
    H                                                                  T         |
    H                                                                   T        |
    H                                                                    T       |
    H                                                                     T      |
     H                                                                     T     |
              H                                                               T  |
            H                                                                  T |
                     H                                                          T|
                              H                                                  T
    
    Hooray! Tortoise is the winner.
    
    Tortoise won 1. Hare won 0.

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Uhm, bài này khá hấp dẫn, dùng để rèn luyện OOP tốt.

    Bài bạn làm phải thỏa mãn các yêu cầu sau đây:
    - Thêm một/nhiều loại move
    - Thêm một/nhiều loại animal

    Dự tính khoảng 20 classes

    Hix, hiện tại gặp khó khăn là ko biết show kết quả làm sao hết. Console C# ko dùng gotoxy được T_T
    Đã được chỉnh sửa lần cuối bởi nhc1987 : 20-01-2008 lúc 09:20 PM.
    Keep moving forward!

    ... Retired ...

  3. #3
    Ngày gia nhập
    04 2007
    Bài viết
    128

    Trích dẫn Nguyên bản được gửi bởi nhc1987 Xem bài viết
    Hix, hiện tại gặp khó khăn là ko biết show kết quả làm sao hết. Console C# ko dùng gotoxy được T_T
    Visual C# Code:
    1.         static void gotoxy(int x, int y)
    2.         {
    3.             Console.CursorLeft = x;
    4.             Console.CursorLeft = y;
    5.         }

  4. #4
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Mặc định Bài toán Rùa và Thỏ viết trên C

    Em làm trên C . Em ko rành C++ lắm ...

    C Code:
    1. #include<stdio.h>
    2. #include<conio.h>
    3. #include<string.h>
    4. #include<math.h>
    5. #include<dos.h>
    6. #include<process.h>
    7. #include<alloc.h>
    8. #include<stdlib.h>
    9.  
    10. int flag=0,xt=1,xr=1;
    11.  
    12. void move_tho(int mt);
    13. void move_rua(int mr);
    14.  
    15. void move_tho(int mt)
    16. {
    17.  if(mt==1||mt==2) return;
    18.  if(mt==3||mt==4) { xt+=9; return; }
    19.  if(mt==5) { xt-=12; return; }
    20.  if(mt==6||mt==7||mt==8) { xt+=1; return; }
    21.  if(mt==9||mt==10) { xt-=2; return; }
    22. }
    23.  
    24. void move_rua(int mr)
    25. {
    26.  if(mr>=1&&mr<=5) { xr+=3; return; }
    27.  if(mr==6||mr==7) { xr-=6; return; }
    28.  if(mr>=8&&mr<=10) { xr+=1; return; }
    29. }
    30.  
    31. void main()
    32. {
    33.  clrscr();
    34.  int r,mt,mr,y=8;
    35.  printf("\nchuong trinh chay dua tho va rua");
    36.  printf("\nmoi ban nhap chieu dai duong dua: ( lon mot chut nhe ):");
    37.  scanf("%d",&r);
    38.  printf("\n5 giay nua la bat dau nao");
    39.  printf("\n----------------------------------------------------------------");
    40.  randomize();
    41.  printf("\nT&R");
    42.  gotoxy(r,y-1);
    43.  printf("|");
    44.  delay(5000);
    45.  while(1)
    46.  {
    47.   mt=random(10)+1;
    48.   mr=random(10)+1;
    49.   move_rua(mr);
    50.   move_tho(mt);
    51.   if(xr==xt) { gotoxy(xr,y); printf("OUCH!!"); }
    52.   else
    53.   {
    54.    gotoxy(xt,y);
    55.    printf("T");
    56.    gotoxy(xr,y);
    57.    printf("R");
    58.    gotoxy(r,y);
    59.    printf("|");
    60.   }
    61.   if(xt<1) xt=1;
    62.   if(xr<1) xr=1;
    63.   if(xt>=r) { flag=1; break; }
    64.   if(xr>=r) break;
    65.   y++;
    66.   delay(2000);
    67.  }
    68.  
    69.  printf("\nket thuc cuoc dua");
    70.  if(flag) printf("\nrua thang roi");
    71.  else printf("\ntho da gianh chien thang");
    72.  getch();
    73. }

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    T_T ! Sieuphuong cừ ghê nhỉ, em có thể run rùi post cái demo lên cho mọi người coi với vì anh không có C T_T! thằng dos.h nó ko chịu hu hu ! Không coi được kết quả gì hết !
    nmoi ban nhap chieu dai duong dua: ( lon mot chut nhe ):");
    haha cái cậu này, nhập còn đòi lớn ^_^ !

  6. #6
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Mặc định Bài tập lý thuyết C++ | Rùa và Thỏ tournament T_T

    Trích dẫn Nguyên bản được gửi bởi soda_chanhmuoi Xem bài viết
    Code:
    static void gotoxy(int x, int y)
            {
                Console.CursorLeft = x;
                Console.CursorLeft = y;
            }
    Hơi sai một tí. Sửa lại:

    Code:
    public static class Utilities
        {
            public static void GoToXY(int x, int y)
            {
                Console.CursorTop = x;
                Console.CursorLeft = y;
            }
        }
    Thanks.
    Keep moving forward!

    ... Retired ...

  7. #7
    Ngày gia nhập
    12 2007
    Bài viết
    224

    haha cái cậu này, nhập còn đòi lớn ^_^ !
    Tại đua ngắn chán lắm anh ạ ^^
    Đây là hình ảnh chạy chương trình của em . Em dùng BC++ 3.1 . Hihi. Tiện thể anh rook_rox cho em xin nick yahoo được ko ạh . Em đang có chuyện muốn bàn với anh một tí .Khi nào anh vào đây thì cho em biết nhe . Thanks first . Hihi
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		ru_tho_output.jpg
Lần xem:	9
Size:		33.7 KB
ID:		5337

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Hì hì ! Demo cute nhỉ T_T. ! Thanks đóng góp của em nhé. ! Đừng dùng ngôn ngữ chat và xin nick yahoo ở đây nhé, thì ông Dr ông dũa cho đó ~~. Có gì thì pm cho anh, mà tuần này đi học lại rùi, chắc có gì cuối tuần cũng được em nhé.! Good code, good demo.
    PHP Code:
    int flag=0,xt=1,xr=1
    Góp ý : Đừng nên khai báo global dù chương trình nhỏ cũng vậy, tập cho quen vì global là very bad style, chỉ có const thì global dc, còn lại đưa variable thì nên đưa vào local hết.

  9. #9
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Kiến trúc bài này đây :
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		rua_tho_diagram.jpg
Lần xem:	13
Size:		35.6 KB
ID:		5338

    Console chạy oke rồi, còn phần đồ họa để mai suy nghĩ xem có nên làm hay ko . Làm thành cuộc đua tập thể luôn, chỉ có thỏ và rùa thì chán quá
    Keep moving forward!

    ... Retired ...

  10. #10
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Very detail, very well-design. T_T ! Khâm phục. Chắc bài làm của nhc tuyệt lắm đây. Để mình thử viết theo ý tưởng của nhc coi sao. Hay lắm ! Thanks !
    Lưu ý : không viết C#, box C++ nha @@ ! (Hì hì )

Các đề tài tương tự

  1. Bài tập C++ Chạy đua rùa và thỏ
    Gửi bởi thanhhai94 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 20-03-2013, 10:02 AM
  2. Thư giãn với bài học từ cuộc đua của thỏ và rùa
    Gửi bởi duynamdang trong diễn đàn Giải trí - Thư giãn
    Trả lời: 1
    Bài viết cuối: 02-11-2012, 04:56 PM
  3. [TopCoder] Practice Rooms => 1-Tournament => 1-Inv 2001 R1
    Gửi bởi bvKim trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 03-02-2010, 11:20 PM
  4. Tortoise and Hare tournament | Bài toán rùa và thỏ trong lập trình C#
    Gửi bởi nhc1987 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 29
    Bài viết cuối: 27-03-2008, 09:54 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn