国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java版本實(shí)現(xiàn)推箱子小游戲

這篇具有很好參考價值的文章主要介紹了java版本實(shí)現(xiàn)推箱子小游戲。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

效果預(yù)覽

推方塊

游戲簡介:由 ↑,↓,←,→鍵來控制方向,點(diǎn)擊空格鍵表示重玩當(dāng)前關(guān)卡。

核心代碼部分:就是如何處理人的移動和人和箱子一起時的移動,這里需要對人要走的下一步和人推著箱子一起走的下一步進(jìn)行判斷分析,如果沒有被阻擋就可以繼續(xù)走下一步。(有興趣的小伙伴可以參考我寫的完整代碼,上面都有備注解析)文章來源地址http://www.zghlxwxcb.cn/news/detail-502509.html

完整代碼部分

package demo01;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;

public class Pushbox005 extends JFrame implements KeyListener, ActionListener, MouseListener {

    //    定義一個內(nèi)部類用來創(chuàng)建坐標(biāo)
    class Point{
        public int x;
        public int y;
        public Point (int x,int y){
            this.x=x;
            this.y=y;
        }
    }
    //    行數(shù)(高)
    int height=8;
    //    列數(shù)(寬)
    int width=8;
    //    格子的大小
    int size=50;
    //    標(biāo)題欄的高度
    int title=100;


//    記錄窗口大小是否發(fā)生改變
    boolean window=false;

//    關(guān)卡地圖信息
    class Ditu{
       public int [][] ditu;
       Ditu(int[][] _ditu){
           this.ditu=_ditu;
       }
    }

//    創(chuàng)建一個二維數(shù)組用來存放關(guān)卡
//    1-10關(guān)地圖
    int [][] ditu1={{0,0,1,1,1,0,0,0},{0,0,1,3,1,0,0,0},{0,0,1,2,1,1,1,1},{1,1,1,4,2,4,3,1},{1,3,2,4,5,1,1,1},{1,1,1,1,4,1,0,0},{0,0,0,1,3,1,0,0},{0,0,0,1,1,1,0,0}};
    int [][] ditu2= {{1,1,1,1,1,0,0,0,0},{1,2,2,5,1,0,0,0,0},{1,2,4,4,1,0,1,1,1},{1,2,4,2,1,0,1,3,1},{1,1,1,2,1,1,1,3,1},{0,1,1,2,2,2,2,3,1},{0,1,2,2,2,1,2,2,1},{0,1,2,2,2,1,1,1,1},{0,1,1,1,1,1,0,0,0}};
    int [][] ditu3={{0,1,1,1,1,1,1,1,0,0},{0,1,2,2,2,2,2,1,1,1},{1,1,4,1,1,1,2,2,2,1},{1,2,5,2,4,2,2,4,2,1},{1,2,3,3,1,2,4,2,1,1},{1,1,3,3,1,2,2,2,1,0},{0,1,1,1,1,1,1,1,1,0}};
    int [][] ditu4={{0,1,1,1,1,0},{1,1,2,2,1,0},{1,5,4,2,1,0},{1,1,4,2,1,1},{1,1,2,4,2,1},{1,3,4,2,2,1},{1,3,3,6,3,1},{1,1,1,1,1,1}};
    int [][] ditu5={{0,1,1,1,1,1,0,0},{0,1,2,2,1,1,1,0},{0,1,5,4,2,2,1,0},{1,1,1,2,1,2,1,1},{1,3,1,2,1,2,2,1},{1,3,4,2,2,1,2,1},{1,3,2,2,2,4,2,1},{1,1,1,1,1,1,1,1}};
    int [][] ditu6={{0,0,0,1,1,1,1,1,1,1,0,0,0},{1,1,1,1,2,2,2,2,2,1,0,0,0},{1,2,2,2,3,1,1,1,2,1,0,0,0},{1,2,1,2,1,2,2,2,2,1,1,0,0},{1,2,1,2,4,2,4,1,3,2,1,0,0},{1,2,1,2,2,6,2,2,1,2,1,0,0},{1,2,3,1,4,2,4,2,1,2,1,0,0},{1,1,2,2,2,2,1,2,1,2,1,1,1},{0,1,2,1,1,1,3,2,2,2,2,5,1},{0,1,2,2,2,2,2,1,1,2,2,2,1},{0,1,1,1,1,1,1,1,1,1,1,1,1}};
    int [][] ditu7={{0,0,0,1,1,1,1,1,1,1},{0,0,1,1,2,2,1,2,5,1},{0,0,1,2,2,2,1,2,2,1},{0,0,1,4,2,4,2,4,2,1},{0,0,1,2,4,1,1,2,2,1},{1,1,1,2,4,2,1,2,1,1},{1,3,3,3,3,3,2,2,1,0},{1,1,1,1,1,1,1,1,1,0}};
    int [][] ditu8={{0,0,0,1,1,1,1,1,1,0},{0,1,1,1,2,2,2,2,1,0},{1,1,3,2,4,1,1,2,1,1},{1,3,3,4,2,4,2,2,5,1},{1,3,3,2,4,2,4,2,1,1},{1,1,1,1,1,1,2,2,1,0},{0,0,0,0,0,1,1,1,1,0}};
    int [][] ditu9={{0,1,1,1,1,1,1,1,1,1,0},{0,1,2,2,1,1,2,2,2,1,0},{0,1,2,2,2,4,2,2,2,1,0},{0,1,4,2,1,1,1,2,4,1,0},{0,1,2,1,3,3,3,1,2,1,0},{1,1,2,1,3,3,3,1,2,1,1},{1,2,4,2,2,4,2,2,4,2,1},{1,2,2,2,2,2,1,2,5,2,1},{1,1,1,1,1,1,1,1,1,1,1}};
    int [][] ditu10={{0,0,1,1,1,1,1,1},{0,0,1,2,2,2,2,1},{1,1,1,4,4,4,2,1},{1,5,2,4,3,3,2,1},{1,2,4,3,3,3,1,1},{1,1,1,1,2,2,1,0},{0,0,0,1,1,1,1,0}};
//    創(chuàng)建一個總地圖
    Ditu ditu[]={new Ditu(ditu1),new Ditu(ditu2),new Ditu(ditu3),new Ditu(ditu4),new Ditu(ditu5),new Ditu(ditu6),new Ditu(ditu7),new Ditu(ditu8),new Ditu(ditu9),new Ditu(ditu10)};

//    定義一個當(dāng)前關(guān)卡
    int guan=1;

//    定義一個最大關(guān)卡
    int maxguan=10;

//   定義一個變量判斷是否通關(guān)
    boolean tongguan=false;

//    創(chuàng)建一個推箱子的小人
    Point man=new Point(4,4);

//    創(chuàng)建箱子
    Point [] box= {new Point(3,3),new Point(3,4),new Point(5,3),new Point(4,5)};

//    創(chuàng)建箱子最終要到達(dá)的位置
    Point [] home={new Point(1,4),new Point(3,1),new Point(6,3),new Point(4,6)};

//    創(chuàng)建一個墻壁數(shù)組
    Point [] qiangbi= {new Point(2,0),new Point(3,0),new Point(4,0),
                        new Point(2,1),new Point(4,1),
                        new Point(2,2),new Point(4,2),new Point(5,2),new Point(6,2),new Point(7,2),
                        new Point(0,3),new Point(1,3),new Point(2,3),new Point(7,3),
                        new Point(0,4), new Point(5,4), new Point(6,4), new Point(7,4),
                        new Point(0,5),new Point(1,5),new Point(2,5),new Point(3,5),new Point(5,5),
                        new Point(3,6),new Point(5,6),
                        new Point(3,7),new Point(4,7),new Point(5,7)
    };

//    創(chuàng)建一個空地數(shù)組
    Point [] kongdi={new Point(3,1),
                    new Point(3,2),
                    new Point(3,3),new Point(4,3),new Point(5,3),new Point(6,3),
                    new Point(1,4),new Point(2,4),new Point(3,4),new Point(4,4),
                    new Point(4,5),
                    new Point(4,6)
    };


