所以这是一个更多的java-esq方法(我认为)......我在Ruby中有这个代码
class Human
def move
p 'Human move: X'
end
end
class Computer
def move
p'Computer move: O'
end
end
class Player
def initialize(letter)
if letter == 'X'
return Human.new
else
return Computer.new
end
end
end
bob = Player.new('X')
bob.move
Run Code Online (Sandbox Code Playgroud)
我期待着回到cli'人类的举动:X'我得到了以下错误......
undefined method `move' for #<Player:0x007f8d930895a8> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助这个Ruby noob吗?
-------------------------讨论------------------------
现在,我想通过继承和覆盖,以更多,我猜,"经典"的Ruby方式来实现这一目标.现在,这对我脑海中的副处理器毫无意义.我的意思是,如果我这样做的话......我可能只需要在任何其他类文件中的类文件并实例化一个新对象.当你在Java中执行它时,它感觉不像真正的多态......这是代码....
class Player
def move
return ""
end
end
class Human < Player
def move
return 'Human move: X'
end
end
class Computer < Player
def move
return'Computer move: O' …Run Code Online (Sandbox Code Playgroud) 所以我正在使用TimelineJS(http://timeline.verite.co/),我正在使用Rails应用程序.
我需要找出如何生成一个合适的JSON字符串以用于TimelineJS.
所以给出下面的演示JSON字符串.....我需要对我的应用程序做什么才能重新创建这个JSON字符串?
(https://github.com/VeriteCo/TimelineJS#json)TimelineJS开发人员展示的示例JSON看起来如此......
var dataObject = {
"timeline":
{
"headline":"The Main Timeline Headline Goes here",
"type":"default",
"text":"<p>Intro body text goes here, some HTML is ok</p>",
"asset": {
"media":"http://yourdomain_or_socialmedialink_goes_here.jpg",
"credit":"Credit Name Goes Here",
"caption":"Caption text goes here"
},
"date": [
{
"startDate":"2011,12,10",
"endDate":"2011,12,11",
"headline":"Headline Goes Here",
"text":"<p>Body text goes here, some HTML is OK</p>",
"tag":"This is Optional",
"classname":"optionaluniqueclassnamecanbeaddedhere",
"asset": {
"media":"http://twitter.com/ArjunaSoriano/status/164181156147900416",
"thumbnail":"optional-32x32px.jpg",
"credit":"Credit Name Goes Here",
"caption":"Caption text goes here"
}
}
],
"era": [
{ …Run Code Online (Sandbox Code Playgroud) 这里的想法是创建一个盒子网格.在黑色网格下面是另一个多色盒子网格.当你点击一个方框时,它的面具会消失,显示下方的彩色方框.然后,如果颜色匹配hurray,则单击第二个框,否则则游戏继续.这是代码.
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GuessingGame extends Applet{
/**
*
*/
private static final long serialVersionUID = 1L;
private final int START_X = 20;
private final int START_Y = 40;
private final int ROWS = 4;
private final int COLS = 4;
private final int BOX_WIDTH = 20;
private final int BOX_HEIGHT = 20;
//this is used to keep track of boxes that have been matched.
private boolean matchedBoxes[][];
//this …Run Code Online (Sandbox Code Playgroud) 我正在使用这里的twitter gem ... http://rubydoc.info/gems/twitter/2.0.2
我正在尝试使用需要身份验证的方法...... Twitter.home_timeline
http://rubydoc.info/gems/twitter/2.0.2/file/README.md上的rdoc自述文件声明......
某些方法需要身份验证 要获取您的Twitter OAuth凭据,请在http://dev.twitter.com/apps上注册应用程序
我已配置并设置此文件...
Twitter.configure do |config|
config.consumer_key = YOUR_CONSUMER_KEY
config.consumer_secret = YOUR_CONSUMER_SECRET
config.oauth_token = YOUR_OAUTH_TOKEN
config.oauth_token_secret = YOUR_OAUTH_TOKEN_SECRET
end
Run Code Online (Sandbox Code Playgroud)
现在我想要的是,用户来到我的应用程序,能够输入他们的屏幕名称和密码,然后看到他们的实时流和他们的用户的各种很酷的Twitter数据的显示.
请帮忙...我该怎么做?我用什么方法来传递网站访问者的用户名和密码?
......啊,是的,我是铁路菜鸟所以请温柔.
我有两个哈希,我正在比较.在我的代码的某些时候,我得到了一个响应,如...
@moves = {:wm01 => {:a1=>"O", :a2=>" ", :a3=>" ", :b1=>" ", :b2=>"O", :b3=>" ", :c1=>" ", :c2=>" ", :c3=>" "}
Run Code Online (Sandbox Code Playgroud)
这对应于答案键哈希......
@anskey = {
:wm01=>":c3",:wm02=>":c2",:wm03=>":c1",:wm04=>":b3",:wm05=>":b1",:wm06=>":a3",:wm07=>":a2",:wm08=>":a1",
:wm09=>":a3",:wm10=>":c1",:wm11=>":a1",:wm12=>":c3",:wm13=>":c3",:wm14=>":c1",:wm15=>":c3",:wm16=>":a1",
:wm17=>":b1",:wm18=>":b2",:wm19=>":b3",:wm20=>":a2",:wm21=>":b2",:wm22=>":b2",:wm23=>":c2",:wm24=>":b2"
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我需要迭代@anskey,其中@ moves.keys == @ anskey.keys
(似乎很简单,但似乎没有工作)
然后设置....
my_answer_is = @anskey.value
Run Code Online (Sandbox Code Playgroud)
这样的事情???
@anskey.each do |key. value|
if @moves.keys == key
my_answer_is = @value
end
end
Run Code Online (Sandbox Code Playgroud)
class Player
attr_reader :boardpiece
def initialize(letter)
@boardpiece = letter
end
def move_human(game)
puts "human move..."
@move = gets.chomp
end
def move_computer(game)
puts "computer move..."
# …Run Code Online (Sandbox Code Playgroud) 怎么说如果method_one返回一个值,然后中断,否则试试method_two?
def ai_second_move(board)
p "2nd move called"
# TODO - how to say if method_one gives me a value, break, else method_two
method_one(board)
method_two(board)
end
Run Code Online (Sandbox Code Playgroud)