امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
tetris
نویسنده پیام
misaq آفلاین
كاربر تک ستاره
*

ارسال‌ها: 35
موضوع‌ها: 17
تاریخ عضویت: مهر ۱۳۸۶

تشکرها : 0
( 2 تشکر در 2 ارسال )
ارسال: #1
tetris
سلام دوستان بازی تتریس که می دونید چیه؟
من این کد رو نوشتم ولی چون دور شکلا صفره هر دفعه دورشو پاک می کنه .اگه می شه برای این مشکلش یه راهنماییم کنید.فقط همینشو می خوام.بقیه ی بازی کاری نداره خیلی ممنون.(برنامه با توربو انجام می شه)
کد:
#include<conio.h>
#include<stdio.h>
#include<dos.h>
#include<stdlib.h>
int t=1,k,lk,s[7][4][4],shekl[4][4],safhe[41][10],x=5,y=40,m=0,taraf=0,reside,paeen;
unsigned short int far *screen=(unsigned short int far*) 0xb8000000;
void por(int i,int j,int color)
{
    screen[i*80+j]=219+256*color;
}
void sheklgozar()
{
    for(int i=0;i<4;i++)
        for(int j=38;j<42;j++)
            if(1)
            safhe[i+m][j-36+taraf]=shekl[i][j-38];
}
void charkhesh(int jehat)
{
    int matris[4][4];
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
            if(jehat==1)
                matris[i][3-j]=shekl[j][i];
            else
                matris[3-i][j]=shekl[j][i];
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            shekl[i][j]=matris[i][j];
}
int sheklejadid()
{
    randomize();
    return rand()%7;
}
void sheklha()
{
    int t=sheklejadid();
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
            shekl[j][i]=s[t][i][j];
    charkhesh(1);
    sheklgozar();
}
void pakkon()
{
    for (int i=0;i<10;i++)
        safhe[m-1][i]=0;
}
void safhekesh()
{
    for(int i=0;i<40;i++)
        for(int j=0;j<10;j++)
            por(i,j+35,safhe[i][j]);
}
void jadid()
{
    for(int i=0;i<50;i++)
        for(int j=0;j<80;j++)
            if (j<35||j>44||i>39)
                por(i,j,7);
            else
                {
                    por(i,j,0);
                    safhe[i][j-35]=0;
                }
}
void main()
{
    for(int i=0;i<4;i++)
        for(int j=0;j<4;j++)
        {
            if (j!=1)
                s[0][i][j]=0;
            else
                s[0][i][j]=9;
            if((j==1&&i!=3)||(i==2&&j==2))
                s[1][i][j]=10;
            else
                s[1][i][j]=0;
            if((j==2&&i!=3)||(i==2&&j==1))
                s[2][i][j]=11;
            else
                s[2][i][j]=0;
            if(i==0||i==3||j==0||j==3)
                s[3][i][j]=0;
            else
                s[3][i][j]=12;
            if((i==1&&j>1)||(i==2&&j>0&&j<3))
                s[4][i][j]=13;
            else
                s[4][i][j]=0;
            if((i==2&&j!=3)||(i==1&&j==1))
                s[5][i][j]=14;
            else
                s[5][i][j]=0;
            if((i==1&&j<2)||(i==2&&j>0&&j<3))
                s[6][i][j]=15;
            else
                s[6][i][j]=0;
        }
    clrscr();
    _setcursortype(_NOCURSOR);
    int level=1;
    jadid();
    while(t)
    {
    m=reside=taraf=0;
    sheklha();
    while(t&&!reside)
        {
            sheklgozar();
            safhekesh();
            paeen=0;
            for(int i=0;i<4;i++)
                for(int j=0;j<4;j++)
                    if(shekl[i][j]!=0)
                        paeen=i;
            m++;
            if(m+paeen!=40)
            pakkon();
            int x,y,q;
            delay(100);
            k=0;
            while(kbhit())
            {
                k=getch();
                if(k==0||k==0xE0)
                    k=(char)getch;
            }
            if(k==27)
                t=0;
            if(k==75)
                    taraf--;
//                case 80:
//                    if (x==49)
//                        x=0;
//                    else
//                        x++;
//                break;
                if (k==77)
                    taraf++;
                if(k==73)
                    charkhesh(1);
                if(k==81)
                    charkhesh(2);

        if(m+paeen==40)
            reside=1;
        }
    }
    gotoxy(35,25);
    int emtiaz;
    printf("game over.your score:%d", emtiaz);
    getch();
}
۰۴-دى-۱۳۸۶, ۱۱:۰۳:۳۷
ارسال‌ها
پاسخ
تشکر شده توسط : www.Poroje.Com
mohamadpk آفلاین
در حال پیشرفت
***

ارسال‌ها: 337
موضوع‌ها: 39
تاریخ عضویت: اردیبهشت ۱۳۸۷

تشکرها : 726
( 661 تشکر در 257 ارسال )
ارسال: #2
RE: tetris
من که اجرا کردم ۰ ندیدم فقط متغیر j رو تریف نکرده بودی همین

وطنم ای عشق همیشگی من ایران زمین

شقایق ها گل میکنن دوباره عاشق میشن...........قصه عشق وطن رو به غنچه هاشون میگن


۰۹-تير-۱۳۸۷, ۲۲:۲۵:۲۹
ارسال‌ها
پاسخ


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS