Po Yang Ответов: 2

Как писать программирование на C++?


Part 1
Create a standard deck of cards using an array. (1-dimensional or 2-dimensional, up to you). The deck should have 52 cards. The deck should have 13 ranks (1 to King) for each of the 4 suits (Spades, Hearts, Clubs and Diamonds). 
After that, add in code that will be able to draw a card randomly from the deck.

Part 2
Next implement a 3-card guessing game that will do the following:
1.Draw ONE card each for LEFT, MID and RIGHT.
2.Indicate (or show) the user the cards drawn and their original position. 
3.Clearly point out the card in MID.
4.Flip the cards around and shuffle them. (don’t show the player which card is in which position)
5.Let the player guess where the original MID card is.
6.If the player guess correct, declare the player as a winner. If the player guess wrongly, show where the correct card is and declare the player as loser.
7.Ask the player if he/she wish to play again.


Что я уже пробовал:

#include<iostream>
#include<cassert>
#include<fstream>
#include<string>
#include<iomanip>

using namespace std;


const unsigned int DECK_SIZE=52;
const unsigned int MAX_RANK=13;
const unsigned int MAX_SUIT=4;

const string ranks[MAX_RANK]=
{
	"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"
	
};

const string suits[MAX_SUIT]=
{
	"Spades","Hearts","Clubs","Diamonds"
};

struct Card
{
	string ranks;
	string suits;
};
Card deck[DECK_SIZE];
void initializeDeck();

void initializeDeck()
{
	int i,j;
	int k=0;
	
	
	for(i=0; i<MAX_RANK; i++)
	{
		for(j=0; j<MAX_SUIT;j++ )
		{
			deck[k].ranks=ranks[i];
			deck[k].suits=suits[j];
			k++;
		}
	}
	
}


int main()
{
	initializeDeck();
	
	for(int i=0; i<52; i++)
	{
		int j=(rand()%52);
	 	Card temp=deck[i];
		deck[i]=deck[j];
		deck[j]=temp;
	}
	

	for(int i=0; i<52; i++)
	{
		cout<<setw(10)<<deck[i].ranks;
		cout<<setw(8)<<deck[i].suits;
	
		if	(i%4==3)
		{
		    cout<<  endl;
		}
	}
	

	
	
	return 0;
}

Patrice T

в чем проблема с кодом ?

Po Yang

Мне нужно, чтобы люди помогли мне Часть 2 вопрос

Po Yang

Кто-нибудь может мне помочь,пожалуйста.

Patrice T

Опишите проблему в своем коде.

2 Ответов

Рейтинг:
1

CPallini

В чем твоя проблема?
Можете ли вы завершить часть 1 (показать случайную карту)?
Нужно ли вам на самом деле рисовать карты (то есть использовать графическую библиотеку)?
Как бы то ни было, трудно ответить на ваш вопрос.


Рейтинг:
0

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Вы уже начали, поэтому проверьте это, и когда вы будете счастливы, что это работает (и это совсем не хорошая перетасовка, но ваша домашняя работа не упоминает перетасовку), переходите к следующей части упражнения. Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!


Po Yang

Мне нужно немного начать с части 2

OriginalGriff

Не могли бы вы объяснить это поподробнее?

Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.

Po Yang

Колода карт[3];

пустота initializeDeck();

initializeDeck();

int x,y;
int k=0;


для(x=0; x<3; x++)
{
для(y=0; y<MAX_SUIT;y++ )
{
колода[k].ранги=ранги[x];
колода[k].масти=масти[y];
к++;
}
}

Po Yang

Это правильно?

OriginalGriff

Что происходит, когда вы пытаетесь это сделать?
Какие тесты вы делали?

Что вам показало тестирование?

Да, я мог бы просто сказать вам - но тогда вам пришлось бы спросить о следующем кусочке, и о следующем, кусочке, и ... .. это не курс "запомнить все" - это курс "подумать обо всем", потому что он пытается встроить в вас набор навыков - и вы только учитесь навыкам, используя их!
Попробуйте - посмотрите, что вы можете узнать!

Po Yang

Это выходит Джек червей.Я всего лишь стартер.

OriginalGriff

Я вроде как догадался об этом! :смеяться:

Остановись и подумай минутку.
Что такое "выходит Джек червей"? И когда же?
Все они?

Если он делает не совсем то, что вы хотели, то первое, что нужно сделать, это посмотреть, что именно он делает, и попытаться понять, где он идет не так. Это называется "отладка", и это настоящий навык.

Начните с использования отладчика и пройдите свой путь через функцию initializeDeck, наблюдая, что происходит с каждой переменной по мере прохождения. (Я не могу сказать вам, как это сделать, так как понятия не имею, какую IDE вы используете, но Google для имени вашей IDE и "отладки", и вы должны найти нужную вам информацию.)

Посмотрите, что это делает в первую очередь, и вы должны получить ключ к тому, куда идти оттуда.