三九宝宝网宝宝教育智力培养

以下是贪吃蛇java程序一部分我需要下面程序代码的详细注解

02月21日 编辑 39baobao.com

[Java程序员面试指南的内容简介]本书的主要内容: 第一篇(第1章)介绍了求职面试前都需要做好哪些准备工作:如何做好自己的职业规划;掌握面试的流程,在以后的面试中不会感到陌生,消除恐惧;怎样制作一个令人满意、访问...+阅读

/*** MVC模式中得Viewer,只负责对数据的显示,而不用理会游戏的控制逻辑*/ class SnakeView implements Observer { SnakeControl control = null; //实例话一个SnakeControl对象是control ..SnakeControl在jdk中不存在可能是第3方的或者是自己编写的一个类吧 SnakeModel model = null;//如上 JFrame mainFrame; //创建一个面板类jframe Canvas paintCanvas;/***Canvas 组件表示屏幕上一个空白矩形区域,应用程序可以在该区域内绘图,或者可以从该区域捕获用户的输入事件。

*应用程序必须为 Canvas 类创建子类,以获得有用的功能(如创建自定义组件)。必须重写 paint 方法,以便在 canvas 上执行自定义图形。*/ JLabel labelScore;//....不说了吧..public static final int canvasWidth = 200; //常量宽度200 public static final int canvasHeight = 300;//常量高300 public static final int nodeWidth = 10;//常量宽度10 public static final int nodeHeight = 10;//常量高度10 public SnakeView(SnakeModel model, SnakeControl control) { this.model = model; this.control = control; mainFrame = new JFrame("GreedSnake");//创建jframe 标题是GreedSnake Container cp = mainFrame.getContentPane(); //得到jfram的容器 labelScore = new JLabel("Score:"); //创建jlabel 标签内容是"Score:" cp.add(labelScore, BorderLayout.NORTH);/将jlabel添加到jfram的容器中去 paintCanvas = new Canvas(); //创建新绘图区 paintCanvas.setSize(canvasWidth + 1, canvasHeight + 1); //设置绘图区大小 paintCanvas.addKeyListener(control);//添加键盘监听器control cp.add(paintCanvas, BorderLayout.CENTER);//将绘图区添加到jfram容器中去.布局是BorderLayout的CENTER位置.就是东西南北中的中间 JPanel panelButtom = new JPanel();//创建一个panel panelButtom.setLayout(new BorderLayout());//设置布局是BorderLayout JLabel labelHelp;//标签的创建和添加开始了.......new了3遍就是实例化了3个都加到了panle的中间 ,标签的内容都是""中间的 labelHelp = new JLabel("PageUp, PageDown for speed;", JLabel.CENTER); panelButtom.add(labelHelp, BorderLayout.NORTH); labelHelp = new JLabel("ENTER or R or S for start;", JLabel.CENTER); panelButtom.add(labelHelp, BorderLayout.CENTER); labelHelp = new JLabel("SPACE or P for pause", JLabel.CENTER); panelButtom.add(labelHelp, BorderLayout.SOUTH); cp.add(panelButtom, BorderLayout.SOUTH);//把这个panel添加到jframe的容器里面去 mainFrame.addKeyListener(control);//为jframe添加键盘监听器 mainFrame.pack();//调整此窗口的大小,以适合其子组件的首选大小和布局。

如果该窗口和/或其所有者仍不可显示,则两者在计算首选大小之前变得可显示。在计算首选大小之后,将会验证该 Window。mainFrame.setResizable(false);//设置此 frame 是否可由用户调整大小。false就是不能 mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//点击又上角的就是关闭 mainFrame.setVisible(true);//设置jfram为能看到 } void repaint() { Graphics g = paintCanvas.getGraphics();//Graphics详细看jdk文档..我就知道是一个所有图形上下文的抽象基类..这里应该是那个画图面板 g.setColor(Color.WHITE);//设置这个颜色 g.fillRect(0, 0, canvasWidth, canvasHeight);//画一个矩形在x,y处画一个宽是200,高是300的矩形,g.setColor(Color.BLACK);//颜色是黑的 LinkedList na = model.nodeArray;//LinkedList 类 List 接口的链接列表实现就是一个集合对象了,因为不知道SnakeModel具体是一个什么类这里就当作这个类能得到一个集合 Iterator it = na.iterator();//得到迭代器去迭代这个集合 while (it.hasNext()) {//开始用while迭代 Node n = (Node) it.next();//得到一个集合中元素.是一个Node....这里的Node不知道是什么对象..有待于研究 drawNode(g, n);//调用另外方法 } g.setColor(Color.RED);//设置颜色是红的 Node n = model.food;//得到一个新node..看来Node这里应该是一个坐标..这里的坐标就是蛇吃的那个东西 drawNode(g, n);//画这个东西..updateScore();//调用..} private void drawNode(Graphics g, Node n) {//这是一个画方的方法..动态改变方型的位置 g.fillRect(n.x * nodeWidth,n.y * nodeHeight,nodeWidth - 1,nodeHeight - 1); } public void updateScore() {//这是更新标签的一个方法 String s = "Score: " + model.score; labelScore.setText(s); } public void update(Observable o, Object arg) {//这个就是Observer监听类必须实现的方法..这里是去调用repaint()方法..repaint方法就是不断去改变画图版里面的内容的 repaint(); } }

以下为关联文档:

C程序教职工管理系统的代码分析这段代码是用最基础 C语句编的程序 第一二 语句 是引用C语言中的头文件语句 第三句是 定义一个常量的语句; 接下来就是主函数 main()语句 主函数中的语句主要是数组的等定义与...

求一个简短的VB小游戏程序代码紧急!展开全部 Private Sub Command1_Click() Dim a As Integer, b As Integer, s As String MsgBox "我记住一个数,你根据我的提示猜猜是这个数是几" Randomize a = Int(Rnd * 100)...

求数字拼图游戏VB程序代码Option Explicit Dim i As Integer'定义循环变量 Dim j As Integer Dim step As Integer Dim x(8) As Integer'定义一个数组,用来存放随机编号 Private Sub Command1_Click()...

谁能说一下下面这个井字棋游戏程序的编程思路只需要思路这里面貌似没什么啊,首先是进行初始化 void inarrdata(chess a) //初始化棋盘编号 { a[1]='1';a[2]='2';a[3]='3'; a[4]='4';a[5]='5';a[6]='6'; a[7]='7';a[8]='8';a[9]='9'...

何为免疫程序制定免疫程序需要考虑哪些因素免疫程序是指养殖户根据实际情况制定的合理的预防接种计 划。即依据疫病在本地区流行情况及规律,畜禽的用途、年龄、母 源抗体水平和伺养条件,使用疫苗的种类、性质、免疫途径...

报关的详细程序一、报关程序 报关程序是指进出口货物收发货人、运输工具负责人、物品所有人或其代理人按照海关的规定,办理货物、物品、运输工具进出境及相关海关事务的手续和步骤。本章所...

Java程序设计试题一 构造函数Sandwich()被执行时,先执行它的父类PortableLunch,PortableLunch又先执行它的父类Lunch,Lunch又先执行它的父类Meal。所以顺序是Meal>Lunch>PortableLunch>Bread>C...

求C编猜数字游戏的程序及代码public static void Main() { Console.WriteLine("请输入一个0~100的数"); Random ran = new Random(); int y = ran.Next(101); int a = 0; while (true) { a++; int x = int.Pa...

用Java开发双色球随机选号的程序import java.util.ArrayList; import java.util.HashSet; import java.util.Random; public class Test{ public static void main(String[] args) throws Exception { Arra...

推荐阅读
图文推荐