• <em id="6vhwh"><rt id="6vhwh"></rt></em>

    <style id="6vhwh"></style>

    <style id="6vhwh"></style>
    1. <style id="6vhwh"></style>
        <sub id="6vhwh"><p id="6vhwh"></p></sub>
        <p id="6vhwh"></p>
          1. 国产亚洲欧洲av综合一区二区三区 ,色爱综合另类图片av,亚洲av免费成人在线,久久热在线视频精品视频,成在人线av无码免费,国产精品一区二区久久毛片,亚洲精品成人片在线观看精品字幕 ,久久亚洲精品成人av秋霞

            java貪吃蛇(java貪吃蛇課程設計報告)

            更新時間:2023-03-01 08:43:34 閱讀: 評論:0

            java貪吃蛇國內現狀怎么樣

            java貪吃蛇國內現狀是熱度慢慢淡下去了。貪吃蛇大作戰就做到了,表現異常亮眼,曾經登上免費榜第一的位置。《貪吃蛇大作戰》的流行,以及《球球大作戰》的持續火爆,最核心的原因是,在手機上找到了一種適合實時多人對戰的玩法,也和大環境下新生代玩家越來越注重游戲本身的樂趣有關。在PC端上我們可以玩LOL、DotA、穿越火線這樣的實時對戰游戲,我們享受與人斗的樂趣,將我們的榮譽融入其中。而在手機上能夠給予相似感受的游戲一直并沒有出現,而恰恰這種類型的游戲填補了這方面的空白。

            java貪吃蛇小游戲為什么運行不了游戲

            Java貪吃蛇,粘貼應該就能運行,不過要java環境就是了。

            做這個項目的時候天天掛著瀏覽器,查了不少資料,甚至直接cv工程師上線,下面是一個比我做得好的,我也是一大半都從那抄來,不過,說全抄不會真信吧,如果真新,那就是我的注釋不夠詳細了。。。

            怎么包裝貪吃蛇項目

            思路:
            首先你要有一條貪吃蛇,哎,就是玩兒。
            1.先用Java敲一個貪吃蛇小游戲的程序。
            2.把Java程序打包成jar文件包,把jar包打包成exe應用程序
            知道思路以后,接下來按照我的詳細步驟走,能少踩坑,別問我怎么知道的!!!
            一、Java“敲一個”貪吃蛇小游戲
            廢話不多說,本篇主要講從java項目到exe應用程序,Java項目的代碼在我上傳的資源當中——代碼-greedy snack.zip
            二、將項目打成jar包
            如何打包成jar包?
            1.手動打可直接執行的jar包(本次不使用)2. 使用intellij idea工具打可直接執行的jar包
            1) 打開項目
            2)點擊 File — 選擇 Project Structure,找到“Artifacts” 點擊 “+” 選擇“JAR” —“Empty”。
            3) Name欄可以填入自定義的名字,Output ditectory選擇jar包生成目標目錄,Available Elements里雙擊需要添加到jar包的文件,即可添加到左邊的jar包目錄,如圖:
            4)點擊Create Manifest,選擇放置MANIFEST.MF的文件路徑,直接默認項目根目錄就行,點擊OK。
            5) 點擊Main Class后面選擇按鈕, 彈出框中選擇需要運行程序入口main函數,點擊OK,點擊OK。
            6) 點擊菜單中“Build” -> "Build Artifacts", 雙擊彈出框中待生成jar包下面的build即可,如下圖
            7)至此使用Intellij idea生成可直接執行jar包就完成了。
            8)查看生成的jar包,并運行jar包。命令行運行jar包
            java -jar xxx.jar
            復制代碼
            三、打包成為exe應用程序
            這里首先你要有:
            上面生成的jar包 greedy snack.jar
            工具:exe4j,一個將jar轉換成exe的工具 鏈接:http://pan.baidu.com/s/1FlgsxJZ5… 提取碼:ijdv
            1)安裝exe4j,打開安裝好的exe4j,進行注冊
            注冊碼:L-g782dn2d-1f1yqxx1rv1sqd
            2) 點擊 Next, 選擇JAVA轉EXE
            3) Next,填入自定義的名字和生成目標文件目錄
            4) 繼續Next,選擇啟動模式、設置程序名稱和程序圖標
            5) 下方有個選項,需要設置打包后的程序兼容32和64位系統。
            勾選,然后Next。
            6)然后Next,直到出現如下界面,開始選擇jar包以及配置
            在VM參數配置的地方加上:-Dfile.encoding=utf-8
            添加jar包
            設置啟動類
            Next 配置JRE
            Next 選擇 Client VM
            7)Next 直到如下圖界面
            桌面多了一個貪吃蛇小游戲3.0.exe文件,至此我們就成功的做出了一個Java貪吃蛇小游戲的exe應用程序

            貪吃蛇 java代碼

            自己寫著玩的,很簡單,你試一試哦...
            主要用了javax.swing.Timer這個類:

            import java.awt.*;
            import javax.swing.*;

            @SuppressWarnings("rial")
            public class MainClass extends JFrame {
            ControlSnake control;

            Toolkit kit;

            Dimension dimen;

            public static void main(String[] args) {
            new MainClass("my snake");
            }

            public MainClass(String s) {
            super(s);
            control = new ControlSnake();
            control.tFocusable(true);
            kit = Toolkit.getDefaultToolkit();
            dimen = kit.getScreenSize();

            add(control);
            tLayout(new BorderLayout());
            tLocation(dimen.width / 3, dimen.height / 3);// dimen.width/3,dimen.height/3
            tSize(FWIDTH, FHEIGHT);
            tDefaultCloOperation(JFrame.EXIT_ON_CLOSE);
            tResizable(fal);
            tVisible(true);
            }

            public static final int FWIDTH = 315;

            public static final int FHEIGHT = 380;
            }

            import java.util.*;
            import java.awt.*;
            import java.awt.event.*;
            import javax.swing.*;
            import javax.swing.Timer;
            import java.util.Random;

            @SuppressWarnings("rial")
            public class ControlSnake extends JPanel implements ActionListener {
            Random rand;

            ArrayList<Point> list, listBody;

            String str, str1;

            static boolean key;

            int x, y, dx, dy, fx, fy, flag;

            int snakeBody;

            int speed;

            public ControlSnake() {
            snakeBody = 1;

            str = "上下左右方向鍵控制 P鍵暫停...";
            str1 = "現在的長度為:" + snakeBody;
            key = true;
            flag = 1;

            speed = 700;
            rand = new Random();
            list = new ArrayList<Point>();
            listBody = new ArrayList<Point>();

            x = 5;
            y = 5;
            list.add(new Point(x, y));
            listBody.add(list.get(0));

            dx = 10;
            dy = 0;

            fx = rand.nextInt(30) * 10 + 5;// 2
            fy = rand.nextInt(30) * 10 + 5;// 2

            tBackground(Color.WHITE);
            tSize(new Dimension(318, 380));

            final Timer time = new Timer(speed, this);
            time.start();

            addKeyListener(new KeyAdapter() {
            public void keyPresd(KeyEvent e) {
            if (e.getKeyCode() == 37) {
            dx = -10;
            dy = 0;
            } el if (e.getKeyCode() == 38) {
            dx = 0;
            dy = -10;
            } el if (e.getKeyCode() == 39) {
            dx = 10;
            dy = 0;
            } el if (e.getKeyCode() == 40) {
            dx = 0;
            dy = 10;
            } el if (e.getKeyCode() == 80) {
            if (flag % 2 == 1) {
            time.stop();
            }
            if (flag % 2 == 0) {
            time.start();
            }
            flag++;
            }
            }
            });

            }

            public void paint(Graphics g) {
            g.tColor(Color.WHITE);
            g.fillRect(0, 0, 400, 400);
            g.tColor(Color.DARK_GRAY);
            g.drawLine(3, 3, 305, 3);
            g.drawLine(3, 3, 3, 305);
            g.drawLine(305, 3, 305, 305);
            g.drawLine(3, 305, 305, 305);
            g.tColor(Color.PINK);

            for (int i = 0; i < listBody.size(); i++) {
            g.fillRect(listBody.get(i).x, listBody.get(i).y, 9, 9);
            }
            g.fillRect(x, y, 9, 9);
            g.tColor(Color.ORANGE);
            g.fillRect(fx, fy, 9, 9);

            g.tColor(Color.DARK_GRAY);
            str1 = "現在的長度為:" + snakeBody;
            g.drawString(str, 10, 320);
            g.drawString(str1, 10, 335);
            }

            public void actionPerformed(ActionEvent e) {
            x += dx;
            y += dy;
            if (makeOut() == fal) {
            JOptionPane.showMessageDialog(null, "重新開始......");

            speed = 700;

            snakeBody = 1;

            x = 5;
            y = 5;

            list.clear();
            list.add(new Point(x, y));
            listBody.clear();
            listBody.add(list.get(0));

            dx = 10;
            dy = 0;

            }
            addPoint(x, y);
            if (x == fx && y == fy) {
            speed = (int) (speed * 0.8);//速度增加參數
            if (speed < 200) {
            speed = 100;
            }
            fx = rand.nextInt(30) * 10 + 5;// 2
            fy = rand.nextInt(30) * 10 + 5;// 2
            snakeBody++;// 2
            } // 2
            repaint();
            }

            public void addPoint(int xx, int yy) {
            // 動態的記錄最新發生的50步以內的移動過的坐標
            // 并畫出最新的snakeBody
            if (list.size() < 100) {//蛇身長度最長為100
            list.add(new Point(xx, yy));
            } el {
            list.remove(0);
            list.add(new Point(xx, yy));
            }
            if (snakeBody == 1) {
            listBody.remove(0);
            listBody.add(0, list.get(list.size() - 1));
            } el {
            listBody.clear();
            if (list.size() < snakeBody) {
            for (int i = list.size() - 1; i > 0; i--) {
            listBody.add(list.get(i));
            }
            } el {
            for (int i = list.size() - 1; listBody.size() < snakeBody; i--) {
            listBody.add(list.get(i));
            }
            }
            }
            }

            public boolean makeOut() {
            if ((x < 3 || y < 3) || (x > 305 || y > 305)) {
            return fal;
            }
            for (int i = 0; i < listBody.size() - 1; i++) {
            for (int j = i + 1; j < listBody.size(); j++) {
            if (listBody.get(i).equals(listBody.get(j))) {
            return fal;
            }
            }
            }
            return true;
            }
            }

            求java貪吃蛇的編程,并有注釋

            J2ME貪吃蛇源代碼——200行左右,包含詳細注釋 package snake;import javax.microedition.midlet.*;
            import javax.microedition.lcdui.*;public class SnakeMIDlet extends MIDlet {
            SnakeCanvas displayable = new SnakeCanvas();
            public SnakeMIDlet() {
            Display.getDisplay(this).tCurrent(displayable);
            }public void startApp() {}public void pauApp() {}public void destroyApp(boolean unconditional) {}}//文件名:SnakeCanvas.javapackage snake;import java.util.*;
            import javax.microedition.lcdui.*;/**
            * 貪吃蛇游戲
            */
            public class SnakeCanvas extends Canvas implements Runnable{
            /**存儲貪吃蛇節點坐標,其中第二維下標為0的代表x坐標,第二維下標是1的代表y坐標*/
            int[][] snake = new int[200][2];
            /**已經使用的節點數量*/
            int snakeNum;
            /**貪吃蛇運動方向,0代表向上,1代表向下,2代表向左,3代表向右*/
            int direction;
            /*移動方向*/
            /**向上*/
            private final int DIRECTION_UP = 0;
            /**向下*/
            private final int DIRECTION_DOWN = 1;
            /**向左*/
            private final int DIRECTION_LEFT = 2;
            /**向右*/
            private final int DIRECTION_RIGHT = 3;/**游戲區域寬度*/
            int width;
            /**游戲區域高度*/
            int height;/**蛇身單元寬度*/
            private final byte SNAKEWIDTH = 4;/**是否處于暫停狀態,true代表暫停*/
            boolean isPaud = fal;
            /**是否處于運行狀態,true代表運行*/
            boolean isRun = true;/**時間間隔*/
            private final int SLEEP_TIME = 300;

            /**食物的X坐標*/
            int foodX;
            /**食物的Y坐標*/
            int foodY;
            /**食物的閃爍控制*/
            boolean b = true;

            /**Random對象*/
            Random random = new Random();

            public SnakeCanvas() {
            //初始化
            init();
            width = this.getWidth();
            height = this.getHeight();
            //啟動線程
            new Thread(this).start();
            }/**
            * 初始化開始數據
            */
            private void init(){
            //初始化節點數量
            snakeNum = 7;
            //初始化節點數據
            for(int i = 0;i < snakeNum;i++){
            snake[i][0] = 100 - SNAKEWIDTH * i;
            snake[i][1] = 40;
            }
            //初始化移動方向
            direction = DIRECTION_RIGHT;
            //初始化食物坐標
            foodX = 100;
            foodY = 100;
            }protected void paint(Graphics g) {
            //清屏
            g.tColor(0xffffff);
            g.fillRect(0,0,width,height);
            g.tColor(0);//繪制蛇身
            for(int i = 0;i < snakeNum;i++){
            g.fillRect(snake[i][0],snake[i][1],SNAKEWIDTH,SNAKEWIDTH);
            }
            //繪制食物
            if(b){
            g.fillRect(foodX,foodY,SNAKEWIDTH,SNAKEWIDTH);
            }
            }private void move(int direction){
            //蛇身移動
            for(int i = snakeNum - 1;i > 0;i--){
            snake[i][0] = snake[i - 1][0];
            snake[i][1] = snake[i - 1][1];
            }//第一個單元格移動
            switch(direction){
            ca DIRECTION_UP:
            snake[0][1] = snake[0][1] - SNAKEWIDTH;
            break;
            ca DIRECTION_DOWN:
            snake[0][1] = snake[0][1] + SNAKEWIDTH;
            break;
            ca DIRECTION_LEFT:
            snake[0][0] = snake[0][0] - SNAKEWIDTH;
            break;
            ca DIRECTION_RIGHT:
            snake[0][0] = snake[0][0] + SNAKEWIDTH;
            break;
            }
            }
            /**
            * 吃掉食物,自身增長
            */
            private void eatFood(){
            //判別蛇頭是否和食物重疊
            if(snake[0][0] == foodX && snake[0][1] == foodY){
            snakeNum++;
            generateFood();
            }
            }
            /**
            * 產生食物
            * 說明:食物的坐標必須位于屏幕內,且不能和蛇身重合
            */
            private void generateFood(){
            while(true){
            foodX = Math.abs(random.nextInt() % (width - SNAKEWIDTH + 1))
            / SNAKEWIDTH * SNAKEWIDTH;
            foodY = Math.abs(random.nextInt() % (height - SNAKEWIDTH + 1))
            / SNAKEWIDTH * SNAKEWIDTH;
            boolean b = true;
            for(int i = 0;i < snakeNum;i++){
            if(foodX == snake[i][0] && snake[i][1] == foodY){
            b = fal;
            break;
            }
            }
            if(b){
            break;
            }
            }
            }

            /**
            * 判斷游戲是否結束
            * 結束條件:
            * 1、蛇頭超出邊界
            * 2、蛇頭碰到自身
            */
            private boolean isGameOver(){
            //邊界判別
            if(snake[0][0] < 0 || snake[0][0] > (width - SNAKEWIDTH) ||
            snake[0][1] < 0 || snake[0][1] > (height - SNAKEWIDTH)){
            return true;
            }
            //碰到自身
            for(int i = 4;i < snakeNum;i++){
            if(snake[0][0] == snake[i][0]
            && snake[0][1] == snake[i][1]){
            return true;
            }
            }

            return fal;
            }/**
            * 事件處理
            */
            public void keyPresd(int keyCode){
            int action = this.getGameAction(keyCode);
            //改變方向
            switch(action){
            ca UP:
            if(direction != DIRECTION_DOWN){
            direction = DIRECTION_UP;
            }
            break;
            ca DOWN:
            if(direction != DIRECTION_UP){
            direction = DIRECTION_DOWN;
            }
            break;
            ca LEFT:
            if(direction != DIRECTION_RIGHT){
            direction = DIRECTION_LEFT;
            }
            break;
            ca RIGHT:
            if(direction != DIRECTION_LEFT){
            direction = DIRECTION_RIGHT;
            }
            break;
            ca FIRE:
            //暫停和繼續
            isPaud = !isPaud;
            break;
            }
            }/**
            * 線程方法
            * 使用精確延時
            */
            public void run(){
            try{
            while (isRun) {
            //開始時間
            long start = System.currentTimeMillis();

            if(!isPaud){
            //吃食物
            eatFood();
            //移動
            move(direction);

            //結束游戲
            if(isGameOver()){
            break;
            }

            //控制閃爍
            b = !b;
            }
            //重新繪制
            repaint();

            long end = System.currentTimeMillis();

            //延時
            if(end - start < SLEEP_TIME){
            Thread.sleep(SLEEP_TIME - (end - start));
            }
            }
            }catch(Exception e){}
            }
            }

            本文發布于:2023-02-28 19:44:00,感謝您對本站的認可!

            本文鏈接:http://m.newhan.cn/zhishi/a/167763141469551.html

            版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。

            本文word下載地址:java貪吃蛇(java貪吃蛇課程設計報告).doc

            本文 PDF 下載地址:java貪吃蛇(java貪吃蛇課程設計報告).pdf

            標簽:貪吃蛇   課程設計   報告   java
            相關文章
            留言與評論(共有 0 條評論)
               
            驗證碼:
            Copyright ?2019-2022 Comsenz Inc.Powered by ? 實用文體寫作網旗下知識大全大全欄目是一個全百科類寶庫! 優秀范文|法律文書|專利查詢|
            主站蜘蛛池模板: 亚洲中文字幕日韩精品| 伊人色在线视频| 精品九九人人做人人爱| 久久99精品久久水蜜桃| 日韩精品人妻黄色一级片| 国产精品视频午夜福利| 久久久久香蕉国产线看观看伊| 蜜桃久久精品成人无码av | 成人免费A级毛片无码片2022| 国产亚洲一区二区手机在线观看| 不卡国产一区二区三区| 在线观看国产一区亚洲bd| 国产91麻豆视频免费看| 色窝窝免费一区二区三区| 亚洲国产成熟视频在线多多| 综合亚洲网| a级毛片毛片免费观看久潮| 国产亚洲情侣一区二区无| 天天综合天天色| 777久久精品一区二区三区无码| 亚洲中文字幕无码爆乳| 国产日产免费高清欧美一区| 中国CHINA体内裑精亚洲日本 | 91福利一区福利二区| 99久久国产综合精品女同| 成人免费无遮挡在线播放| 日韩国产成人精品视频| 日韩一区二区三区水蜜桃| 人人玩人人添人人澡超碰| 欧美丰满熟妇性xxxx| 欧美拍拍视频免费大全| 久久香蕉国产线看观看猫咪av| 久久精品国产99国产精品严洲| 日本一道一区二区视频| 国产一区二区三中文字幕| 亚洲女同精品一区二区| 丰满少妇特黄一区二区三区| 国产av亚洲精品ai换脸电影| 亚洲无人区码二码三码区| 国产午夜亚洲精品久久| 国产91丝袜在线播放动漫|