⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 拼图游戏源代码.txt

📁 拼图游戏源代码
💻 TXT
📖 第 1 页 / 共 4 页
字号:
                break;
            case 2:
                BitBlt(hdc,120,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 3:
                BitBlt(hdc,240,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);                
                break;
            case 4:
                BitBlt(hdc,360,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);                
                break;
            case 5:
                BitBlt(hdc,480,0,120,96,mdc,point[i].x,point[i].y,SRCCOPY);                
                break;
            case 6:
                  BitBlt(hdc,0,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 7:
                BitBlt(hdc,120,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 8:
                BitBlt(hdc,240,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 9:
                BitBlt(hdc,360,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 10:
                BitBlt(hdc,480,96,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 11:
                  BitBlt(hdc,0,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);        
                break;
            case 12:
                BitBlt(hdc,120,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 13:
                BitBlt(hdc,240,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 14:
                BitBlt(hdc,360,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 15:
                BitBlt(hdc,480,192,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 16:
                  BitBlt(hdc,0,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);        
                break;
            case 17:
                BitBlt(hdc,120,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 18:
                BitBlt(hdc,240,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 19:
                BitBlt(hdc,360,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 20:
                BitBlt(hdc,480,288,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 21:
                  BitBlt(hdc,0,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);        
                break;
            case 22:
                BitBlt(hdc,120,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 23:
                BitBlt(hdc,240,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 24:
                BitBlt(hdc,360,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            case 25:
                BitBlt(hdc,480,384,120,96,mdc,point[i].x,point[i].y,SRCCOPY);            
                break;
            default:
                MessageBox(NULL,"贴图序列号错误!","",NULL);
            }
        }    
        for(int j=1;j<=25;j++)
        {
            if(point[j].num==25)
            {
                SelectObject(mdc,empty);
                switch(j)
                {
                case 1:
                      BitBlt(hdc,0,0,120,96,mdc,0,0,SRCCOPY);                
                    break;
                case 2:
                    BitBlt(hdc,120,0,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 3:
                    BitBlt(hdc,240,0,120,96,mdc,0,0,SRCCOPY);                
                    break;
                case 4:
                    BitBlt(hdc,360,0,120,96,mdc,0,0,SRCCOPY);                
                    break;
                case 5:
                    BitBlt(hdc,480,0,120,96,mdc,0,0,SRCCOPY);                
                    break;
                case 6:
                      BitBlt(hdc,0,96,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 7:
                    BitBlt(hdc,120,96,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 8:
                    BitBlt(hdc,240,96,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 9:
                    BitBlt(hdc,360,96,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 10:
                    BitBlt(hdc,480,96,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 11:
                      BitBlt(hdc,0,192,120,96,mdc,0,0,SRCCOPY);        
                    break;
                case 12:
                    BitBlt(hdc,120,192,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 13:
                    BitBlt(hdc,240,192,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 14:
                    BitBlt(hdc,360,192,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 15:
                    BitBlt(hdc,480,192,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 16:
                      BitBlt(hdc,0,288,120,96,mdc,0,0,SRCCOPY);        
                    break;
                case 17:
                    BitBlt(hdc,120,288,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 18:
                    BitBlt(hdc,240,288,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 19:
                    BitBlt(hdc,360,288,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 20:
                    BitBlt(hdc,480,288,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 21:
                      BitBlt(hdc,0,384,120,96,mdc,0,0,SRCCOPY);        
                    break;
                case 22:
                    BitBlt(hdc,120,384,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 23:
                    BitBlt(hdc,240,384,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 24:
                    BitBlt(hdc,360,384,120,96,mdc,0,0,SRCCOPY);            
                    break;
                case 25:
                    BitBlt(hdc,480,384,120,96,mdc,0,0,SRCCOPY);            
                    break;
                default:
                    ;
                }break;     //遇到成功的就跳出
            }
        }
        int finish=0;
        for(int k=1;k<=25;k++)
        {
            if(point[k].num==k)
                finish++;
        }
        if(finish==25)
        {
            fin=true;
            sndPlaySound("Source\\sound\\FTELEP2电火花.wav",SND_ASYNC | SND_FILENAME);
            MessageBox(NULL,"Finish! This is the final map! You Win!","恭喜^_^",NULL);
            if(n<high5)
            {
                Sleep(100);
                high5=n;
                SelectObject(mdc,empty);
                BitBlt(hdc,1007,433,100,30,mdc,250,0,SRCCOPY);
                sprintf(str,"%d",high5);
                TextOut(hdc,1007,433,str,strlen(str));
                sndPlaySound("Source\\sound\\new.wav",SND_ASYNC | SND_FILENAME);
                MessageBox(NULL,"THE NEW RECORD!","恭喜^_^",NULL);    
                Save();
            }
        }
    }

}

void Change_Block(int block1,int block2)
{
    int temp=0;
    temp=point[block1].x;
    point[block1].x=point[block2].x;
    point[block2].x=temp;
    temp=point[block1].y;
    point[block1].y=point[block2].y;
    point[block2].y=temp;
    temp=point[block1].num;
    point[block1].num=point[block2].num;
    point[block2].num=temp;
}

void Save()
{
    FILE *fp;
    if((fp=fopen("Source\\record","wb+"))==NULL)
    {
        MessageBox(NULL,"不能打开record文件,可能被删除,请在Source中重新建立.","",NULL);
        return;
    }
    if(fwrite(&high3,sizeof(high3),1,fp)!=1)
       MessageBox(NULL,"不能写入记录","",NULL);
    if(fwrite(&high4,sizeof(high4),1,fp)!=1)
       MessageBox(NULL,"不能写入记录","",NULL);
    if(fwrite(&high5,sizeof(high5),1,fp)!=1)
       MessageBox(NULL,"不能写入记录","",NULL);
    fclose(fp);
}

void GetPos()
{
    int now_pos;
    for(int j=1;j<=25;j++)
    {
        point[j].num=j;
    }
    int i;
    switch(line)
    {
    case 3:
        now_pos=9;
        for(i=1;i<=9;i++)                                    //对各块从原图中哪个位置读图的坐标进行赋值
        {
            switch(point[i].num)
            {
            case 1:point[i].x=0;    point[i].y=0;  break;
            case 2:point[i].x=200;  point[i].y=0;  break;
            case 3:point[i].x=400;  point[i].y=0;  break;
            case 4:point[i].x=0;    point[i].y=160;break;
            case 5:point[i].x=200;  point[i].y=160;break;
            case 6:point[i].x=400;  point[i].y=160;break;
            case 7:point[i].x=0;    point[i].y=320;break;
            case 8:point[i].x=200;  point[i].y=320;break;
            case 9:point[i].x=400;  point[i].y=320;break;
            default:MessageBox(NULL,"初始化point[i]坐标错误!","",NULL);
            }
        }
        break;
    case 4:
        now_pos=16;
        for(i=1;i<=16;i++)                                    //对各块从原图中哪个位置读图的坐标进行赋值
        {
            switch(point[i].num)
            {
            case 1:point[i].x=0;    point[i].y=0;    break;
            case 2:point[i].x=150;  point[i].y=0;    break;
            case 3:point[i].x=300;  point[i].y=0;    break;
            case 4:point[i].x=450;  point[i].y=0;    break;
            case 5:point[i].x=0;    point[i].y=120;  break;
            case 6:point[i].x=150;  point[i].y=120;  break;
            case 7:point[i].x=300;  point[i].y=120;  break;
            case 8:point[i].x=450;  point[i].y=120;  break;
            case 9:point[i].x=0;    point[i].y=240;  break;
            case 10:point[i].x=150; point[i].y=240;  break;
            case 11:point[i].x=300; point[i].y=240;  break;
            case 12:point[i].x=450; point[i].y=240;  break;
            case 13:point[i].x=0;   point[i].y=360;  break;
            case 14:point[i].x=150; point[i].y=360;  break;
            case 15:point[i].x=300; point[i].y=360;  break;
            case 16:point[i].x=450; point[i].y=360;  break;
            default:MessageBox(NULL,"初始化point[i]坐标错误!","",NULL);
            }
        }
        break;
    case 5:
        now_pos=25;
        for(i=1;i<=25;i++)                                    //对各块从原图中哪个位置读图的坐标进行赋值
        {
            switch(point[i].num)
            {
            case 1:point[i].x=0;    point[i].y=0;    break;
            case 2:point[i].x=120;  point[i].y=0;    break;
            case 3:point[i].x=240;  point[i].y=0;    break;
            case 4:point[i].x=360;  point[i].y=0;    break;
            case 5:point[i].x=480;  point[i].y=0;    break;
            case 6:point[i].x=0;    point[i].y=96;   break; 
            case 7:point[i].x=120;  point[i].y=96;   break; 
            case 8:point[i].x=240;  point[i].y=96;   break; 
            case 9:point[i].x=360;  point[i].y=96;   break; 
            case 10:point[i].x=480; point[i].y=96;   break; 
            case 11:point[i].x=0;   point[i].y=192;  break; 
            case 12:point[i].x=120; point[i].y=192;  break; 
            case 13:point[i].x=240; point[i].y=192;  break; 
            case 14:point[i].x=360; point[i].y=192;  break; 
            case 15:point[i].x=480; point[i].y=192;  break; 
            case 16:point[i].x=0;   point[i].y=288;  break; 
            case 17:point[i].x=120; point[i].y=288;  break; 
            case 18:point[i].x=240; point[i].y=288;  break; 
            case 19:point[i].x=360; point[i].y=288;  break; 
            case 20:point[i].x=480; point[i].y=288;  break; 
            case 21:point[i].x=0;   point[i].y=384;  break; 
            case 22:point[i].x=120; point[i].y=384;  break; 
            case 23:point[i].x=240; point[i].y=384;  break; 
            case 24:point[i].x=360; point[i].y=384;  break; 
            case 25:point[i].x=480; point[i].y=384;  break; 
            default:MessageBox(NULL,"初始化point[i]坐标错误!","",NULL);
            }
        }
        break;
    default:;
    }
    srand((unsigned)time(NULL));

    for(int k=0;k<200;k++)
    {
        switch(rand()%4)
        {
        case 0:
            if((now_pos+1) % line!=1)
            {
                Change_Block(now_pos,now_pos+1);
                now_pos++;
            }
            break;
        case 1:
            if((now_pos-1) % line!=0)
            {
                Change_Block(now_pos,now_pos-1);
                now_pos--;
            }
            break;
        case 2:
            if(now_pos+line < line*line)
            {
                Change_Block(now_pos,now_pos+line);
                now_pos+=line;
            }
            break;
        case 3:
            if(now_pos-line>0)
            {
                Change_Block(now_pos,now_pos-line);
                now_pos-=line;
            }
            break;
        default:;
        }
    }
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -