ورود

نسخه کامل مشاهده نسخه کامل : کمک فوری در گرافیک C



newsha3000
16-07-2008, 12:00
توروخدا یه کمکی بکنید هر کی که بلده.
یه بازی هستش مثل تنیس می مونه. زمین بازی گرده و توپ هم مربع هستش. دو تا راکت داریم که یکیو کامپیوتر باید کنترل کنه. چه طوری می شه راکت کامیوتر رو نوشت؟؟ و چه جوری می فهمه توپ کجاست که به سمت تون حرکت کنه. اگه کسی تونست کمک کنه بگه تا کد رو براش بفرستم.

فاطـمه
17-07-2008, 11:40
توروخدا یه کمکی بکنید هر کی که بلده.
یه بازی هستش مثل تنیس می مونه. زمین بازی گرده و توپ هم مربع هستش. دو تا راکت داریم که یکیو کامپیوتر باید کنترل کنه. چه طوری می شه راکت کامیوتر رو نوشت؟؟ و چه جوری می فهمه توپ کجاست که به سمت تون حرکت کنه. اگه کسی تونست کمک کنه بگه تا کد رو براش بفرستم.
مگه شما کدش رو داری؟؟؟
در مورد سوالتون من تا حالا رو این جور برنامه ها کار نکردم
ولی فکر کنم نباید سخت باشه
شما باید با توجه به اینکه به کجای توپ ضربه زده میشه حرکت توپ رو شبیه سازی کنی و باید دیواره ها رو هم در نظر بگیری
خب موقعیت توپ رو که تو زبونای ویژوال با رایت و لفت می شه تشخیص داد و تو c هم می شه به وسیله متغیر ها پیاده سازی کرد
و البته می تونی واسه توپ و راکت یه کلاس یا ساختار تعریف کنی تا کارت راحت تر شه

Mehrdad-bx
17-07-2008, 16:15
کد رو همین جا بزار تا بقیه هم ببینند.
راستی، تو گرافیک نمیخوای بنویسی و تا جایی که من فهمیدم میخوای هوش مصنوعی(هوش راکت ) رو بنویسی. همون تعریف کلاس ها و... بهتره.

اگه واقعا میخوای هوش راکته رو بنویسی Pm بده پیمان اسم تاپیک رو درست کنه برات.

newsha3000
18-07-2008, 14:06
بابا قربونت. این دیگه مشکله من نیست. مشکل این استاد نابغه ی گرافیکمونه که گفته این بازی رو بنویسیم حالا خودشم توش مونده ..... من کد این بازی رو تا جایی که نوشتم می زارم اینجا. تو رو خدا کمک کنید هفته ی دیگه باید تحویل بدم....

Mehrdad-bx
18-07-2008, 14:12
من دقیقا نمیفهمم منظورتو. گرافیکشو باید تحویل بدی یا کدی که راکت کامپیوتر ببرتت(برنده بشه).
اگه گرافیک باشه راحت تر از اونیه که فکرشو بکنی(من گرافیک سی بلد نیستم! خوب بلد نیستم ولی منظورم این بود برنامه گرافیکی نوشتن آسونه، تا اینکه بخوای الگوریتم بازی بکنی و...)

