zoukankan      html  css  js  c++  java
  • 写个买卖小游戏,第1天(昨天)

    第一天,11/25到11/26凌晨:

      1. 既然要做交易类,首先要有东西交易,于是先写了Commodity抽象类,大致定义了名称ID和价格三个属性,又定义了changePrice这个方法,为了表示市场价格的浮动。

      2. 于是顺其自然地先写了一个子类来测试,嗯,叫苹果。价格变化用了这样的方法实现(当然这是今天又稍微修改了一下的版本,不过思想上差不多):

    void changePrice(){this.price = (int) ((50 + Math.random() * 15.6 - 7.8) * 10) / 10.0;}

      3. 作为游戏当然必须有玩家,于是稍微测试了一下苹果的几个属性的显示之后,紧接着就写了Player类,加入一个数组属性用来根据物品ID来存放持有货物的数量,还写了一个buy方法,玩家是商人嘛。后来又加上了金钱属性,顺手把初始化金钱数扔进了构造方法。老实说java的构造方法不如__init__好懂,当然也可能只是我用的少。

      4. buy方法接收一个Commodity的对象类型的参数,我是想马上试用一下高大上的多态的,用Python的时候也没在意过多态是什么意思,面向过程加面向对象就是好。

      5. 上一条是伏笔。

      6. 于是继续测试,做一点测试一点是好习惯。于是我写了Run类,里面放好了main方法准备测试,还高兴地写了点提示,显示金钱数显示有什么商品之类的。

      7. 然后我就傻逼了。不管我怎么买钱就是不减,但是持有货物会增加,现实里我有这能力多好,程序里还是免了。

      8. 上一条是回收伏笔。

      9. 然后我就在这个问题上搭了两个小时。我不断地寻找,油腻的bug在哪里。我改了价格改方法,改了方法改运行内容,加了this删this,改了构造方法改属性。

      10. 最后我灵光一闪。对就是这种:

        “他妈的属性不能多态!”

      11. 然后我就傻逼了,因为就算知道了错在哪我也不知道该怎么改,只能把buy方法的形参改成Apple类型将就用。于是暂时加了别的商品也没用了,只好先搁置这个做其他的功能。

      12. 然后,我就不知道该干啥好了……时间也过了十二点,就改了改UI(文字用户界面叫CUI还是WUI),弄了弄细节,然后空虚寂寞地洗洗睡了。

  • 相关阅读:
    远程桌面下启动MATLAB时的License Manager Error -103错误
    自签名证书和私有CA签名的证书的区别 创建自签名证书 创建私有CA 证书类型 证书扩展名【转】
    XeLaTeX中文模板
    MySQL Connector 卸载
    Anaconda更新源
    命令行远程重启服务器
    gnuplot画图中文标注相关问题
    CentOS 远程桌面相关服务安装笔记
    Windows下python2.7安装64位mysqlclient
    LaTeX 修订
  • 原文地址:https://www.cnblogs.com/chihane/p/3444341.html
Copyright © 2011-2022 走看看