簡単な当てっこゲームを解くプログラムを書きたいです。コマンドラインのパイピングとリダイレクトについて学んでいるので、これが可能かどうか疑問に思っていました。
基本的に、一方の出力が他方の入力になり、その出力が他方の入力になるようにしたいと考えています。
これはすべて楽しみのためなので、学ぶことができます。推測ゲームのソース コードを変更して、解決アルゴリズムを含めることができることはわかっていますが、楽しみのために、ソース コードがないと仮定しましょう。
これは可能ですか?これが私のコードです:
//GuessingGame.cc
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
srand(time(NULL));
int number = rand()%100;
int guess = -1;
int trycount = 0;
while(guess != number && trycount < 8) {
cout << "Please enter a guess: ";
cin >> guess;
if(guess < number)
cout << "Too low" << endl;
else if(guess > number)
cout << "Too high" << endl;
trycount++;
}
if(guess == number)
cout << "You guessed the number!";
else
cout << "Sorry, the number was: " << number;
return 0;
}
Solver.cc
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char* argv[]) {
string prompt;
int high = 100;
int low = 0;
int guess = 50;
getline(cin,prompt);
if(prompt == "Please enter a guess: ")
cout << guess;
while(true) {
getline(cin,prompt);
if(prompt == "Too low")
low = guess;
else if(prompt == "Too high")
high = guess;
else if(prompt == "You guessed the number!")
return 0;
guess = (low+high)/2;
cout << guess;
}
}
私がやっていることを理解していただければ幸いです。プログラムについてはあまり気にしません。これは単なる例です。主な問題は、リダイレクトやパイプなどを使用して、2 つの異なるプログラムと対話できるかどうかです。ありがとう