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

📄 form1.cs

📁 基于Csharp语言开发环境的游戏制作源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
        private void PlaceRandom() 
        { 
            int r,c; 
            r=10;c=10; 
            int i=0; 
            ar=0; 
            ac=0; 
            Random rnd= new Random(); 
            int val; 
            while(i<8) 
            { 
                val=(int)rnd.Next(9);
                if(numNotExists(val)==true && val>0) 
                { 
                    pos[ar,ac]=val; 
                    switch(val) 
                    { 
                        case 1: 
                            lbl1.Location=new Point(c,r); 
                            break; 
                        case 2: 
                            lbl2.Location=new Point(c,r); 
                            break; 
                        case 3: 
                            lbl3.Location=new Point(c,r); 
                            break; 
                        case 4: 
                            lbl4.Location=new Point(c,r); 
                            break; 
                        case 5: 
                            lbl5.Location=new Point(c,r); 
                            break; 
                        case 6: 
                            lbl6.Location=new Point(c,r); 
                            break; 
                        case 7: 
                            lbl7.Location=new Point(c,r); 
                            break; 
                        case 8: 
                            lbl8.Location=new Point(c,r); 
                            break; 
                        default: 
                            break;
                    } 
                    c+=100; 
                    ac++; 
                    if(ac>2) 
                    { 
                        ac=0; 
                        ar++; 
                    } 
                    if(c>300) 
                    { 
                        c=10; 
                        r+=100; 
                    } 
                    i++; 
                } 
                else 
                    continue; 
            } 
            lblBlank.Location=new Point(c,r); 
            pos[2,2]=9; 
        } 

        private Boolean numNotExists(int num) 
        { 
            for(int i=0;i<3;i++) 
                for(int j=0;j<3;j++) 
                { 
                    if(pos[i,j]==num) 
                        return false; 
                } 
            return true; 
        }

        private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            int temp; 
            switch((int)e.KeyCode) 
            { 
                case 38: 
                    //"Up" 
                    if(ar<2) 
                    { 
                        temp=pos[ar,ac]; 
                        pos[ar,ac]=pos[ar+1,ac]; 
                        pos[ar+1,ac]=temp; 
                        Swap(pos[ar,ac],temp); 
                        ar++; 
                        Hits++; 
                    } 
                    break; 
                case 37: 
                    //"Left" 
                    if(ac<2) 
                    { 
                        temp=pos[ar,ac]; 
                        pos[ar,ac]=pos[ar,ac+1]; 
                        pos[ar,ac+1]=temp; 
                        Swap(pos[ar,ac],temp); 
                        ac++; 
                        Hits++; 
                    } 
                    break; 
                case 39: 
                    //"Right" 
                    if(ac>0) 
                    { 
                        temp=pos[ar,ac]; 
                        pos[ar,ac]=pos[ar,ac-1]; 
                        pos[ar,ac-1]=temp; 
                        Swap(pos[ar,ac],temp); 
                        ac--; 
                        Hits++; 
                    } 
                    break; 
                case 40: 
                    //"Down" 
                    if(ar>0) 
                    { 
                        temp=pos[ar,ac]; 
                        pos[ar,ac]=pos[ar-1,ac]; 
                        pos[ar-1,ac]=temp; 
                        Swap(pos[ar,ac],temp); 
                        ar--; 
                        Hits++; 
                    } 
                    break; 
            } 
            lblHits.Text="移动次数 ---> " +Hits.ToString(); 
            Boolean same=true; 
            String arrEle=""; 
            for(int ctr=1,i=0;i<3;i++) 
            { 
                for(int j=0;j<3;j++,ctr++) 
                { 
                    if(pos[i,j]!=ctr) 
                    { 
                        same=false; 
                        break; 
                    } 
                    arrEle=arrEle+"\t"+pos[i,j]; 
                } 
                arrEle=arrEle+"\n"; 
            } 
            if(same) 
            { 
                MessageBox.Show("共移动" + Hits.ToString() + "次","游戏结束"); 
            } 
        } 

        private void Swap(int vNum, int blank) 
        { 
            Point temp; 
            switch(vNum) 
            { 
                case 1: 
                    temp=lbl1.Location; 
                    lbl1.Location=lblBlank.Location; 
                    lblBlank.Location=temp; 
                    break; 
                case 2: 
                    temp=lbl2.Location; 
                    lbl2.Location=lblBlank.Location; 
                    lblBlank.Location=temp; 
                    break; 
                case 3: 
                    temp=lbl3.Location; 
                    lbl3.Location=lblBlank.Location; 
                    lblBlank.Location=temp; 
                    break; 
                case 4: 
                    temp=lbl4.Location; 
                    lbl4.Location=lblBlank.Location; 
                    lblBlank.Location=temp; 
                    break; 
                case 5: 
                    temp=lbl5.Location; 
                    lbl5.Location=lblBlank.Location; 
                    lblBlank.Location=temp; 
                    break; 
                case 6: 
                    temp=lbl6.Location; 
                    lbl6.Location=lblBlank.Location; 
                    lblBlank.Location=temp; 
                    break; 
                case 7: 
                    temp=lbl7.Location; 
                    lbl7.Location=lblBlank.Location; 
                    lblBlank.Location=temp; 
                    break; 
                case 8: 
                    temp=lbl8.Location; 
                    lbl8.Location=lblBlank.Location; 
                    lblBlank.Location=temp; 
                    break; 
            } 
        }
	}
}

⌨️ 快捷键说明

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