PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : حرکت در آرایه در زبان c



mehran34
January 6th, 2015, 18:42
سلام من می خواستم یک برنامه بنویسم که داخل یک آرایه [18][21] در سطر آخر و قسمت وسط آن یک دسته به صورت <===> تعریف کنیم با کاراتر و بعدش اون رو تغییر مکان بدیم و هر دفعه که کلید رو فشار میدیم این دسته جابجا بشه و نحوه تغییر مکان هم با استفاده از کد اسکی کیبرد هستش کد زیر رو نوشتم مشکل این هست که فقط وقتی کلید رو فشار بدیم میره مکان جدید و وقتی دستمون رو برداریم بر میگرده به جای قبلیش لطفا کمک کنید تا بتونم مشکل این کد رو بر طرف کنم با تشکر فراوان
int m=19,o=5;
a[m][o]=60;
a[m][o+2]=61;
a[m][o+3]=61;
a[m][o+1]=61;
a[m][o+4]=62;

while(_kbhit())
{
char c=_getch();
c=_getch();
if (c==77)
m++;
o++;
a[m][o]=60;
a[m][o+2]=61;
a[m][o+3]=61;
a[m][o+1]=61;
a[m][o+4]=62;
}

- - - Updated - - -

راستی خودم فکر میکنم باید با پوینتر مشکلش رو بر طرف کرد ولی هنوز نمیدونم چجوری :d

saeed.spore
January 7th, 2015, 16:20
میتونی دقیق تر توضیح بدید

mehran34
January 7th, 2015, 16:26
نگاه کن میخواهم وقتی حرکت کرد الان حرکت میکنه دیگه بر نگرده جای قبلیش و متغیر بیرونی باز نویسی بشه با پوینتر هم هست ولی دقیقا نمیدونم چجوری

hamid53214
January 7th, 2015, 16:58
نگاه کن میخواهم وقتی حرکت کرد الان حرکت میکنه دیگه بر نگرده جای قبلیش و متغیر بیرونی باز نویسی بشه با پوینتر هم هست ولی دقیقا نمیدونم چجوری

ببین اول while رو عوض کن
مثلا while c!=90
در ضمن باید صفحه رو هم بنویسه و پاک کنه
بعدش بشین شرطاتو بنویس
متغیرای قبلی باید خالی بشن بعد مقدار جدید بگیرن

mehran34
January 7th, 2015, 19:55
ببین اول while رو عوض کن
مثلا while c!=90
در ضمن باید صفحه رو هم بنویسه و پاک کنه
بعدش بشین شرطاتو بنویس
متغیرای قبلی باید خالی بشن بعد مقدار جدید بگیرن
لطفا اگر میشه بیشتر توضیح بدید و یکم بیشتر توضیح بدید ممنون و متشکر

hamid53214
January 7th, 2015, 22:17
لطفا اگر میشه بیشتر توضیح بدید و یکم بیشتر توضیح بدید ممنون و متشکر

یه آرایه تعریف کردی یه سری قیمتاش مقدار دادی
یه بحت مقدار متنی هست یه بحث دیگه مکانی که اون شکلت قرار گرفته
توی حلقه اصلی بعد از نوشتن کل آرایه
یه حرف رو میگیری
طبق اون حرف آرایه تغییر میکنه
صفحه پاک میشه و دوباره مقادیر جدید نوشته میشه
وقتی که داری قوانین جابجایی رو مینویسی باید مراقب باشی که اون شکله از آرایه خارج نشه
اگه خارج شد برش گردونی یا از اون طرف وارد بشه

داداش من قبلا مدرس c بودم
ولی الان دارم با php کد نویسی میکنم
ولی این کد رو باید با حوصله بنویسی و تست کنی تا جواب بگیری

mehran34
January 7th, 2015, 22:23
منظورتون ار این که یک حرف میگیری چیه؟ میشه دقیق تر توضیح بدید با تشکر

hamid53214
January 7th, 2015, 22:24
منظورتون ار این که یک حرف میگیری چیه؟ میشه دقیق تر توضیح بدید با تشکر

getch

mehran34
January 7th, 2015, 23:05
الان این کدی که من نوشتم دقیقا کجاش رو باید تغییر بدم یا کلا باید بازنویسیش کنم

- - - Updated - - -


getch
خوب من دقیقا منظورتون رو نفهمیدم یعنی از اول کد رو بنویسم؟
getch()
iif? ....

- - - Updated - - -

لطفا در مورد pointer اگه میشه توضیح بدید با تشکر

