Могу ли я получить код для этой проблемы на C++?
Ник присоединяется к фальсифицированному турниру "камень-ножницы-бумага". В каждой игре он знает, что его противник собирается играть, и заранее предопределен исход (он выигрывает, проигрывает или рисует). Пожалуйста, помогите ему определить, что он должен играть для каждого хода.
входной формат
Первая строка ввода-n, количество игр. Далее следует список из n строк в виде “C S”. C - это либо "O”, либо “[]”, либо" 8<”, что означает, что противник будет играть в камень, бумагу или ножницы соответственно для этого хода. S-это либо “W”, либо “L”, либо “D”, что означает заранее определенный результат для этого хода-Боб выигрывает, проигрывает или рисует соответственно.
выходной формат
Выведите n строк, либо “O”, либо “[]”, либо “8<”, разделенных запятыми, ход Боба должен играть для этого хода.
Входной Сигнал Образца
n = 5
игры = ["8< W", "[] W", "O D", "8< L", "O W"]
Пример Вывода
O,8<,O,[],[]
Объяснение
В первой игре соперник будет играть ножницами, а Боб должен выиграть, поэтому он играет в рок.
В третьей партии соперник будет играть в рок, а Боб должен сыграть вничью со своим противником, поэтому он тоже играет в рок.
В четвертой партии соперник будет играть ножницами, но Боб должен проиграть, поэтому он играет бумагой.
Что я уже пробовал:
Я попробовал на C++,но это не сработало.
int main() { const char* ROCK = "O"; const char* PAPER = "[]"; const char* SCISSORS = "8<"; const char* CurrentMove (char C, char S) { const char* Result = 0; switch (S) // Outer decision, based upon the desired result { case 'W': // Win switch (C) // Inner decision, based upon the opponent's move { case 'O': Result = PAPER; break; // ROCK[0] case '[': Result = SCISSORS; break; // PAPER[0] default: Result = ROCK; // Must be SCISSORS[0] } case 'L': // Lose switch (C) // Inner decision, based upon the opponent's move { case 'O': Result = SCISSORS; break; // ROCK[0] case '[': Result = ROCK; break; // PAPER[0] default: Result = PAPER; // Must be SCISSORS[0] } default: // Must be Draw switch (C) // Inner decision, based upon the opponent's move { case 'O': Result = ROCK; break; // ROCK[0] case '[': Result = PAPER; break; // PAPER[0] default: Result = SCISSORS; // Must be SCISSORS[0] } } return Result; } }
economistlarry
Мой код находится ниже, но я не знаю, почему он не работает.
Patrice T
вашего кода здесь нет.
Воспользуйся Улучшить вопрос чтобы обновить ваш вопрос.
economistlarry
тап_п()
{
const char* ROCK = "O";
const char* PAPER = "[]";
const char* ножницы = "8<";
const char* CurrentMove (char C, char S)
{
const char* Result = 0;
переключатель (Ы) // внешнее решение, основанное на желаемом результате
{
случай 'W': // Win
switch (C) // внутреннее решение, основанное на движении противника
{
case 'O': Result = PAPER; break; // ROCK[0]
case '[': Result = ножницы; перерыв; // бумага[0]
по умолчанию: Результат = камень; // должны быть ножницы[0]
}
случай 'L': // проигрыш
switch (C) // внутреннее решение, основанное на движении противника
{
case 'O': Result = SCISSORS; break; // ROCK[0]
case '[': Result = ROCK; break; // PAPER[0]
по умолчанию: Результат = бумага; // должны быть ножницы[0]
}
по умолчанию: // должна быть ничья
switch (C) // внутреннее решение, основанное на движении противника
{
case 'O': Result = ROCK; break; // ROCK[0]
case '[': Result = PAPER; break; // PAPER[0]
по умолчанию: Результат = ножницы; // должны быть ножницы[0]
}
}
возвращаемый результат;
}
}
economistlarry
Можете ли вы сказать мне,где что-то не так, мой ввод или код
economistlarry
Я ввожу как это:
n = 5
игры = ["8< W", "[] W", "O D", "8< L", "O W"]
economistlarry
но ничего не появляется в качестве вывода
Andreas Gieriet
1. Вы должны научиться задавать вопросы таким образом, чтобы мы понимали, в чем заключается ваша проблема. Утверждение типа "не работает" слишком расплывчато. Что вы делаете, и какой симптом говорит вам, что это не работает? Каково ожидаемое поведение?
2. Вы не можете ожидать, что кто-то будет компилировать и выполнять ваш код. Предположим, что один только читает ваш код и пытается понять его смысл. См. также пункт 1 выше: мы не знаем, каково ожидаемое поведение...
3. глядя на ваш код, я должен предположить, что ваш код не компилируется: вы определяете функцию *внутри* основной функции. C/C++ этого не допускает.
4. Если код не компилируется, вы не сможете его выполнить и, следовательно, не можете ожидать никаких "результатов" от (не) выполнения программы ;-)
Овации
Энди