Chương trình của em ô tô đã chạy được rồi nhưng giờ em muốn tạo 1 đèn giao thông xong random 2 màu đỏ và xanh… đến đỏ thì dừng và xanh thì đi tiếp thì như thế nào ạ…mong mn giúp :((
Vẽ hình đèn giao thông bằng C++
game này là hàng cây di chuyển, xe đứng yên phải không bạn
xe di chuyển và cây đứng yên b ạ
có thể tính khoảng cách xe với đèn báo hiệu là bao nhiêu đó rồi nếu đèn xanh thì đi tiếp đèn đỏ thì dừng lại
#include<iostream>
using namespace std;
#include<graphics.h>
#include<stdlib.h>
#include<time.h>
int main()
{
//CHUONG TRINH DO HOA SU CHUYEN DONG CUA O TO
int x;
char a[]=" ";
int gd = DETECT , gm;
initgraph(&gd , &gm , a);
// TAO KHUNG XE
int i,j;
for(int k = 0 ; k < 1 ; k++)
{
for (int i = 0 ; i < 620 ; i++)//Su chuyen dong keo dai
{
//AB : duong thang do dai 210, o dong 200
line(0 + i , 300 , 210 + i , 300);
//EF : duong cheo tu dong 200 len 170
line(50 + i , 300 , 70 + i , 270);
//FG : duong thang tu 70 den 140 tren dong 170
line(70 + i , 270 , 140 + i , 270);
//GH : duong cheo tu dong 170 xuong 200
line(140 + i , 270 , 160 + i , 300);
//IJ : duong thang dong 170 xuong 200
line(90 + i , 270 , 90 + i , 300);
//LK : duong thang tu dong 170 xuong 200
line(120 + i , 270 , 120 + i , 300);
//AD : duong thang tu dong 200 xuong 230
line(0 + i , 300 , 0 + i , 330);
//BC : duong thang tu dong 200 xuong 230
line(210 + i , 300 , 210 + i , 330);
// TAO BANH XE
// Tao duong thang dong 230
line(0 + i , 330 , 50 + i , 330);
// Tao 1 hinh tron r=15 dong 230
circle(65 + i , 330 , 15);
// Tao duong thang dong 230
line(80 + i ,330 , 130 + i , 330);
// Tao 1 hinh tron r=15 dong 230
circle(145 + i , 330 , 15);
// Tao duong thang dong 230
line(160 + i , 330 ,210 + i ,330);
// Tao mau xanh cho o to
setcolor(GREEN);
// Duong banh xe di
line(0 , 240 , 950 , 240);
line(0 , 385 , 950 , 385);
// Tao mau xanh cho 2 banh
setfillstyle(SOLID_FILL,BLUE);
floodfill(65 + i , 329 , GREEN);
floodfill(146 + i , 329 , GREEN);
delay(20); // dieu chinh di nhanh or cham
cleardevice(); // xe chay
// Tao cay 1
line (100,230,150,230);
line (100,230,100,150);
line (150,230,150,150);
line (50,190,125,130);
line(200,190,125,130);
line (50,190,100,110);
line(200,190,150,110);
line(50,150,100,110);
line(150,110,200,150);
line(50,150,75,90);
line(200,150,175,90);
line(75,90,50,110);
line(175,90,200,110);
line(50,110,125,10);
line(200,110,125,10);
// Tao cay 2
line (300,230,350,230);
line (300,230,300,150);
line (350,230,350,150);
line (250,190,325,130);
line(400,190,325,130);
line (250,190,300,110);
line(400,190,350,110);
line(250,150,300,110);
line(350,110,400,150);
line(250,150,275,90);
line(400,150,375,90);
line(275,90,250,110);
line(375,90,400,110);
line(250,110,325,10);
line(400,110,325,10);
// Tao cay 3
line (500,230,550,230);
line (500,230,500,150);
line (550,230,550,150);
line (450,190,525,130);
line(600,190,525,130);
line (450,190,500,110);
line(600,190,550,110);
line(450,150,500,110);
line(550,110,600,150);
line(450,150,475,90);
line(600,150,575,90);
line(475,90,450,110);
line(575,90,600,110);
line(450,110,525,10);
line(600,110,525,10);
}
getch();
closegraph();
return 0;
}
}
giờ ý tưởng của e định là vẽ cái đèn giao thông…nhưng mà em hỏi cách random 2 màu đỏ và xanh…đỏ thì dừng và xanh thì đi tiếp ạ
thì có hàm random đó random số trong khoảng 100 chẳng hạn để dễ tính phần trăm, thì nếu nhỏ hơn 50 thì tạo đèn xanh, hoặc đèn đỏ
e random nó chỉ ra trên màn hình console chứ k hiện màu trên màn hình đồ họa ạ…a có thể code thử giúp e đc k ạ
thì bạn phải viết hàm vẽ đèn như bạn vẽ xe với cây chứ, rồi sau đó random màu
VÂNG…vẽ đèn thì e vẽ đc r…nhưng e đang tìm cách random ạ…vậy e vẽ đèn rồi a xem giúp e ạ
Đèn đây a…anh thử code random giúp e với ạ
//TAO DEN GIAO THONG
line (500,230,550,230);
line (500,230,500,150);
line (550,230,550,150);
line (450,150,600,150);
line (450,150,450,10);
line (450,10,600,10);
line (600,10,600,150);
circle(525 , 80 , 65);
Thấy bạn đổ màu cho bánh xe (màu xanh dương) được. Thế mà đổ màu cho đèn không được à?
int r = ... // tạo ngẫu nhiên từ 0 - 100.
// đổ màu cho đèn
if(r < 50){
floodfill(x, y , GREEN);
} else {
floodfill(x, y , RED);
}
Tạo màu cố định thì đc nhưng random nó lại lỗi bạn ạ
Lỗi gì? Đừng nói là gọi ngẫu nhiên trong vòng lặp nhé!
Ak đc r bạn…nma h muốn đèn đỏ thì dừng…bạn có thể code mk tham khảo k ?
Bạn hãy thiết lập điểm dừng khi đèn đỏ, vòng lặp thay vì chạy đến 620
(khi đèn xanh) thì sẽ chỉ chạy đến số nhỏ hơn (500
chẳng hạn).
Con số này được tính cũng dựa vào giá trị ngẫu nhiên kia.