Java贪吃蛇的设计与实现

By David 课程任务:7 个 学习人数: 200+

了解用面向对象的方式来编程解决问题,学习如何设计类,如何选择数据结构以及Java多线程与界面编程的基础知识。练习完成之后,你会发现你编写了一个具有良好扩展性的代码,可以方便地添加更多高级功能,真正提高Java程序设计的能力。更加体系化地学习Java开发请参考Java Web实战课程

超级名师

导师来自北京大学计算机专业的老师和业界一流的工程师,帮助你快速成长

求职必备

导师们最大的烦恼就是每天各路公司求他们推荐程序员,快到碗里来

实战导向

图文、代码与视频有机结合的实战课程内容,打造真实的项目,最佳实践一网打尽

专业工具

随时随地在线学习,记录完整的学习过程与轨迹,沉淀终生受益的代码和内容

David

北大教师,曾创办OSGi中文社区和软件开发协工具onboard

Ricky

天码营技术总监,全栈程序员, DevOps,超级工具控

Harttle

北大物理系出身的Linux极客,追求极致简单,武术发烧友

Cliff

传说中的快刀手,北大计算机应用与设计协会前理事长

Michael

Google工程师,北大信息科学技术学院本硕

Bob

Facebook工程师,北大信息科学技术学院本硕

Hash

北大数字艺术专业毕业,十年设计经历,极限运动爱好者

Li

任职于Twitter、Airbnb,德州扑克世界赌王大赛冠军

登录发表评论 登录 注册

DuDu_28
DuDu_28 于 2 天前

有没有大神指导一下 如何写贪吃蛇方法的测试。我是这样写的 不知道哪里不对 望高人指点一下Screenshot_20180116-092403.png

hellohellojava
hellohellojava 于 14 天前

在短时间快速变化贪吃蛇的方向会出bug这个问题怎么修复 试了各种办法都不行 题目也不说清楚

cser
cser 于 18 天前

repaint不需要你自己调用,系统会在渲染的时候调用。

paint方法怎么重写呢,我的输入repaint方法也不知道怎么调用

@longtianshi520

Toder
Toder 于 11月18日

现在应该得心应手了吧grin

我是新手啊,真的仅仅初学者,没有编程基础的,我学了一下git交作业,到现在还没学会,总是

-bash: http://evadm001@git.tianmaying.com/evadm001/java-snake.git: No such file or directory

是什么情况啊,加了群还没加我。。。

@evadm001

evadm001
evadm001 于 11月13日

我是新手啊,真的仅仅初学者,没有编程基础的,我学了一下git交作业,到现在还没学会,总是

-bash: http://evadm001@git.tianmaying.com/evadm001/java-snake.git: No such file or directory

是什么情况啊,加了群还没加我。。。

longtianshi520
longtianshi520 于 11月3日

paint方法怎么重写呢,我的输入repaint方法也不知道怎么调用

Toder
Toder 于 10月16日

课程问题在答疑区提问哈grin

  • 移动后重现显示界面------怎么做啊?求大神指点下

@dongxiaojie66

dongxiaojie66
dongxiaojie66 于 10月15日
  • 移动后重现显示界面------怎么做啊?求大神指点下
tanchishe
tanchishe 于 9月12日

请问老师多久能批改完作业呀?

Toder
Toder 于 9月11日

大家不要一开始就希望拿到最终的源代码哈,要在逐步完成每一步的过程中实现完整的代码,这样才能提高Java面向对象编程和设计的水平。

Toder
Toder 于 8月22日

@liamlmy  有问题你在答疑或者代码区问老师就好啊。

liamlmy
liamlmy 于 8月22日

同问?

同问

没有完整的代码吗?

@rucizhenxi

@zheteng

Toder
Toder 于 8月15日

这样会影响游戏的时钟周期吧~

为什么我不用多线程也能跑起来呢?基本没什么问题,贪吃蛇能正常地跑,人也能正常地控制,之间好像没有什么影响,不会出现按了按键不改变方向的情况,即使贪吃蛇两步之间的时间间隔设得很长,也不影响按键输入。

@bill_ion

bill_ion
bill_ion 于 7月24日

为什么我不用多线程也能跑起来呢?基本没什么问题,贪吃蛇能正常地跑,人也能正常地控制,之间好像没有什么影响,不会出现按了按键不改变方向的情况,即使贪吃蛇两步之间的时间间隔设得很长,也不影响按键输入。

Toder
Toder 于 5月5日

每个游戏时钟都要更新界面,更新时会调用。

 public void draw() {
        canvas.repaint();
    }
    这个方法在哪调用啊

@weixi_123

