CODE VS 5.0の標準入力のテキストとRubyを使って簡単な動作確認をしてみました。
テキストの入力データをAIの実行ファイルに送り、出力内容を表示しています。
Windows7環境で作成していますがMacも動きました。
(1) CODE VS 5.0で対戦させます。
(2) 標準入力からどこでもいいので1ターン分のデータを取り出し保存します。
ここではinput.txtとしてAIの実行ファイルのあるフォルダに保存しました。
(最後の改行はあってもなくても動きました)
(3)Rubyのプログラムを書きます。
base.rbというファイル名で同じフォルダに保存します。
(4)テストを実行します。
ruby base.rb AIの実行ファイル名 入力データファイル名
MacだとAIの実行ファイル名の前に./が必要です。
ruby base.rb ./field3v5.exe input.txt
ソースコードです。
----------------------------------------------
require "open3"
stdin, stdout, stderr = *Open3.popen3(ARGV[0])
# こちらから書く
Thread.fork {
File.foreach(ARGV[1]) do |line|
stdin.print line
end
stdin.close # または close_write
}
# こちらから読む
stdout.each do |line|
print line
end
----------------------------------------------
もうちょっと遊んでみました。
おお! ルビーでもいけますね。
マシンとサマリタンの間ではひそかに「詰めCODEVS 5.0」がはやっているかもしれません。(失礼しました。)
ruby 1.9.1 少し古いバージョンで実施してます。
実際のデバッグはログファイル使ってます。
文字列一個と数字4個の2つ関数があればなんとかなるだろうというざっくりしたものです。
翌日、もっといい環境、Javaですがつかっていたことを思い出しました。
Eclipse gcc c++のデバッグ環境の起動まで
参考文献
Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > open3ライブラリ > Open3モジュール
C++でテキストに書き出す方法
テキストの入力データをAIの実行ファイルに送り、出力内容を表示しています。
Windows7環境で作成していますがMacも動きました。
(1) CODE VS 5.0で対戦させます。
(2) 標準入力からどこでもいいので1ターン分のデータを取り出し保存します。
ここではinput.txtとしてAIの実行ファイルのあるフォルダに保存しました。
(最後の改行はあってもなくても動きました)
(3)Rubyのプログラムを書きます。
base.rbというファイル名で同じフォルダに保存します。
(4)テストを実行します。
ruby base.rb AIの実行ファイル名 入力データファイル名
MacだとAIの実行ファイル名の前に./が必要です。
ruby base.rb ./field3v5.exe input.txt
ソースコードです。
----------------------------------------------
require "open3"
stdin, stdout, stderr = *Open3.popen3(ARGV[0])
# こちらから書く
Thread.fork {
File.foreach(ARGV[1]) do |line|
stdin.print line
end
stdin.close # または close_write
}
# こちらから読む
stdout.each do |line|
print line
end
----------------------------------------------
もうちょっと遊んでみました。
おお! ルビーでもいけますね。
マシンとサマリタンの間ではひそかに「詰めCODEVS 5.0」がはやっているかもしれません。(失礼しました。)
ruby 1.9.1 少し古いバージョンで実施してます。
実際のデバッグはログファイル使ってます。
文字列一個と数字4個の2つ関数があればなんとかなるだろうというざっくりしたものです。
翌日、もっといい環境、Javaですがつかっていたことを思い出しました。
Eclipse gcc c++のデバッグ環境の起動まで
参考文献
Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > open3ライブラリ > Open3モジュール
C++でテキストに書き出す方法