Đề 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ự.