-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgame.rb
More file actions
66 lines (58 loc) · 1.49 KB
/
game.rb
File metadata and controls
66 lines (58 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# encoding: utf-8
require './board'
require './piece'
require './player'
require './smarter_player'
require 'io/console'
class Game
attr_reader :board, :player1, :player2
def initialize(player1, player2)
@board, @player1, @player2 = Board.new, player1, player2
@player1.board, @player2.board = @board, @board
end
def run
until board.checkmate?(:black) || board.checkmate?(:white)
player1.turn(:black)
sleep(0.25)if player1.is_a?(ComputerPlayer)
player2.turn(:white) unless board.checkmate?(:white)
sleep(0.25) if player2.is_a?(ComputerPlayer)
end
if board.checkmate?(:black)
board.render([0,0],"White won!")
else
board.render([0,0],"Black won!")
end
end
# def kb_user_input(current_pos = [0,0])
# #system('clear')
# board.render(current_pos)
# chr = ''
# input = ''
# until chr == '[C'
# chr = STDIN.getch
# input += chr
# end
#
# case input
# when '\e[A'
# current_pos[0] -= 1 if current_pos[0].between?(0,7)
# when '\e[D'
# current_pos[1] -= 1 if current_pos[1].between?(0,7)
# when '\e[B'
# current_pos[0] += 1 if current_pos[0].between?(0,7)
# when '\e[C'
# current_pos[1] += 1 if current_pos[1].between?(0,7)
# kb_user_input(current_pos)
# end
#
# #system('clear')
# current_pos
# end
end
if __FILE__ == $PROGRAM_NAME
hp = HumanPlayer.new
cp = SmarterPlayer.new
cp2 = ComputerPlayer.new
g = Game.new(cp2, cp)
g.run
end