cmd版贪吃蛇_贪吃蛇老版本无敌版

cmd版贪吃蛇_贪吃蛇老版本无敌版importjava.awt.*;importjava.util.LinkedList;importjava.util.Scanner;/***@authoraachen0*@date2018/3/2713:56*IDE:IntelliJIDEA*/publicclassSnakeGame{staticfinalintWIDTH=…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

import java.awt.*; import java.util.LinkedList; import java.util.Scanner; /**  * @author aachen0  * @date 2018/3/27 13:56  * IDE:IntelliJ IDEA  */ public class SnakeGame {  static final int WIDTH = 40, HEIGHT = 10;  static char[][] map = new char[HEIGHT][WIDTH];  public static void main(String[] args) {  SnakeGame snakeGame = new SnakeGame();  snakeGame.initBackground();//初始化背景,放只虫子  SnakeLine snakeLine = new SnakeLine();  snakeLine.initSnake();//初始化一条蛇  snakeGame.putSnakeInMap(snakeLine);  snakeGame.show();//显示一下  //键盘移动蛇进行游戏  Scanner scanner = new Scanner(System.in);  int move;  while (true) {  System.out.println("输入AWSD控制蛇的移动,Q退出游戏");  String choice = scanner.next();  switch (choice) {  case "a":  case "A":  move = 2;  break;  case "s":  case "S":  move = 1;  break;  case "w":  case "W":  move = 3;  break;  case "d":  case "D":  move = 0;  break;  case "q":  case "Q":  int points=snakeLine.snakePoints.size();  snakeGame.putGameOverInMap(points);  default:  System.out.println("输入有误,请重试");  continue;  }  if (snakeLine.move(move) == -1) {  snakeGame.putGameOverInMap(snakeLine.snakePoints.size());  snakeGame.show();  break;  }  snakeGame.putSnakeInMap(snakeLine);  snakeGame.show();  }  }  //用字符画背景  private void initBackground() {  for (int i = 0; i < HEIGHT; i++) { 
   //外围控制行  for (int j = 0; j < WIDTH; j++) { 
   //内循环控制各行的第几个  this.map[i][j] = (j == 0 || (j == WIDTH - 1) || i == 0 || (i == HEIGHT - 1)) ? '*' : ' ';  }  }  }  //显示背景  public void show() {  int height = map.length;  int width = map[0].length;  for (int i = 0; i < height; i++) {  for (int j = 0; j < width; j++) {  System.out.print(map[i][j]);  }  System.out.println();  }  }  //把加到地图  void putSnakeInMap(SnakeLine snakeLine) {  Point p;  this.initBackground();  map[SnakeLine.food.y][SnakeLine.food.x] = SnakeLine.worm;  for (int i = 0; i < snakeLine.snakePoints.size(); i++) {  p = snakeLine.snakePoints.get(i);  if (p.y > 0 && p.y < HEIGHT - 1 && p.x > 0 && p.x < WIDTH - 1) {  map[p.y][p.x] = (i == 0) ? snakeLine.head : snakeLine.body;  } else {  putGameOverInMap(snakeLine.snakePoints.size());  }  }  }  void putGameOverInMap(int points) {  char[] gameOver = ("GameOver Score:"+(points-3)).toCharArray();  for (int i = 0; i < gameOver.length; i++) {  map[HEIGHT / 2 - 1][i + (WIDTH - gameOver.length) / 2] = gameOver[i];  }  show();  System.exit(1);  } } class SnakeLine {  static final int RIGHT = 0, DOWN = 1, LEFT = 2, UP = 3;  static final char head = 'O', body = 'o', worm = '~';//头和身体表示  static Point food = new Point((int) (Math.random() * (SnakeGame.WIDTH - 2)) + 1, (int) (Math.random() * (SnakeGame.HEIGHT - 2)) + 1);  private void newFood() {  food = new Point((int) (Math.random() * (SnakeGame.WIDTH - 2)) + 1, (int) (Math.random() * (SnakeGame
            .HEIGHT - 2)) + 1);  }  LinkedList<Point> snakePoints = new LinkedList<>();//蛇的身体内容  void initSnake() {  Point head = new Point(SnakeGame.WIDTH / 2, SnakeGame.HEIGHT / 2);  snakePoints.addFirst(head);// snakePoints.addLast(new Point(head.x - 1, head.y));  snakePoints.addLast(new Point(head.x - 2, head.y));  }  int move(int orient) {  Point p = snakePoints.getFirst();  Point np = null;  switch (orient) {  case SnakeLine.RIGHT:  np = new Point(p.x + 1, p.y);  break;  case SnakeLine.LEFT:  np = new Point(p.x - 1, p.y);  break;  case SnakeLine.DOWN:  np = new Point(p.x, p.y + 1);  break;  case SnakeLine.UP:  np = new Point(p.x, p.y - 1);  break;  }  if (snakePoints.contains(np)) {  return -1;//咬到自己了  }  snakePoints.addFirst(np);  if (np.equals(food)) { 
   //吃到食物了  newFood();  return 2;  }  snakePoints.removeLast();  return 1;  } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197011.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python爬虫 记录一次爬取淘宝的过程

    python爬虫 记录一次爬取淘宝的过程

    2021年11月10日
    109
  • 如何使用staruml创建时序图[通俗易懂]

    说明:staruml版本:5.0.2.15701、打开staruml2、添加模型,右键Untitled=&gt;add=&gt;model=&gt;取名myuml(可以随意取)3、添加图表,右键myuml=&gt;AddDiagram=&gt;SequenceDiagram4、重命名图表5、添加参与者actor,右键myuml=&gt;add=&gt…

    2022年4月12日
    72
  • 关于苹果审核反馈的17.2

    关于苹果审核反馈的17.2

    2021年9月5日
    73
  • vue漂亮的树控件_前端树形控件

    vue漂亮的树控件_前端树形控件实现效果与原理我们希望实现鼠标移动至树型结构的结点上就显示按钮,移出就隐藏按钮实现原理:是通过@mouseenter和@mouseleave两个属性来控制鼠标hover的效果,再配合v-sho

    2022年7月29日
    16
  • tof相机很好的总结~

    tof相机很好的总结~1.1TOF初探TOF是Timeofflight的简写,直译为飞行时间的意思。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。这种技术跟3D激光传感器原理基本类似,只不过3D激光传感器是逐点扫描,而TOF相机则是同时得到整幅图像的深度信息。TOF相机与普通机器视觉成像过程也有类似之处,都是由光源、光

    2022年5月9日
    56
  • 如何查看windows的CUDA版本「建议收藏」

    如何查看windows的CUDA版本「建议收藏」最近开始学习一些关于图像处理的计算机视觉的问题(跟着老师,开拓视野)首先就是安装anaconda环境(这个简单)然后老师要求使用pytorch作为我们学习的工具,于是上官网查看相应的pytorch的版本:只需要我们自己选择相应的系统,下载使用的工具方式,python的版本,以及CUDA版本号,就可以获得到相应的命令进行下载安装。这时遇到一个问题,CUDA是什么?CUDA(C…

    2022年6月14日
    168

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号