ورود

View Full Version : Error در بارش برف



fshb_ 1370
چهارشنبه 04 آذر 1388, 10:53 صبح
سلام
من میخوام یه برنامه بنویسم که بارش برف نشون بده، ولی چند تا error میده که نمیتونم مشکلش حل کنم.
وقتی برف میاد پایین دیگه برفی بالا نیست که حرکت کنه و خیلی غیر طبیعی میشه، نمیدونم چه شکلی مشکلش حل کنم:عصبانی++:

اینم کد برنامه:



#include<conio.h>
#include<dos.h>
#include<graphics.h>
#include<stdlib.h>

void main()
{
int d=0,m=0;
initgraph(&d,&m,"");
randomize();
int *x=new int[200];
int *y=new int[200];
for (int i=0;i<200;i++)
{
x[i]=random(640);
y[i]=random(50);
}
while(!kbhit())
{
for(i=0;i<200;i++)
{
putpixel(x[i],y[i],WHITE);
delay(10);
putpixel(x[i],y[i],BLACK);
}
for(i=0;i<200;i++)
{
putpixel(x[i],y[i],BLACK);
}
for(i=0;i<200;i++)
{
int c=getpixel(x,y);
if(c==0&&y==479)
{
putpixel(x[i],y[i],WHITE);
}
else
{
if(c==0)
{
y[i]++;
x[i]=x[i]+random(3)-1;
}
else
{
putpixel(x[i],y[i],WHITE);
}
}
}
}
}

fshb_ 1370
چهارشنبه 04 آذر 1388, 20:26 عصر
میخوام از بالا برف بیاد و وقتی یک دانه برف رو به پایین میاد، جای اون یک برف دیگر رو بگیره و اون به سمت پایین حرکت کنه و هنگام پایین اومدن چشمک نزنه
مثل این کد(ولی این کد برای یه دونه برف و من میخوام 500 تا برف به پایین بیاد ولی برای 500 تا برف نمیتونم بنویسم)



#include<conio.h>
#include<dos.h>
#include<graphics.h>
#include<stdlib.h>
void main()
{
int d=0,m=0;
initgraph(&d,&m,"");
randomize();
int x,y=1;
x=random(640);
for(int i=0;i<640;i++)
{
putpixel(x,y,WHITE);
delay(20);
putpixel(x,y,BLACK);
x=x+random(3)-1;
y++;
}
}

mortezamsp
پنج شنبه 05 آذر 1388, 17:26 عصر
با سلام.
با این تغییرات برنامه درست شد:
یه آرایه دو بعدی میسازیم که هر سطر اون یکی از خطوطی هست که میخواد رسم بشه ، یک خط از دانه های برف. بعد تو هر خط هم 20 تا دانه برف داریم که دفعه اول رندوم مقداردهی میشوند.
حالا سه تا حلقه for میخوایم.یکی برای تعداد فریم ها _همون حلقه بیرونی که شما گذاشتینش 640 _ یکی برای تعداد خط هایی که باید رسم بشن _ مثلا دفعه اول باید فقط یه خط رسم بشه،بعد اون خط پایین میاد و خطوط بعدی در جای قبلی اون رسم میشن _ و یه for هم که بیاد یک سطر رو رسم کنه.بعد از ترسیم هر سطر ،مقدار x ها رو بطور رندوم کم یا زیاد میکنیم، و برای اینکه دانه حول محور اصلیش باقی بمونه ، برای نصف دامنه رندوم کم میکنیم و برا بقیه زیاد میکنیم.

راستی من در تالار ساختمان داده تو نوشتن برنامه شبیه سازی رعد و برق مشکل دارم.میتونی کمکم کنی؟


اینم فایل اجرایی برف: