Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Cho em hỏi vế lỗi của code tetris này

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    0

    Mặc định Cho em hỏi vế lỗi của code tetris này

    Em lấy code này bên topic một số code hay từ manguon,vì đang làm bài tập chèn ợp nữ vào C++,nhưng mà cái code này sao e chạy không được,hiện ra khối hình đầu tiên rồi đứng luôn,em coi mãi vẫn không phát hiện ra lỗi,mấy bro giúp em với,sắp nộp bài hợp ngữ mà cái này vẫn chưa chạy được,thanks

    /* Trò chơi xếp hình với đầy đủ các tính năng*/

    Code:
    #include<stdio.h>
    
    #include<conio.h>
    
    #include<math.h>
    
    #include<string.h>
    
    #include<graphics.h>
    
    #include<ctype.h>
    
    #include<dos.h>
    
    #include<time.h>
    
    #include<stdlib.h>
    
    int KT;
    
    int L,maxspeed,level;
    
    char *img1,*img2,*img3;
    
    int OX,OY;
    
    int a1[16],a2[16],a3[16],a4[16],a5[15],a6[16],a7[16],md[16];
    
    int score,next,mau_ht=CYAN;
    
    int board[200];
    
    unsigned long int per_100()
    
    {
    
    static struct time ti;
    
    unsigned long int t;
    
    gettime(&ti);
    
    t=((ti.ti_hour*60+ti.ti_min)*60+ti.ti_sec)*100+ti. ti_hund;
    
    return t;
    
    }
    
    void rorate(int a[])
    
    {
    
    int tg[16];
    
    int i,j,n;
    
    for(i=0;i<KT;i++) tg[i]=0;
    
    for (i=0;i<=15;i++)
    
    {
    
    n=4*(i/4); j=4*(i-n)+3-n/4;
    
    tg[i]= a[j];
    
    }
    
    for (i=0;i<=KT;i++) a[i]=tg[i];
    
    }
    
    void setupgraph()
    
    {
    
    int gdriver=DETECT,gmode,errorcode;
    
    initgraph(&gdriver,&gmode,"");
    
    errorcode=graphresult();
    
    if (errorcode!=grOk)
    
    {
    
    printf("Graphics error: %s\n",grapherrormsg(errorcode));
    
    printf("Press any key to halt:");
    
    getch();
    
    exit(1);
    
    }
    
    }
    
    void setup()
    
    {
    
    int i;
    
    char st[10];
    
    KT=16; L=45; OX=200;OY=100;score=0;level=1;next=random(7)+1;max speed=45;
    
    for (i=0;i<KT;i++)
    
    {
    
    a1[i]=0;a2[i]=0;a3[i]=0;
    
    a4[i]=0;a5[i]=0;a6[i]=0;
    
    }
    
    for (i=0;i<200;i++) board[i]=0;
    
    a1[5]=a1[6]=a1[9]=a1[10]=1;
    
    a2[11]=a2[10]=a2[9]=a2[5]=1;
    
    a3[5]=a3[6]=a3[9]=a3[13]=1;
    
    a4[5]=a4[6]=a4[7]=a4[10]=1;
    
    a5[1]=a5[5]=a5[6]=a5[10]=1;
    
    a6[9]=a6[6]=a6[5]=a6[2]=1;
    
    a7[1]=a7[5]=a7[9]=a7[13]=1;
    
    setupgraph();
    
    setbkcolor(2);
    
    setfillstyle(1,mau_ht);
    
    bar(OX-10,OY-40,OX+220,OY+220);
    
    setfillstyle(1,10);
    
    
    
    settextstyle(1,0,2);
    
    setfillstyle(1,4); bar(500,40,620,90);outtextxy(510,60,"R-RESTART");
    
    bar(500,120,620,170); outtextxy(510,140,"L-LEVEL");
    
    bar(500,200,620,250); outtextxy(520,220,"Q-QUIT");
    
    bar(500,280,620,330); outtextxy(520,300,"P-PAUSE");
    
    settextstyle(3,0,3);
    
    setcolor(RED);
    
    outtextxy(310,150,"SCORE:");sprintf(st,"%d",score) ;outtextxy(385,150,st);
    
    outtextxy(310,180,"LEVEL:"); sprintf(st,"%d",level);outtextxy(385,180,st);
    
    outtextxy(310,230,"NEXT:");
    
    setcolor(RED);
    
    rectangle(OX-1,OY-1,OX+101,OY+201);
    
    setlinestyle(0,0,3);
    
    setcolor(BLUE);
    
    rectangle(OX-10,OY-40,OX+220,OY+220);
    
    setcolor(BLUE);
    
    line(OX-10,OY-10,OX+220,OY-10);
    
    setcolor(RED);
    
    rectangle(OX-3,OY-3,OX+102,OY+202);
    
    setcolor(RED);
    
    settextstyle(1,0,2);
    
    outtextxy(OX,OY-35,"Design by Trung_dt11");
    
    setlinestyle(0,0,1);
    
    }
    
    void draw(int i,int j,int m,int n)
    
    {
    
    setfillstyle(1,m);
    
    bar(i+1,j+1,i+9,j+9);
    
    setcolor(n);
    
    rectangle(i,j,i+10,j+10);
    
    setcolor(getbkcolor());
    
    }
    
    void draw3(int x,int y,int a[],int col1)
    
    {
    
    int i;
    
    int m,n;
    
    for (i=0;i<KT;i++)
    
    if(a[i]==1)
    
    {
    
    m=i%4;n=i/4;
    
    draw(OX+10*x+10*m,OY+10*y+10*n,col1,BLUE);
    
    }
    
    }
    
    void clear(int x,int y,int a[])
    
    {
    
    int i,m,n,m_ht;
    
    for (i=0;i<KT;i++)
    
    if (a[i]==1)
    
    {
    
    m=i%4; n=i/4;
    
    draw(OX+10*x+10*m,OY+10*y+10*n,mau_ht,mau_ht);
    
    }
    
    }
    
    void newitem()
    
    {
    
    int i,n;
    
    n=next;
    
    next=random(7)+1;
    
    switch (next)
    
    {
    
    case 1: for (i=0;i<KT;i++) md[i]=a1[i];break;
    
    case 2: for (i=0;i<KT;i++) md[i]=a2[i];break;
    
    case 3: for (i=0;i<KT;i++) md[i]=a3[i];break;
    
    case 4: for (i=0;i<KT;i++) md[i]=a4[i];break;
    
    case 5: for (i=0;i<KT;i++) md[i]=a5[i];break;
    
    case 6: for (i=0;i<KT;i++) md[i]=a6[i];break;
    
    case 7: for (i=0;i<KT;i++) md[i]=a7[i];break;
    
    }
    
    setfillstyle(1,mau_ht);
    
    bar(319,259,361,301);
    
    draw3(12,16,md,random(3)+4);
    
    switch (n)
    
    {
    
    case 1: for (i=0;i<KT;i++) md[i]=a1[i];break;
    
    case 2: for (i=0;i<KT;i++) md[i]=a2[i];break;
    
    case 3: for (i=0;i<KT;i++) md[i]=a3[i];break;
    
    case 4: for (i=0;i<KT;i++) md[i]=a4[i];break;
    
    case 5: for (i=0;i<KT;i++) md[i]=a5[i];break;
    
    case 6: for (i=0;i<KT;i++) md[i]=a6[i];break;
    
    case 7: for (i=0;i<KT;i++) md[i]=a7[i];break;
    
    }
    
    }
    
    int test(int x,int y,int a[],int direction)
    
    {
    
    int i,j,m,n;
    
    int bool=0;
    
    int tg[16];
    
    for (i=0;i<KT;i++) tg[i]=a[i];
    
    rorate(tg);
    
    for (i=0;i<KT;i++)
    
    {
    
    if (a[i]==1)
    
    {
    
    m=i%4;n=i/4;j=(y+n)*10+x+m-1;
    
    if (direction==-1&&((x+m==0)||(board[j]==1))) { bool=1;break;}
    
    j=(y+n)*10+x+m+1;
    
    if (direction==1&&((m+x==9)||(board[j]==1))) { bool=1;break;}
    
    j=(y+n+1)*10+x+m;
    
    if (direction==0&&((n+y==19)||(board[j]==1))) { bool=1; break;}
    
    }
    
    if (tg[i]==1&&direction==3)
    
    {
    
    m=i%4;n=i/4;j=(y+n)*10+x+m;
    
    if ((board[j]==1)||(x+m>=10)||(m+x<0)) { bool=1;break;}
    
    }
    
    }
    
    return bool;
    
    }
    
    void putitem(int x,int y,int a[])
    
    {
    
    int i,j,m,n,tg;
    
    for (i=0;i<KT;i++)
    
    if (a[i]==1)
    
    {
    
    m=i%4;n=i/4;j=(y+n)*10+x+m;
    
    board[j]=1;
    
    }
    
    }
    
    void updatescore()
    
    {
    
    int level,i,t,j,m,n,k,h;
    
    char st[10];
    
    for (n=0;n<20;n++)
    
    {
    
    t=0;
    
    for (m=0;m<10;m++) t=t+board[10*n+m];
    
    if (t==10)
    
    {
    
    setfillstyle(1,mau_ht);
    
    bar(382,100,415,300);
    
    score=score+1;
    
    settextstyle(3,0,3);
    
    setcolor(RED);
    
    sprintf(st,"%d",score);outtextxy(385,150,st);
    
    level=score/20+1;
    
    if (level>=10) level=9;
    
    L=maxspeed-4*level;
    
    sprintf(st,"%d",level); outtextxy(385,180,st);
    
    for(i=n;i>=1;i--)
    
    for (j=0;j<10;j++) board[10*i+j]=board[10*(i-1)+j];
    
    for (i=0;i<10;i++) board[i]=0;
    
    }
    
    }
    
    for (k=0;k<200;k++)
    
    {
    
    if (board[k]==0)
    
    {
    
    m=k%10;n=k/10;
    
    draw(OX+10*m,OY+10*n,mau_ht,mau_ht);
    
    }
    
    if (board[k]==1)
    
    {
    
    m=k%10;n=k/10;
    
    draw(OX+10*m,OY+10*n,RED,BLUE);
    
    }
    
    }
    
    }
    
    void create_box()
    
    {
    
    unsigned n;
    
    setcolor(RED); settextstyle(1,0,3);
    
    cleardevice();
    
    setfillstyle(1,BLUE);
    
    bar(10,10,300,80);
    
    outtextxy(20,30,"ARE YOU SUREE (Y/N) ?");
    
    n=imagesize(0,0,310,85);
    
    img1=(char*)malloc(n);
    
    getimage(0,0,310,85,img1);
    
    cleardevice();
    
    bar(10,10,100,40);
    
    outtextxy(20,10,"PAUSE");
    
    n=imagesize(0,0,110,50);
    
    img2=(char*)malloc(n);
    
    getimage(0,0,110,50,img2);
    
    cleardevice();
    
    bar(10,10,250,50);
    
    outtextxy(20,20,"Press From 0 to 9");
    
    n=imagesize(0,0,260,60);
    
    img3=(char*)malloc(n);
    
    getimage(0,0,250,50,img3);
    
    
    
    }
    
    void msgbox(int x,int y,int choice)
    
    {
    
    if (choice==1) putimage(x,y,img1,XOR_PUT);
    
    if (choice==2) putimage(x,y,img2,XOR_PUT);
    
    if (choice==3) putimage(x,y,img3,XOR_PUT);
    
    }
    
    
    
    main()
    
    {
    
    int px=4,py=0;
    
    int col1,col2;
    
    int tg,tg1,speed;
    
    char ch1,ch2,ch;
    
    unsigned long int t_bd;
    
    unsigned long int t_ht;
    
    t_bd=per_100();
    
    setupgraph();
    
    create_box();
    
    setup();
    
    randomize();
    
    col1=RED; col2=GREEN;
    
    newitem();
    
    while (1)
    
    {
    
    if (L==2) L=tg;
    
    if (kbhit())
    
    {
    
    if (ch1=='r')
    
    {
    
    cleardevice();
    
    closegraph();
    
    setup();px=4;py=0;
    
    newitem();
    
    }
    
    if ((ch1=getch())==0) ch2=getch();
    
    if (ch1=='q')
    
    {
    
    msgbox(OX-50,OY+250,1);
    
    ch=getch();
    
    if (ch=='y') exit(1);
    
    else msgbox(OX-50,OY+250,1);
    
    }
    
    if (ch1=='p')
    
    {
    
    putimage(OX-5,OY+80,img2,XOR_PUT);
    
    while((ch=getch())!='p');
    
    putimage(OX-5,OY+80,img2,XOR_PUT);
    
    }
    
    if (ch1=='l')
    
    {
    
    msgbox(OX,OY+250,3);
    
    speed=getch();
    
    if (speed>=49&&speed&lt;=57) maxspeed=45-4*(speed-49);
    
    L=maxspeed;
    
    msgbox(OX,OY+250,3);
    
    }
    
    if (ch1==0)
    
    {
    
    clear(px,py,md);
    
    if ((ch2==72)&&(test(px,py,md,3)==0)) rorate(md);
    
    if ((ch2==75)&&(test(px,py,md,-1)==0)) px--;
    
    if ((ch2==77)&&(test(px,py,md,1)==0)) px++;
    
    if ((ch2==80)&&(test(px,py,md,0)==0))
    
    {
    
    tg=L;
    
    L=2;
    
    }
    
    draw3(px,py,md,col1);
    
    }
    
    }
    
    t_ht=per_100();
    
    if (t_ht-t_bd>L)
    
    {
    
    t_bd=t_ht;
    
    if (test(px,py,md,0)==0)
    
    {
    
    clear(px,py,md);
    
    py++;
    
    draw3(px,py,md,col1);
    
    };
    
    if (test(px,py,md,0)==1)
    
    {
    
    col1=random(3)+4;
    
    putitem(px,py,md);
    
    py=0;px=4;
    
    updatescore();
    
    newitem();
    
    if(test(px,py,md,0))
    
    {
    
    setcolor(YELLOW);
    
    outtextxy(220,200,"GAME OVER");
    
    getch();
    
    setup();
    
    }
    
    }
    
    }
    
    }
    
    getch();
    
    }
    Đã được chỉnh sửa lần cuối bởi sontruong8x : 16-12-2007 lúc 09:14 AM.

  2. #2
    Ngày gia nhập
    11 2007
    Bài viết
    47

    Bạn lấy mã nguồn, rồi post nhờ sửa, thế bạn làm gì?
    Post bài không cho vào tab code, vi phạm rồi

  3. #3
    Ngày gia nhập
    10 2007
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi metal_shield Xem bài viết
    Bạn lấy mã nguồn, rồi post nhờ sửa, thế bạn làm gì?
    Post bài không cho vào tab code, vi phạm rồi
    Sr,đã sửa,em không rành về C++,thầy yêu cầu viết một code hợp ngữ rồi link với một code c++,em lấy code này bên mã nguồn nhưng không chạy được,nên mới lên nhờ mọi người

  4. #4
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Bạn không rành về C++ vậy mà đã lo đi học hợp ngữ .Chưa học bò đã lo học chạy !
    What you see is never what you get...

  5. #5
    Ngày gia nhập
    10 2007
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi void main () Xem bài viết
    Bạn không rành về C++ vậy mà đã lo đi học hợp ngữ .Chưa học bò đã lo học chạy !
    Cái này là học theo chương trình của trường thui,còn ý định của e là về .net,web.mong mọi ngời giúp đỡ

  6. #6
    Ngày gia nhập
    12 2006
    Bài viết
    72

    Mặc định Cho em hỏi vế lỗi của code tetris này

    Cái này là học theo chương trình của trường thui,còn ý định của e là về .net,web.mong mọi ngời giúp đỡ
    Học .net, web thì có sử dụng sự kết hợp giữa hợp ngữ và C++ để làm gì vậy bạn? Giả sử như sửa cho chương trình trên chạy đi nữa thì bạn sẽ làm gì với nó tiếp theo?

Các đề tài tương tự

  1. Tetris trên C [Bao gồm cả source code]
    Gửi bởi tauit_dnmd trong diễn đàn Sản phẩm phần mềm của bạn
    Trả lời: 13
    Bài viết cuối: 13-03-2016, 03:19 AM
  2. Code C++ Share code Tetris C for Dos
    Gửi bởi tauit_dnmd trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 07-11-2013, 07:48 AM
  3. Lập trình C mình gặp trục trặc về Code Game tetris bằng lập trình C
    Gửi bởi khoaj_chjen trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 27-09-2013, 10:11 AM
  4. Game xếp hình Tetris sử dụng GDI+ C# (Đầy đủ source code)
    Gửi bởi ccom trong diễn đàn Dự án & Source code C#, ASP.NET
    Trả lời: 7
    Bài viết cuối: 21-04-2012, 02:06 PM
  5. code game xếp hình( tetris)
    Gửi bởi vodanhuit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 18-12-2010, 12:58 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn