Thursday, June 19, 2014

Thực hành 6 - Bài 1


Đề bài : Viết chương trình giả lập trò chơi " Rùa và Thỏ"
             Xem tại đây ThucHanh06_ConTro.pdf

_____________________________________________________________________

Code thực hành : http://pastebin.com/0zKbAhTg  hoặc  RuaTho.cpp

_____________________________________________________________________


#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <ctime>

using namespace std;

int buocRua();
int buocTho();
void chay(int&, int);

// ham chay sau su dung khai niem con tro ham
void chay(int&, int (*)());

int main()
{
    srand(time(0));
    int Rua = 0, Tho = 0;
    while (true)
    {
        system("CLS");
        chay(Rua, buocRua);
        chay(Tho, buocTho);
        if ( Rua==70 )
        {
            cout << setw(Rua+1) << "R" << setw(70-Rua) << endl;
            cout << setw(Tho+1) << "T" << setw(70-Tho) << "D" << endl;
            break;
        }
        else
        {
            if ( Tho==70 )
            {
                cout << setw(Rua+1) << "R" << setw(70-Rua) << "D" << endl;
                cout << setw(Tho+1) << "T" << setw(70-Tho) << endl;
                break;
            }
        }
        cout << setw(Rua+1) << "R" << setw(70-Rua) << "D" << endl;
        cout << setw(Tho+1) << "T" << setw(70-Tho) << "D" << endl;
     
        Sleep(100);
     
    }
    cout << endl;
    if (Tho > Rua)
        cout << "Tho thang" << endl;
    else
        cout << "Rua thang" << endl;

    system("pause");
    return 0;
}

int buocRua()
{
    int buoc;
    buoc= rand()%10;
    if ( buoc<5 ) buoc=3;
    else if ( buoc<8 ) buoc=1;
         else buoc=-6;  
    return buoc;
}

int buocTho()
{
    int buoc;
    buoc= rand()%10;
    if ( buoc<2 ) buoc=0;
    else if ( buoc<4 ) buoc=9;
         else if ( buoc=4 ) buoc=-12;
              else if ( buoc<8 ) buoc=1;
                    else buoc=-2;
    return buoc;
}

void chay(int& viTri, int (*buoc)())
{
    viTri+= buoc();
    if ( viTri<0 ) viTri=0;
    else if ( viTri>=70 ) viTri=70;
}

______________________________________________________________________


Ở đây tính tỷ lệ % để Rùa chạy như sau :

rand() %10 ngẫu nhiên một số từ 0 đến 10

ngẫu nhiên
  • từ 0->4 tương ứng là 50% (chiếm 5 số / 10 số)
  • từ 5->7 tương ứng là 30% (chiếm 3 số / 10 số)
  • từ 8->9 tương ứng là 20% (chiếm 2 số / 10 số)

Thỏ tương tự.



BACK TO TOP