零基础学编程003:在游戏中学JAVA和C#

前面几篇文章中主要用Python当例子,但在这些“在线编程环境”中,还支持其它编程语言,JAVA和C#也不例外。CodeCademy中提供了许多很短小的习题使人能够快速了解关键语法,但还是有点枯燥,如果能够在游戏中学习编程就更好了。实际上,这种事情程序员们也早就想到了,robocode就是其中之一。

看看百度百科上的介绍:

Robocode是一种有趣的竞赛性编程,使用几行简单的代码,就能够让你创建一个活生生的机器人,一个真正的在屏幕上与其他机器人互相对抗的机器人。你可以看到它在屏幕上四处疾驰,碾碎一切挡道的东西。机器人配有雷达与火炮,选手在躲避对手进攻的同时攻击对手,以此来较量得分的多少。Robocode可以让你在娱乐的同时学习与提高Java技术。

准确地说,这个robocode平台中创建的并不是机器人,而是机器坦克。这种游戏中,你不能用键盘和鼠标去控制你的坦克,而是用事先写好的代码,让自己的坦克躲避、并攻击敌人。最早这个项目只支持JAVA语言,后来才支持了C#。你需要不断优化你的代码,从而学习基本的编程知识。但玩(或编码)到一定程度后,你需要学习的内容将变为AI(人工智能)领域了。

有关robocode资料,可以访问:http://robowiki.net,全英文说明。该软件最早发布在ibm的web alphaworks上,现在已经搬到了sourceforge.net(github上也有)。很遗憾,如果没有vpn,sourceforge.net网站的访问也不太稳定,光下载robocode都折腾死人。

国内网站上也可以找到一些robocode的教程,但都有点过时了。我今天下载了1.9.2.5版本,如果是零基础的话,安装还真不容易。

你需要闯过安装vpn、安装java环境(要1.6版本以上)、安装robocode程序、启动robocode程序等几大关,放上一堆坦克,然后才能见到下面的画面。

如果没人帮助,零基础的朋友真无法完成上面的安装任务,所以,如果你真是零基础,还是先到codecademy上把基础教程认真学完再说吧。

如果你已经具备了一定JAVA基础,并且成功地安装好了robocode,就可以开始写自己的机器坦克的代码了,但我看了一下第一个源程序,真不适合零基础的同学。

 package man;
 import robocode.*;
  
 public class MyFirstRobot extends Robot {
     public void run() {
         while (true) {
             ahead(100);
             turnGunRight(360);
             back(100);
             turnGunRight(360);
         }
     }
  
     public void onScannedRobot(ScannedRobotEvent e) {
         fire(1);
     }
 }

此时你马上遇到的是集成开发环境IDE的选择、编译器的设置等一系列障碍,想看到自己写的坦克在屏幕上乱窜并不容易,所以说学编程的最佳办法是互助式学习

感兴趣的朋友,可以点击“阅读原文”看看robocode的官网。

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2016-12-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

软件定义广域网(SD-WAN)向软件定义分支机构(SD-Branch)的演进

分支机构基础设施在不断发展,随着企业应用服务的不断增加,网络团队正在转向软件定义广域网(SD-WAN)将分支机构的基础设施提升到一个新的水平。本文探讨了SD-B...

2756
来自专栏美团技术团队

云端的SRE发展与实践

背景 SRE(Site Reliability Engineering)是Google于2003年提出的概念,将软件研发引入运维工作。现在渐渐已经成为各大互联网...

3399
来自专栏知晓程序

清单控必备!有了这款小程序,碎片时间也能轻松涨知识

今天,知晓程序(zxcx0101)就推荐一款碎片化阅读和知识分享平台「清单 plus」,让你在短时间内迅速收获经验和知识。

501
来自专栏腾讯大讲堂的专栏

【大系统小做】——理论篇

大系统小做是什么? 我们先看一个简单的例子: 舞厅要装设多色灯,有2种实现方案: ? 思考:它们各有什么优缺点? 方案1: 优点:整体性强; 缺点: 系统可靠性...

2759
来自专栏媒矿工厂

优化延迟的最佳视频传输方案(二)

上一篇文章《优化延迟的最佳视频传输方案(一)》介绍了在整个视频传输系统中的分发链前端和媒体内容准备方面的延迟优化方案,本文将继续介绍传输系统的接下来的优化方案,...

1252
来自专栏用户2442861的专栏

腾讯微信技术总监周颢:一亿用户增长背后的架构秘密

http://www.csdn.net/article/2012-05-15/2805581

872
来自专栏DevOps时代的专栏

给产品经理讲讲,什么是持续交付和 DevOps

982
来自专栏ThoughtWorks

云与性能测试 | 洞见

近年来,随着云计算技术的发展和各种诸如AWS、GCP、阿里云等云平台的日趋成熟,越来越多的的用户选择把系统搭建在云端,因此云测试的概念随即产生。云测试看字面意思...

4538
来自专栏Java架构

架构的演进, 阿里资深Java工程师表述架构的腐化之谜

1965
来自专栏Java架构

架构的演进,阿里资深Java工程师表述架构的腐化之谜

新技术层出不穷。过去十年时间里,我们经历了许多激动人心的新技术,包括那些新的框架、语言、平台、编程模型等等。这些新技术极大地改善了开发人员的工作环境,缩短了产品...

42810

扫码关注云+社区