    //    設(shè)置圖片
    private Image image=null;
    Graphics gf=null;

    //    設(shè)置計時器
    Timer timer=new Timer(500,this);
    public void Tian(){
//      加載地圖
        jiazaiditu(guan);
        //設(shè)置窗口的寬高
        this.setSize(width*size ,height*size+title);
//        設(shè)置標(biāo)題
        this.setTitle("推箱子");
        //設(shè)置窗口能看見
        this.setVisible(true);
//        設(shè)置窗口頂點(diǎn)坐標(biāo)的位置
        this.setLocation(100,100);
        //設(shè)置鍵盤監(jiān)聽事件(也就是當(dāng)鍵盤有什么反應(yīng)都會調(diào)用此函數(shù))
        this.addKeyListener(this);
    }

    public void paint(Graphics g){

        // 窗口大小改變后,重新創(chuàng)建緩存圖片
        if(window == true) {
            window = false;
            image=this.createImage(width*size,height*size+title);
            this.gf =image.getGraphics();
        }

        //初始化臨時圖片//解決閃爍問題
        if(image==null){
            image=this.createImage(width*size,height*size+title);
        }
        if(this.gf ==null){
            this.gf =image.getGraphics();
        }

        //        擦除背景
        gf.setColor(Color.white);
        gf.fill3DRect(0,0,width*size,title+height*size,true);

                //        繪制網(wǎng)格
        gf.setColor(Color.GRAY);
//        畫行(畫橫線)
//        for (int i = 0; i <= height; i++) {
//            gf.drawLine(0,size*i+title,width*size,size*i+title);
//        }
        畫列(畫豎線)
//        for (int i = 0; i <= width; i++) {
//            gf.drawLine(i*size,title,i*size,height*size+title);
//        }

//       繪制墻
        for (int i = 0; i <qiangbi.length ; i++) {
            gf.setColor(Color.pink);
            gf.fill3DRect(qiangbi[i].x*size,qiangbi[i].y*size+title,size,size,true);
        }
        //       繪制箱子最終要到達(dá)的位置
        for (int i = 0; i <home.length ; i++) {
            gf.setColor(Color.black);
            gf.drawOval(home[i].x*size,home[i].y*size+title,size,size);
            gf.drawLine(home[i].x*size,home[i].y*size+title,home[i].x*size+size,home[i].y*size+title+size);
        }
//        繪制真實(shí)的箱子
        for (int i = 0; i <box.length ; i++) {
            gf.setColor(Color.ORANGE);
            gf.fill3DRect(box[i].x*size,box[i].y*size+title,size,size,true);
            if(isguiwei(i)){
                gf.setColor(Color.red);
                gf.fill3DRect(box[i].x*size,box[i].y*size+title,size,size,true);

            }
        }
//        繪制推箱子的小人
        gf.setColor(Color.green);
        gf.fillOval(man.x*size,man.y*size+title,size,size);

//        繪制當(dāng)前關(guān)卡信息
        if(iswin()==true&&tongguan==true){
            gf.setColor(Color.darkGray);
            gf.fill3DRect(0,0,width*size,title,true);
            gf.setFont(new Font("華文新魏", 10, 55)); //設(shè)置字體
            gf.setColor(Color.white);
            gf.drawString("恭喜通關(guān)",width*size/2-110,title/2+40);
        }else {
            gf.setColor(Color.darkGray);
            gf.fill3DRect(0,0,width*size,title,true);
            gf.setFont(new Font("華文新魏", 10, 55)); //設(shè)置字體
            gf.setColor(Color.white);
            gf.drawString("弟"+guan+"關(guān)",width*size/2-82,title/2+40);
        }

        g.drawImage(image,0,0,null);

    }