newsha3000
18-07-2008, 14:15
#include <graphics.H>
#include <math.H>
#include <dos.H>
#include <stdio.H>
#include <stdlib.H>
#include <conio.H>
void init_mouse(void){
struct REGPACK reg;
reg.r_ax =0;
intr(0x33, &reg);
}
void show_mouse(void){
struct REGPACK reg;
reg.r_ax =1;
intr(0x33, &reg);
}
void hide_mouse(void){
struct REGPACK reg;
reg.r_ax =2;
intr(0x33, &reg);
}
void get_mouse(int *x,int *y,int *k){
struct REGPACK reg;
reg.r_ax =3;
intr(0x33, &reg);
*x=reg.r_cx;
*y=reg.r_dx;
*k=reg.r_bx;
}
int mouse_move(){
struct REGPACK reg;
reg.r_ax =0x0b;
intr(0x33, &reg);
if(reg.r_cx==0 && reg.r_dx==0)
return 0;
else
return 1;
}
void draw_rocket(int a,int color){
setcolor(color);
for(int i=1;i<=7;i++){
arc(320,240,a-10,a+10,190-i);
arc(321,240,a-10,a+10,190-i);
}
}
void draw_ball(double x,double y,int color){
setfillstyle(1,color);
// fillellipse(x,y,7,7);
bar(x,y,x+10,y+10);
}
void clear_ball(double x,double y){
setcolor(0);
setfillstyle(1,0);
// fillellipse(x,y,7,7);
bar(x,y,x+10,y+10);
}
int check_b(int x,int y){
if((getpixel(x-1,y-1)==4 || getpixel(x+11,y+11)==4 ||
getpixel(x,y+11)==4 || getpixel(x+11,y)==4))
return 1;
else
return 0;
}
void main(void){
randomize();
int x,y,k,i;
double shib_rocket,shib_top,zavie_rocket,alpha;
char ch;
int gd=DETECT,gm;
initgraph(&gd,&gm,"\\tc\\bgi (file://\\tc\\bgi)");
init_mouse();
zavie_rocket=0;
double ball_x=320,ball_y=240,ball_r=10;
circle(320,240,200);
draw_ball(ball_x,ball_y,12);
show_mouse();
double m=1,dx=-1,dy=-m;
int t;
getch();
do{
hide_mouse();
clear_ball(ball_x,ball_y);
t=check_b(ball_x,ball_y);
if(t!=0){
if(shib_rocket-shib_top<10 && shib_rocket-shib_top>5){
dx=-dx;
dy=-dy;
}else if(shib_rocket-shib_top<0){
dx=-dx+0.3;
dy=-dy-0.5;
}else{
dx=-dx-0.3;
dy=-dy+0.5;
}
// getch();
}
ball_x=ball_x+dx;
ball_y=ball_y+dy;
//check contact ball with rocket
draw_ball(ball_x,ball_y,12);
setcolor(15);circle(320,240,200);
show_mouse();
//delay(10);
while((inportb(0x3da)&8));
while(!(inportb(0x3da)&8));
if(mouse_move()){
get_mouse(&x,&y,&k);
alpha=atan2((double)(240-y),(double)(x-320+0.00001));
shib_rocket=(double)(240-y)/(double)(x-320+0.00001);
shib_top=(double)(240-ball_y)/(double)(ball_x-320+0.00001);
gotoxy(1,1);printf("%12.8f",shib_rocket);
gotoxy(1,2);printf("%12.8f",shib_top);
gotoxy(1,3);printf("%12.8f",shib_rocket-shib_top);
hide_mouse();
draw_rocket(zavie_rocket,0);
zavie_rocket=180*alpha/3.1415;
draw_rocket(zavie_rocket,4);
show_mouse();
}
}while(!kbhit());
getch();
closegraph();
}

newsha3000
18-07-2008, 14:16
فکر کنم کد ها یه ذره اینجا خر تو خر شد ، نمی دونم اینجا می شه فایل رو اپلود کرد یا نه؟؟؟

Mehrdad-bx
18-07-2008, 14:23
نه، نمیشه، باید بری یه جا آپلود کنی بزاری لینوکشو اینجا.(نگفتی مشکلت گرافیکه یا هوش راکته)

newsha3000
18-07-2008, 14:32
ببین یه جورایی هر دوش می شه. چون هم باید راکت کامپیوتر طراحی شه و هم کد نویسی شه تا بتونه حرکت کنه. الان تو این کدی که فرستادم فعلا فقط یه راکته با رنگ قرمز که خودمون با موس حرکتش می دیم. حالا باید یه راکت دیگه هم طراحی شه که کامپیوتر کنترل کنه. یعنی حریف ما تو این بازی کامپیوتره

newsha3000
18-07-2008, 14:33
هر کی تونست کمکی بکنه بگه تا فایل رو براش mail کنم.

Mehrdad-bx
18-07-2008, 14:48
Ok
ولی چرا میل؟ همین جا پست 1 رو ویرایش کن و فایلو بزار تا همه ببینن. شاید از دست کسی کمک دیگه ای براومد.

من دیگه باید برم 11 دقیقه دیگه مسایقه مشهد شروع میشه. بای

فاطـمه
19-07-2008, 13:35
این کد رو بذار تو تگ کد تا آدم بفهمه چی نوشتی خب....

Mehrdad-bx
19-07-2008, 17:02
شما کپی کن و تو نت پد یا هر چی پیست کن درسته!

newsha3000
23-07-2008, 08:21
ایراد از خود این سایت. تو نت پد کپی کردم گذاشتم اینجا. در هر صورت هر کی تونست کمک کنه بگه براش میل کنم. سخت که نیست که!!!!!!!!!!!!!!!!!!!