Kezdőoldal » Számítástechnika » Programozás » C, c++ nyelvben hogy lehetne...

Mylo8 kérdése:

C, c++ nyelvben hogy lehetne azt megcsinálni, hogy egy snake programban a kígyóm magától mozogna (menne előre) amíg meg nem változtatom az irányát?

Figyelt kérdés

2014. nov. 11. 19:21
1 2
 1/11 Tengor ***** válasza:
Tárold le az irányt és mozgasd abba...
2014. nov. 11. 19:24
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:

Egy forráskódrészletet tudnál küldeni példával?

Úgy könnyebb lenne értelmeznem(még kezdő vagyok)

2014. nov. 11. 19:53
 3/11 anonim ***** válasza:

snake1.x += vX;

snake1.y += vY;


while (!exit) {


Remélem segített.

2014. nov. 11. 20:21
Hasznos számodra ez a válasz?
 4/11 Tengor ***** válasza:
Nem gondolod komolyan? Milyen részletet küldenénk, ha azt sem tudjuk milyen kódról van szó?
2014. nov. 11. 20:25
Hasznos számodra ez a válasz?
 5/11 A kérdező kommentje:

Itt van a forráskód(már amit eddig megírtam). Tudom h nem túl profi:

#include<stdio.h>

//#include<console.h>

#include<time.h>

#include<stdlib.h>


main()

{

setcodepage(WIN);//Ékezetes betük használatára. hosszú ö-t, ü-t ne írj!

srand(time(NULL));//Ténylegesen random számokhoz

clock_t start_t, end_t, total_t;//Idö számításához

int x=40,y=12;//Karakter koordinátáihoz

int a,b;//Gyümölcs koordinátáihoz

int i=0;//Felvett gyümölcs számlálásához

int j=0,k=0,l,m;//Fal rajzolásához

int e=10;

char c=1;

char d=' ';

char* z="Cube Game:Eat the fruits(c)!!!!!!";


title(z);


for(e=10;e>0;e--)

{

textcolor(LIGHTGREEN);

printf("Üdvözöllek! Te egy kis kocka vagy(amúgy tényleg, most is a gép elött ülsz).\n");

printf("Minél több gyümölcsöt kell enned, hogy nagyra nöjjél(legalábbis ezt mondják...)\n");

printf("Csak aztán nehogy fejjel menj a falnak(de tényleg, ha falnak mész, vége a játéknak)\n");

textcolor(WHITE);

printf("A játék indul: %d",e);

delay(1000);

clrscr();

}

a=rand()%78+1;//Gyümölcs lehetséges helye(oszlop)

b=rand()%23+3;//Gyümölcs lehetséges helye(sor)

start_t=clock();

do{

textcolor(BG_LIGHTGREEN);//Falak színe

for(j=0;j<79;j++){

gotoxy(0+j,1);

printf(" ");}

for(j=0;j<79;j++){

gotoxy(0+j,24);

printf(" ");}

for(k=0;k<24;k++){

gotoxy(0,1+k);

printf(" ");}

for(k=0;k<24;k++){

gotoxy(79,1+k);

printf(" ");}

gotoxy(2,2);

textcolor(YELLOW);

printf("Felvett gyümölcs: %d",i);//Felvett gyümölcs mennyiségének kiírása


gotoxy(a,b);//Gyümölcs koordinátáihoz ugrik

textcolor(BG_LIGHTRED);//Gyümölcs színe

printf(" ");//Gyümölcs

gotoxy(x,y);//Karakter helye

textcolor(LIGHTCYAN);//Karakter színe

printf("\x02");//Karakter

c=getch();//Karaktermozgatáshoz

gotoxy(x,y);

printf("%c",d);

if(c=='w')

{y--;}

else if(c=='s')

{y++;}

else if(c=='a')

{x--;}

else if(c=='d')

{x++;}


if(x==a&&y==b)//Gyümölcs felvétele

{

a=rand()%78+1;

b=rand()%23+3;

gotoxy(a,b);//oszlop,sor

textcolor(BG_LIGHTRED);

printf(" ");

i++;//Felvett gyümölcs pont hozzáadása

}

else{}


if(x==0||x==79||y==1||y==24)//Ha nekimész a falnak, vége a játéknak

{clrscr();

end_t=clock();

total_t=end_t-start_t;

for(l=9;l<16;l++)

{textcolor(BG_YELLOW);

gotoxy(28,l);

printf(" ");

gotoxy(52,l);

printf(" ");}

for(m=28;m<53;m++)

{

gotoxy(m,9);

printf(" ");

gotoxy(m,15);

printf(" ");

}

textcolor(LIGHTRED);

gotoxy(35,10);

printf("GAME OVER\n");

textcolor(LIGHTCYAN);

gotoxy(32,12);

printf("Eddig bírtad: %ld s",total_t/1000);

gotoxy(30,13);

printf("Felvett gyümölcsök: %d\n",i);

gotoxy(29,14);

printf("A játék hamarosan kilép\n");

delay(7000);

break;

}

else{}

}while(TRUE);

textcolor(BLACK);

return 0;

}

2014. nov. 11. 20:28
 6/11 anonim ***** válasza:

Szörnyű.

1. Nevezd el normálisan a változóidat. Ne a, b, c, x, y, satöbbi, hanem normális, azonnal érthető, beszédes neveket adj nekik.

2. Kerüld a "Magic Number"-ek használatát.

Lásd: a=rand()%78+1;

vagy: if(x==0||x==79||y==1||y==24)//Ha nekimész a falnak, vége a játéknak

Az ilyen számokat szintén mentsd ki egy beszédes nevű konstans változóba.

2014. nov. 11. 21:21
Hasznos számodra ez a válasz?
 7/11 anonim ***** válasza:

"int i=0;//Felvett gyümölcs számlálásához"


De ez akkora code smell, hogy sírok..

Szerinted mire való egy változó neve, amúgy? Miért lehet szöveg, és nem egy sorszám?

2014. nov. 12. 00:24
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

"srand(time(NULL));//Ténylegesen random számokhoz"


Én csak ebbe kötnék bele. Az ugye megvan, hogy determinisztikus automatánál nincs olyan, hogy tényleges random szám?

2014. nov. 12. 00:45
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
igazából sincs :)
2014. nov. 12. 01:03
Hasznos számodra ez a válasz?
 10/11 A kérdező kommentje:
Köszönöm Wampa, te adtad az egyetlen értelmes és segítőkész, hasznos választ
2014. nov. 12. 06:44
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!