    //    按下鍵盤--控制游戲的開始以及方塊的移動方向
    public void keyPressed(KeyEvent e) {
        // 獲取從鍵盤輸入的鍵
        int key = e.getKeyCode();
        //       上
        if (key == KeyEvent.VK_UP) {
//            y-1是空地
            if(iscunzai(kongdi,new Point(man.x,man.y-1))==true){
//                y-1是空地,且空地上沒有箱子
                if(iscunzai(box,new Point(man.x,man.y-1))==false){
                    man.y--;
                }else{//y-2是一個空地,且沒有箱子
//                    y-2是一個沒有箱子的空地(這種就是上邊已經(jīng)有了一個箱子,箱子的上邊再沒有箱子且是空地)
                    if ((iscunzai(kongdi,new Point(man.x,man.y-2))==true)&&(iscunzai(box,new Point(man.x,man.y-2))==false)){
//                      這種情況下是人和箱子都向上移動一格
                        for (int i = 0; i < box.length; i++) {
                            if(box[i].x==man.x&&box[i].y==man.y-1){
                                box[i].y--;
                                break;
                            }
                        }
                        man.y--;
                        //判斷所有箱子是否歸位
                        if(iswin()==true){

                            if(guan<maxguan){//不是最后一關(guān)

                                guan++;
//                            加載新一關(guān)的地圖
                                jiazaiditu(guan);
                            }else{//是最后一關(guān)
                                tongguan=true;
                            }

                        }

                    }
                }
            }

//        下
        }else if (key == KeyEvent.VK_DOWN) {
            //            y-1是空地
            if(iscunzai(kongdi,new Point(man.x,man.y+1))==true){
//                y-1是空地,且空地上沒有箱子
                if(iscunzai(box,new Point(man.x,man.y+1))==false){
                    man.y++;
                }else{//y-2是一個空地,且沒有箱子
//                    y-2是一個沒有箱子的空地(這種就是上邊已經(jīng)有了一個箱子,箱子的上邊再沒有箱子且是空地)
                    if ((iscunzai(kongdi,new Point(man.x,man.y+2))==true)&&(iscunzai(box,new Point(man.x,man.y+2))==false)){
//                      這種情況下是人和箱子都向上移動一格
                        for (int i = 0; i < box.length; i++) {
                            if(box[i].x==man.x&&box[i].y==man.y+1){
                                box[i].y++;
                                break;
                            }
                        }
                        man.y++;
                        //判斷所有箱子是否歸位
                        if(iswin()==true){
                            if(guan<maxguan){
                                guan++;
//                            加載新一關(guān)的地圖
                                jiazaiditu(guan);
                            }else{
                                tongguan=true;
                            }

                        }

                    }
                }
            }
//            左
        }else if(key == KeyEvent.VK_LEFT){
            if(iscunzai(kongdi,new Point(man.x-1,man.y))==true){
//                y-1是空地,且空地上沒有箱子
                if(iscunzai(box,new Point(man.x-1,man.y))==false){
                    man.x--;
                }else{//y-2是一個空地,且沒有箱子
//                    y-2是一個沒有箱子的空地(這種就是上邊已經(jīng)有了一個箱子,箱子的上邊再沒有箱子且是空地)
                    if ((iscunzai(kongdi,new Point(man.x-2,man.y))==true)&&(iscunzai(box,new Point(man.x-2,man.y))==false)){
//                      這種情況下是人和箱子都向上移動一格
                        for (int i = 0; i < box.length; i++) {
                            if(box[i].x==man.x-1&&box[i].y==man.y){
                                box[i].x--;
                                break;
                            }
                        }
                        man.x--;
                        //判斷所有箱子是否歸位
                        if(iswin()==true){
                            if(guan<maxguan){
                                guan++;
//                            加載新一關(guān)的地圖
                                jiazaiditu(guan);
                            }else{
                                tongguan=true;
                            }

                        }

                    }
                }
            }

//            右
        }else if (key == KeyEvent.VK_RIGHT) {
            if(iscunzai(kongdi,new Point(man.x+1,man.y))==true){
//                y-1是空地,且空地上沒有箱子
                if(iscunzai(box,new Point(man.x+1,man.y))==false){
                    man.x++;
                }else{//y-2是一個空地,且沒有箱子
//                    y-2是一個沒有箱子的空地(這種就是上邊已經(jīng)有了一個箱子,箱子的上邊再沒有箱子且是空地)
                    if ((iscunzai(kongdi,new Point(man.x+2,man.y))==true)&&(iscunzai(box,new Point(man.x+2,man.y))==false)){
//                      這種情況下是人和箱子都向上移動一格
                        for (int i = 0; i < box.length; i++) {
                            if(box[i].x==man.x+1&&box[i].y==man.y){
                                box[i].x++;
                                break;
                            }
                        }
                        man.x++;
                        //判斷所有箱子是否歸位
                        if(iswin()==true){
                            if(guan<maxguan){
                                guan++;
//                            加載新一關(guān)的地圖
                                jiazaiditu(guan);
                            }else{
                                tongguan=true;
                            }
                        }
                    }
                }
            }

        }
//        點(diǎn)擊空格鍵重玩當(dāng)前關(guān)卡
        if(key == KeyEvent.VK_SPACE) {//空格鍵
//            重置當(dāng)前關(guān)卡
            jiazaiditu(guan);
        }
        repaint();
    }
    public void keyReleased(KeyEvent e) {
    }
    public void mouseClicked(MouseEvent e) {
    }
    public void mousePressed(MouseEvent e) {
    }
    public void mouseReleased(MouseEvent e) {
    }
    public void mouseEntered(MouseEvent e) {
    }
    public void mouseExited(MouseEvent e) {
    }
//   判斷某個數(shù)組中是否存在某個點(diǎn)
//    判斷point這個點(diǎn)是否在points這個數(shù)組中
    public boolean iscunzai(Point [] points,Point point){
        for (int i = 0; i < points.length; i++) {
            if(points[i].x==point.x&&points[i].y==point.y){
                return true;
            }
        }
        return false;
    }


//    加載地圖
    public void jiazaiditu(int index){
        // 清空當(dāng)前數(shù)據(jù)
        //
        ArrayList<Point> boxlist = new ArrayList<Point>();
        ArrayList<Point> homelist = new ArrayList<Point>();
        ArrayList<Point> qiangbilist = new ArrayList<Point>();
        ArrayList<Point> kongdilist = new ArrayList<Point>();

        Ditu d = ditu[index-1];
        for(int i= 0;i<d.ditu.length;i++)
        {
            for(int j=0;j<d.ditu[i].length;j++)
            {
                // 1是墻壁
                if(d.ditu[i][j] == 1){
                    qiangbilist.add(new Point(j,i));
                }
                // 2是空地
                else if(d.ditu[i][j] == 2){
                    kongdilist.add(new Point(j,i));
                }
                // 3是黑店
                else if(d.ditu[i][j] == 3){
                    homelist.add(new Point(j,i));
                    kongdilist.add(new Point(j,i));
                }
                // 4箱子
                else if(d.ditu[i][j] == 4){
                    boxlist.add(new Point(j,i));
                    kongdilist.add(new Point(j,i));
                }
                // 5人
                else if(d.ditu[i][j] == 5){
                    man.x = j;
                    man.y = i;
                    kongdilist.add(new Point(j,i));
                }
                // 6(箱子在黑點(diǎn)上)
                else if(d.ditu[i][j] ==6){
                    boxlist.add(new Point(j,i));
                    kongdilist.add(new Point(j,i));
                    homelist.add(new Point(j,i));
                }
                // 7(人在黑點(diǎn)上)
                else if(d.ditu[i][j] == 7){
                    man.x = j;
                    man.y = i;
                    kongdilist.add(new Point(j,i));
                    homelist.add(new Point(j,i));
                }
            }
        }
        int i=0;
        qiangbi = new Point[qiangbilist.size()];
        for (Point p:qiangbilist){
            qiangbi[i] = new Point(p.x,p.y);
            i++;
        }
        i=0;

        kongdi = new Point[kongdilist.size()];
        for (Point p:kongdilist){
            kongdi[i]=new Point(p.x,p.y);
            i++;
        }
        i=0;
        box = new Point[boxlist.size()];
        for (Point p:boxlist){
            box[i]=new Point(p.x,p.y);
            i++;
        }
        i=0;
        home = new Point[homelist.size()];
        for (Point p:homelist){
            home[i]=new Point(p.x,p.y);
            i++;
        }

        height=d.ditu.length;
        width=d.ditu[0].length;

        this.setSize(width*size,height*size+title);
        window=true;
    }

