Я работаю над программой, которая должна читаться в файле (каждая строка в файле представляет собой руку из 13 карт) и оценивает каждую руку моста.Оценка моста Руки в C++
В конце я задам свои конкретные вопросы, но поскольку в этой программе есть хороший бит, я собираюсь включить все инструкции, чтобы вы получили представление о том, что требуется.
Вот текстовый файл, который будет читаться в:
2C QD TC AD 6C 3D TD 3H 5H 7H AS JH KH
3C 4C 2D AC QC 7S 7C TD 9C 4D KS 8D 6C
2C 3C KC JC 4C 8C 7C QC AC 5C 9C 6C TC
5H 3S 4D KC 9S 3D 4S 8H JC TC 8S 2S 4C
2S 5D 6S 8S 9D 3C 2H TH
2H 6D %S 8S 7S 4D 3H 4S KS QH JH 5C 9S
2C QD TC AD 6C 3D TD 3C 5H 7H AS JH KD QS
2C QD TC AD 6C 3D TD 2C 5D 7H AS JH KD
2H 6D TS 8Z 7S 4D 3H 4S KS QD JH 5C 9S
С каждой пары, представляющей собой карту (стоимость и костюм).
Правовые ценности включают в себя:
2-9
T(10), A(Ace), K(King), Q(Queen), and J(Jack)
и костюмы:
C(Clubs), S(Spades), D(Diamonds), and H(Hearts)
После того, как файл считывается, каждая рука должна быть отсортированы сначала по масти, а затем рангом в масти (тузы высокие). Когда сортировка завершена, каждая рука должна быть оценена с помощью следующих правил:
Aces = 4
Kings = 3
Queens = 2
Jacks = 1
voids (no cards in a suit) = 3
singletons (one card in a suit) = 2
doubletons (two cards in a suit) = 1
long suits (more than 5 cards in a suit) = 1 count for each card over 5 in number
После оцениваемых, каждая рука должна отображаться в следующем формате:
Example Input:
2C QD TC AD 6C 3D TD 3H 5H 7H AS JH KH
Example Output:
Clubs 10 6 2
Diamonds A Q 10 3
Hearts K J 7 5 3
Spades A
Points = 16
Вот несколько особенностей о что программа должна включать:
1. A data structure to hold cards in an ordered manner.
2. A function to read in the hand.
3. A function to evaluate the hand (with support functions).
4. A function to display the hand.
Вот какой маленький код мне удалось придумать. В случае, если это неясно, комментарии - это шаги, которые, я думаю, нужно будет сделать, чтобы программа работала должным образом. Сейчас все, что он делает, это открыть файл, и да, я удалю сообщение «Файл открыт», я просто хотел убедиться, что файл действительно открыт.
//#include <program3.h>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main() {
//Create Array
//char bridgeHands[];
//Open file, if it doesn't exist, exit the program
ifstream bridgeFile;
bridgeFile.open("prog3.dat");
if(!bridgeFile) {
cerr << "Open Failure" << endl;
exit(1);
}
else {
//Read file into array
//Sort array
//Evaluate hands
//Display hands
cout << "File is open" << endl;
}
return 0;
}
Я предполагаю, что мой конкретный вопрос на данный момент. Как мне нужно создавать и загружать массив? Я никогда не работал с загрузкой массива из ввода, который находится в парах. Кроме того, как это работает с структурой данных?
Я уверен, что теперь вы можете сказать, что я очень новичок в этом, и я учусь, когда я иду (почти все, что я знаю, как делать на C++ написано в этом коде), поэтому любая помощь в значительной степени оценили. Спасибо за ваше время.
Вам нужна структура данных для представления карты (а структура будет отлично). Определите массив из них (используйте 'std :: vector', если вам разрешено).Напишите функцию перевода из двухсимвольной последовательности в тип карты. В цикле читайте двухзначные «слова», переводите каждый на карту и храните их в массиве. И не используйте 'eof'. – molbdnilo
Звучит неплохо, но я не знаю, как это сделать: -/ –
В этом случае вы найдете помощь [здесь] (http://stackoverflow.com/questions/388242/the-definitive-c -book-гид-и-лист). – TobiMcNamobi