weixi_123
weixi_123 于 5月3日
 public void draw() {
        canvas.repaint();
    }
    这个方法在哪调用啊
zheteng
zheteng 于 3月28日

git提交的代码都乱了,怎么硬回滚到最初始的状态啊?

zheteng
zheteng 于 3月28日

同问

没有完整的代码吗?

@rucizhenxi

stetina
stetina 于 3月15日

不用 就是一些final staic的变量 等于是配置文件一样的

Settings.DEFAULT_NODE_SIZE

这个东西是什么?之前没有定义过Settings这个类或者方法啊?或者需要import什么包吗?

@weicent

Toder
Toder 于 3月14日

通关完成就可以完成自己完整的代码。

@rucizhenxi

rucizhenxi
rucizhenxi 于 3月8日

没有完整的代码吗?

1448738827
1448738827 于 3月6日

Wenxuan
Wenxuan 于 3月3日

按您说的做了修改,现在测试通过了。但是有一个问题,按照设置,贪吃蛇应该是200ms刷新一次,变成了大概400ms刷新一次,或者600毫秒刷新一次,看起来就像是一次走两三步

weicent
weicent 于 2月18日
Settings.DEFAULT_NODE_SIZE

这个东西是什么?之前没有定义过Settings这个类或者方法啊?或者需要import什么包吗?

Toder
Toder 于 12月30日

点击Yes就行,表示进入debug视图

Clipboard Image.png

已运行程序,运行过程中,出现如上错误。请问何因?

@Ryan Yuan

Ryan Yuan
Ryan Yuan 于 12月29日

Clipboard Image.png

已运行程序,运行过程中,出现如上错误。请问何因?

Toder
Toder 于 11月7日

@994584388 没事,慢慢练习一下就会了,git的学习推荐你一篇文章:https://www.tianmaying.com/tutorial/git-basics

994584388
994584388 于 11月7日

谢谢老师解答,我已经购买了课程,只是git不太会用……暂时还不会提交作业

不是视频课程,是一系列的编程练习。

这个不是视频课程吗......而且联系老师QQ登录不上去

@994584388

@Toder

Toder
Toder 于 11月7日

不是视频课程,是一系列的编程练习。

这个不是视频课程吗......而且联系老师QQ登录不上去

@994584388

994584388
994584388 于 11月7日

这个不是视频课程吗......而且联系老师QQ登录不上去

Toder
Toder 于 11月2日

不是这个问题导致的,你可以再仔细看看作业描述。@Nigel 

Nigel
Nigel 于 11月2日

第五课的测试是不是有问题? 要求好像太严格了, 明明是随机生成的 Food, 却要求参数也要一样...

Toder
Toder 于 11月2日

抱歉,系统出了点问题,进展速度很快哪,稍安勿躁哈~grin 

第7课的代码一直在测试。。。妈蛋

@WuZiJie

cser
cser 于 11月1日

应该设置一下登陆密码就行了吧

我是通过GitHub账号登录的天码营,请问我账号的git仓库的密码是多少啊?clone不了代码。

@WuZiJie

Toder
Toder 于 11月1日

U R right! 改过来啦!

    public static final int UP = 0;

    public static final int RIGHT = 1;

    public static final int DOWN = 2;

    public static final int LEFT = 3;

多添加了一个“int”,这样我这就不会报错了

@test028

SuperS
SuperS 于 11月1日

完成的话 能掌握很多 基础知识。

以前没什么计算机基础,刚接触java二周,不太确定自己能否跟上课程,老师一般答疑解惑是有固定时间吗?

@qianwai

test028
test028 于 11月1日

    public static final int UP = 0;

    public static final int RIGHT = 1;

    public static final int DOWN = 2;

    public static final int LEFT = 3;

多添加了一个“int”,这样我这就不会报错了

Toder
Toder 于 11月1日

没基础没关系,时间不限制,你可以一直学习。老师看到问题后会尽快答复你,没有固定时间。

以前没什么计算机基础,刚接触java二周,不太确定自己能否跟上课程,老师一般答疑解惑是有固定时间吗?

@qianwai

qianwai
qianwai 于 11月1日

以前没什么计算机基础,刚接触java二周,不太确定自己能否跟上课程,老师一般答疑解惑是有固定时间吗?

Toder
Toder 于 10月29日

在网上能找到不少贪吃蛇的代码,但是往往写得比较乱,甚至有所有代码都包含在一个类中的情况,对于初学者而言即使能Copy后跑起来,也不一定能够真正理解代码的逻辑。实际上实现贪吃蛇的代码并不复杂,如果尝试去给出优雅地实现,比如写出具有清晰的类结构,有助于真正提高大家程序设计的基本功。

咨询老师