    //    判斷單個方塊是否歸位//用于改變顏色
    public boolean isguiwei(int i){
        for (int i1 = 0; i1 < home.length; i1++) {
            if(box[i].x==home[i1].x&&box[i].y==home[i1].y){
                return true;
            }
        }
        return false;
    }

    public void actionPerformed(ActionEvent e) {
    }
    public void keyTyped(KeyEvent e) {
    }
    //    判斷游戲是否勝利(判斷方塊是否全部歸位)
    public boolean iswin(){
        int j=0;
        for (int i = 0; i < box.length; i++) {
            for (int i1 = 0; i1 < home.length; i1++) {
                if(box[i].x==home[i1].x&&box[i].y==home[i1].y){
                    j++;
                    if(j==home.length){
                        return true;
                    }
                }
            }
        }
        return false;
    }

    public static void main(String[] args) {
        Pushbox005 pushbox=new Pushbox005();
            pushbox.Tian();
    }

}

到了這里,關(guān)于java版本實(shí)現(xiàn)推箱子小游戲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python小游戲——推箱子代碼開源

    python小游戲——推箱子代碼開源

    ?? 作者:小劉在這里 ?? 每天分享云計算網(wǎng)絡(luò)運(yùn)維課堂筆記,努力不一定有回報,但一定會有收獲加油!一起努力,共赴美好人生! ?? 夕陽下,是最美的,綻放,愿所有的美好,再疫情結(jié)束后如約而至。 目錄 一.效果呈現(xiàn) ?二.主代碼 三.cfg 四.README \\\'\\\'\\\'配置文件\\\'\\\'\\\' imp

    2024年02月02日
    瀏覽(29)
  • C/C++項(xiàng)目實(shí)戰(zhàn)-推箱子小游戲
  • python畢設(shè)分享 python推箱子小游戲

    python畢設(shè)分享 python推箱子小游戲

    ?? Hi,各位同學(xué)好呀,這里是L學(xué)長! ??今天向大家分享一個今年(2022)最新完成的畢業(yè)設(shè)計項(xiàng)目作品 python小游戲畢設(shè) 推箱子小游戲設(shè)計與實(shí)現(xiàn) (源碼) ?? 學(xué)長根據(jù)實(shí)現(xiàn)的難度和等級對項(xiàng)目進(jìn)行評分(最低0分,滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點(diǎn):4分 項(xiàng)目獲?。?htt

    2024年02月05日
    瀏覽(29)
  • 【HTML小游戲】推箱子網(wǎng)頁版(附完整源碼)

    【HTML小游戲】推箱子網(wǎng)頁版(附完整源碼)

    最近剛剛更新完了HTML,CSS的萬字總結(jié) ,有很多人已經(jīng)學(xué)習(xí)完了文章,感覺反饋還不錯,今天,用HTML,CSS,JS的知識編寫了一個童年經(jīng)典游戲 - 推箱子,供學(xué)習(xí)參考。 游戲主界面展示: 游戲界面展示: 經(jīng)典的推箱子是一個非常古老游戲,甚至是80,90年代的回憶,目的是在訓(xùn)

    2024年02月04日
    瀏覽(31)
  • Java課程設(shè)計之推箱子

    ? 推箱子游戲是一個比較古老的游戲,深受廣大游戲愛好者的歡迎,它在帶來樂趣的同時也能培養(yǎng)我們的反應(yīng)力以及嚴(yán)謹(jǐn)?shù)乃季S能力。 ? 游戲規(guī)則是要求角色將地圖中所有放置的箱子推到指定目標(biāo)位置,只有合理安排移動次序和位置?,才能順利完成任務(wù)。 ? 項(xiàng)目任務(wù)是用

    2024年02月08日
    瀏覽(29)
  • 【c語言】推箱子

    【c語言】推箱子

    所需知識:c語言枚舉,數(shù)組,for循環(huán),while循環(huán),switch,case語句,圖形庫相關(guān)函數(shù) 將printmap()在main中調(diào)用 為了讓程序不會輸入字符后退出,加上while循環(huán) 為了保證游戲的美觀性,我們將對應(yīng)的數(shù)字轉(zhuǎn)化為好看的圖案 使用兩層循環(huán)遍歷二維數(shù)組,在使用switch已經(jīng)將對應(yīng)的數(shù)字用

    2024年02月08日
    瀏覽(21)
  • 1263. 推箱子

    題目: 「推箱子」是一款風(fēng)靡全球的益智小游戲,玩家需要將箱子推到倉庫中的目標(biāo)位置。 游戲地圖用大小為 m x n 的網(wǎng)格 grid 表示,其中每個元素可以是墻、地板或者是箱子。 現(xiàn)在你將作為玩家參與游戲,按規(guī)則將箱子 ‘B’ 移動到目標(biāo)位置 ‘T’ : 玩家用字符 ‘S’ 表

    2024年02月10日
    瀏覽(20)
  • 走迷宮之推箱子

    走迷宮之推箱子

    在上一篇文章當(dāng)中我介紹了一個走迷宮的寫法,但是那個迷宮沒什么可玩性和趣味性,所以我打算在迷宮的基礎(chǔ)上加上一個推箱子,使之有更好的操作空間,從而增強(qiáng)了游戲的可玩性和趣味性。 迷宮的組成要素?zé)o非就是:墻、路、入口、出口,根據(jù)這些要素我們可以設(shè)置一個

    2024年01月17日
    瀏覽(13)
  • 簡單的推箱子游戲?qū)崙?zhàn)

    簡單的推箱子游戲?qū)崙?zhàn)

    目錄 項(xiàng)目分析 ?地圖初始化 背景圖片 游戲場景圖片: 熱鍵控制 ?按鍵設(shè)置 確定人物位置 實(shí)現(xiàn)人物移動(非箱子,目的地) 推箱子控制 游戲結(jié)束 最終代碼 合法性判斷: 墻:0,地板:1,箱子目的地:2,小人:3,箱子:4,箱子命中目標(biāo):5 但是一直執(zhí)行循環(huán)塊很占用CPU ,消耗很大很嚴(yán)重資源(使用

    2024年01月22日
    瀏覽(24)
  • 【LeetCode困難】1263. 推箱子

    【LeetCode困難】1263. 推箱子

    「推箱子」是一款風(fēng)靡全球的益智小游戲,玩家需要將箱子推到倉庫中的目標(biāo)位置。 游戲地圖用大小為 m x n 的網(wǎng)格 grid 表示,其中每個元素可以是墻、地板或者是箱子。 現(xiàn)在你將作為玩家參與游戲,按規(guī)則將箱子 ‘B’ 移動到目標(biāo)位置 ‘T’ : 玩家用字符 ‘S’ 表示,只要

    2024年02月04日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包