Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
pupanya
4 / 4 / 2
Регистрация: 11.11.2010
Сообщений: 56
Завершенные тесты: 1
#1

символы и рандом - C++

24.01.2011, 15:37. Просмотров 1523. Ответов 3
Метки нет (Все метки)

Здравствуйте, у меня пара вопросов:
1. Надо выдать символы: сердечко,крест,пика,буби.
(искал как выводить через юникод, но не разобрался. разжуйте пожалуйста)
2. (немножко коряво сформулирован вопрос ну да ладно)
Рандом из массива не повторяющихся элементов (как в картах).
например: при первом рандоме из массива вышли определенные элементы,и чтоб при следующем рандоме эти элементы не выпадали.
спасибо за помощь.
если что, то программа консольная.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2011, 15:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос символы и рандом (C++):

Рандом - C++
возникла проблема - я создал массив, состоящий из десяти рандомных чисел. Только вот рандомными они становиться не хотят. Правда, на одном...

Рандом - C++
Как проще всего рандомно разыграть для переменной значение 1 или 0....?

рандом - C++
подскажите что не так #include <iostream> #include <string> #include <vector> using namespace std; int main() ...

рандом - C++
подскажите,плз,как рандомно выводить значения типа цццАцц, где ц-цифра, А-буква.

рандом - C++
Нижно массив заполнить рандомом #include "stdafx.h" #include <iostream> int _tmain(int argc, _TCHAR* argv) { double a...

Рандом - C++
Нужна помощь!!!! Вот исходный код: #include "stdafx.h" #include <stdlib.h> #include <iostream> #include <time.h> using...

3
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
24.01.2011, 17:53 #2
2.
Сделать один массив исходных элементов. и можно сделать еще второй массив, в котором будут храниться элементы, выбывшие уже. и далее просто делать проверку.
1
x1Mike7x
218 / 131 / 6
Регистрация: 06.11.2010
Сообщений: 234
24.01.2011, 18:44 #3
Консольный покер хочешь написать?)
Вот вывод всех карт на экран:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
struct card
{
    char value, suit;
};
//value {2,3,4,5,6,7,8,9,T,J,Q,K,A}
//suit {3,4,5,6}
  
int main()
{
    struct card deck[52];
    char x, buf[1];
    int i=0, v, s;
    
    for (s=3; s<7; s++)
        for (v=1; v<14; v++)
        {
            x = (v==1) ? ('A') :
                        (v==10) ? ('T') :
                            (v==11) ? ('J') :
                                (v==12) ? ('Q') :
                                    (v==13) ? ('K') :
                                        ('X');
            if (x=='X')
            { 
                itoa(v, buf, 10);
                deck[i].value=buf[0];
            }
            else
                deck[i].value = x;
            deck[i].suit = s;
            i++;
        };
    
    srand((unsigned)time(NULL));
    
    for (i=0; i<52; i++)
        printf("%c%c\n", deck[i].value, deck[i].suit);
    
    system("pause");
    return 0;
}
По второму: Если у тебя будет рандомно перетасована колода, то можно просто на место вытянутой карты помещать последнюю из массива и в следующем рандоме-выборе карт указывать диапазон массива на 1 меньше. То есть:
1) Выбираем карту из массива на 52 карты (i=rand()%52, arr[i]);
2) Если выбранная карта не была последней в массиве, то переставляем последнюю карту на место выбранной;
3) Проводим следующий выбор карты, но у же из массива на 51 элемент (i=rand()%51, arr[i]);
1
pupanya
4 / 4 / 2
Регистрация: 11.11.2010
Сообщений: 56
Завершенные тесты: 1
24.01.2011, 18:54  [ТС] #4
спасибо.
Цитата Сообщение от x1Mike7x Посмотреть сообщение
Консольный покер хочешь написать?)
да,именно его)
0
24.01.2011, 18:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2011, 18:54
Привет! Вот еще темы с ответами:

Широкие символы wchar_t wstring не хотят принимать русские символы - C++
Собственно вопрос в шапке, вот примеры: std::wstring str = L&quot;блин комом&quot;; и такое: wchar_t stroka = L&quot;abcdefghijklmnopqrstuvwxyz...

Неправильный рандом - C++
Здравствуйте. Программа должна заполнять массив случайными, не повторяющимися элементами. Однако не смотря на то что максимальное значение...

Не работает рандом - C++
Здравствуйте, я тут столкнулся с проблемой, хотел написать функцию рандома от x до y, x и y передаются как параметры в функцию, так вот,...

Массив и рандом - C++
2. Дан одномерный массив, состоящий из N целочисленных элементов. 2.1. Заполнить массив случайными числами. 2.2. Найти минимальный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.