Netfollower
January 7th, 2015, 23:37
فردا امتحان c++ داریم : )))
سوالی داشتید پ خ بدید به صورت رایگان درخدمتیم : )))

hamid53214
January 8th, 2015, 01:23
فردا امتحان c++ داریم : )))
سوالی داشتید پ خ بدید به صورت رایگان درخدمتیم : )))

دمت گرم داداش کار این رفیقمونو راه بنداز
پشت سر هم پیام میده بهم

- - - Updated - - -


#include<stdio.h>#include<conio.h>void main(){char a[18][21];int i,j,k;clrscr();for(i=0;i<18;i++){for(j=0;j<21;j++){a[i][j]='.';}}//a[1][8]='<';a[2][9]='=';a[3][10]='=';a[4][11]='=';a[][12]='>';
int m=17;int n=10;for(k=-2;k<3;k++){a[m][n+k]='*';} char l='o';while(l!='k'){clrscr();for(i=0;i<18;i++){for(j=0;j<21;j++){a[i][j]='.';}}if(l=='w'){m--;if(m<0){m=0;}}if(l=='s'){m++;if(m>17){m=17;}}if(l=='a'){n--;if(n<2){n=2;}}if(l=='d'){n++;if(n>18){n=18;}}


//for(k=-2;k<3;k++){a[m][n+k]='*';}a[m][n-2]='<';a[m][n-1]='=';a[m][n]='=';a[m][n+1]='=';a[m][n+2]='>';
for(i=0;i<18;i++){for(j=0;j<21;j++){printf("%c ",a[i][j]);}printf("\n");}l=getch();}}

- - - Updated - - -

http://s4.picofile.com/file/8162377026/1.zip.html

mehran34
January 8th, 2015, 11:44
دمت گرم داداش کار این رفیقمونو راه بنداز
پشت سر هم پیام میده بهم

- - - Updated - - -


#include<stdio.h>#include<conio.h>void main(){char a[18][21];int i,j,k;clrscr();for(i=0;i<18;i++){for(j=0;j<21;j++){a[i][j]='.';}}//a[1][8]='<';a[2][9]='=';a[3][10]='=';a[4][11]='=';a[][12]='>';
int m=17;int n=10;for(k=-2;k<3;k++){a[m][n+k]='*';} char l='o';while(l!='k'){clrscr();for(i=0;i<18;i++){for(j=0;j<21;j++){a[i][j]='.';}}if(l=='w'){m--;if(m<0){m=0;}}if(l=='s'){m++;if(m>17){m=17;}}if(l=='a'){n--;if(n<2){n=2;}}if(l=='d'){n++;if(n>18){n=18;}}


//for(k=-2;k<3;k++){a[m][n+k]='*';}a[m][n-2]='<';a[m][n-1]='=';a[m][n]='=';a[m][n+1]='=';a[m][n+2]='>';
for(i=0;i<18;i++){for(j=0;j<21;j++){printf("%c ",a[i][j]);}printf("\n");}l=getch();}}

- - - Updated - - -

1 (http://s4.picofile.com/file/8162377026/1.zip.html)
بسیار ممنون بابت کدی که نوشتید و وقتی که براش اختصاص دادید ولی مرسی ممنون ولی مشکل داره کد و کار نمیکنه بازم ممنون

hamid53214
January 8th, 2015, 15:28
بسیار ممنون بابت کدی که نوشتید و وقتی که براش اختصاص دادید ولی مرسی ممنون ولی مشکل داره کد و کار نمیکنه بازم ممنون

کار نمیکنه چیه؟
خودم تستش کردم
با حروف asde حرکت میکنه
با حرف k خارج میشه
همینه میگم ارزش نداره وقت بذارم
میدونین چرا؟
چون حتی به خودت زحمت نمیدی بخونیش

mehran34
January 8th, 2015, 18:01
کار نمیکنه چیه؟
خودم تستش کردم
با حروف asde حرکت میکنه
با حرف k خارج میشه
همینه میگم ارزش نداره وقت بذارم
میدونین چرا؟
چون حتی به خودت زحمت نمیدی بخونیش
compiler من مشکل داشت الان یک ورژن دیگه نصب کردم و قبلی رو پاک کردم درست شد :53: راستی پسوند فایل cpp بود که آپلود کرده بودید اندازه سایز ارایه هم برعکس بود جای 21 و 18 با یک دیگر فرق داره ولی بازم ممنون :53:

ممنون که پیگیر بودید
موفق باشید