CS106A Assignment3: Breakout——浅谈自上而下的设计体验

本文作者在完成斯坦福大学CS106A课程的Breakout游戏编程作业中,体会到自上而下的设计思想的重要性。通过将复杂问题分解为小问题,使得程序设计更为清晰。作者分享了如何通过分解任务、添加注释来组织代码和避免编程过程中的迷失。文章最后,作者提供了自己的代码并欢迎读者提出建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

斯坦福大学CS106A编程方法学的第三次作业,Breakout,我自己写好了代码,并且能够完整运行。从编写这个程序的过程中学习到了很多的东西,比如各种GObject的创建、使用、常用方法等等。但是我觉得收获最大的还是一种编程设计思想:自上而下的设计。


我一开始写程序的时候写着写着就乱了,不知道下一步应该做什么。CS106A的作业要求上面已经做了很多的分解工作,但是每一步的具体方法对我来说依然是一个很大的挑战。后来,开始把注意力放在了如何设计程序上,而不是如何写出最终的代码。我认为,自上而下的设计就是把很复杂的问题高度抽象化,把一个庞大的问题简单直观的分解成几个较为简单明了的问题,然后不断的进行分解,直到最终的问题可以用简洁的代码表达出来。我最终的程序中,run()方法里只有两行:setup()用于初始化游戏,play()用于进行游戏。这样的分解,也为之后思考的问题提供了不少的便利。

在实际写代码的过程中,即使把程序设计好了,还是很容易迷失方向,在游戏中尤其体现在时间的先后关系上。后来,我开始在程序中添加大量的注释,这样才解决了容易迷失方向这个问题。在实际编写代码的时候,在每一个方法前用注释标明这个方法具体要做的几件事情,然后一件件的写出代码。这个过程实际上也是一种对问题的自上而下的分解,不仅可以让自己知道应该写出那些内容,也加深了对于所要解决的问题的思考。

下面就把我的代码贴出来,肯定有写的不到位的地方,也希望大家能够指出来,大家共同进步。

import acm.graphics.*;
import acm.program.*;
import acm.util.*;

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Breakout extends GraphicsProgram {

/** Width and height of application window in pixels */
	public static final int APPLICATION_WIDTH = 400;
	public static final int APPLICATION_HEIGHT = 600;

/** Dimensions of game board (usually the same) */
	private static final int WIDTH = APPLICATION_WIDTH;
	private static final int HEIGHT = APPLICATION_HEIGHT;

/** Dimensions of the paddle */
	private static final int PADDLE_WI
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值