command line player interface. needs user move validation, ai move get,
and actualy move do
This commit is contained in:
parent
5617e7f82b
commit
e383c27a8d
82
checkers.rb
82
checkers.rb
|
@ -59,7 +59,7 @@ class Board
|
||||||
}
|
}
|
||||||
str += "\n"
|
str += "\n"
|
||||||
}
|
}
|
||||||
str += 'TEAM_1: ' + @stats[TEAM_1]['count'].to_s + ' -- TEAM_2: ' + @stats[TEAM_2]['count'].to_s + "\n"
|
str += 'White: ' + @stats[TEAM_1]['count'].to_s + ' -- Black: ' + @stats[TEAM_2]['count'].to_s + "\n"
|
||||||
return str
|
return str
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -300,5 +300,85 @@ class Board
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def parse_coords(str)
|
||||||
|
if str.length != 2
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
y = str.downcase[0]
|
||||||
|
x = str[1]
|
||||||
|
|
||||||
|
if x >= '0' and x <= '7'
|
||||||
|
x = x.ord - '0'.ord
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
if y >= 'a' and y <= 'h'
|
||||||
|
y = y.ord - 'a'.ord
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return [x,y]
|
||||||
|
end
|
||||||
|
|
||||||
|
def play()
|
||||||
|
setup()
|
||||||
|
color = ''
|
||||||
|
while color != 'w' and color != 'b'
|
||||||
|
print "Choose color ([W]hite or [B]lack): "
|
||||||
|
color = gets
|
||||||
|
color = color.downcase[0]
|
||||||
|
end
|
||||||
|
|
||||||
|
turn = 1
|
||||||
|
team = TEAM_1
|
||||||
|
while true
|
||||||
|
print "Turn " + turn.to_s + ": "
|
||||||
|
if team == TEAM_1
|
||||||
|
print "white "
|
||||||
|
if color == 'w'
|
||||||
|
print "(player)"
|
||||||
|
else
|
||||||
|
print "(ai)"
|
||||||
|
end
|
||||||
|
else
|
||||||
|
print "black "
|
||||||
|
if color == 'b'
|
||||||
|
print '(player)'
|
||||||
|
else
|
||||||
|
print '(ai)'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
print "\n"
|
||||||
|
puts to_s()
|
||||||
|
|
||||||
|
if (team == TEAM_1 and color == 'w') or (team == TEAM_2 and color == 'b')
|
||||||
|
valid = false
|
||||||
|
while !valid
|
||||||
|
print "Move piece: "
|
||||||
|
from = gets
|
||||||
|
print "to: "
|
||||||
|
to = gets
|
||||||
|
|
||||||
|
from = parse_coords(from)
|
||||||
|
to = parse_coords(to)
|
||||||
|
if !to or !from
|
||||||
|
next
|
||||||
|
end
|
||||||
|
if team(to[0], to[y]) != team
|
||||||
|
next
|
||||||
|
end
|
||||||
|
valid = true
|
||||||
|
end
|
||||||
|
else
|
||||||
|
puts "AI MOVE"
|
||||||
|
end
|
||||||
|
team = opposite_team(team)
|
||||||
|
turn += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue