• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ liczby losowe i pseudolosowe

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
1,018 wizyt
pytanie zadane 12 stycznia 2017 w C i C++ przez pokrywa1 Użytkownik (990 p.)
Otóż  w mojej książce   jest zadanie dotyczące napisania gry w pokera  . Napisałem już genarator liczb  ale gdy chce użytkownikowi pokazać jego karty to zamiast dama jupek  as itp wyswietlane są liczby np 1, 4, 11 . Jak mogę za pomocą generatora liczb wyśwetlac  nazwy kart ?

3 odpowiedzi

+2 głosów
odpowiedź 12 stycznia 2017 przez C☺ndzi Stary wyjadacz (12,100 p.)

Najłatwiej to pewnie:
 

if(nr_karty == 1)
 std::cout<<"Jopek czy tam inna karta"

 

1
komentarz 12 stycznia 2017 przez pokrywa1 Użytkownik (990 p.)
Heh strasznie to problematyczne gdyż w tali są 52 kary . Jedynym ułatwieniem będzie funkcja void . W której wszystko napisze raz a później tylko ja wywołań :)
+1 głos
odpowiedź 12 stycznia 2017 przez niezalogowany

Załóżmy, że masz tablicę kart:

class Card {
  std::string color; // np "trefl"
  std::string value; // np "9"

  void print()
  {
    printf("%s %s\n", value.c_str(), color.c_str())
  }
};

...

Card cards[] = {...}
int n = ... // rozmiar tablicy "cards"
int idx = (rand()%n); // losujesz losowy indeks

card[idx].print(); // drukujesz informację o karcie z wylosowanym indeksem

Ewentualnie możesz zrobić też analogicznie, tzn robisz tablicę z kolorami i wartościami i z nich losujesz po jednym elemencie tworząc losową kartę

komentarz 12 stycznia 2017 przez pokrywa1 Użytkownik (990 p.)
Dzięki  Szymon :) tak szczerze mało co rozumiem z twojego lodu poniewaz nie miałem jeszcze klas  ani tablic wiec ciężko mi go zrozumiec:(
komentarz 12 stycznia 2017 przez niezalogowany

Bez tablic będzie ciężko to sensownie zrobić, podejście z samymi tablicami:

#include <string> // string
#include <cstdio> // printf
#include <ctime> // randomness seed
#include <cstdlib> // rand

int main()
{
  srand(time(NULL));

  std::string arr_colors[4] = {"diamond", "spades", "clubs", "hearts"};
  std::string arr_ranks[13] = {"2", "3", "4", /* ... */, "Jack", "Queen", "King", "Ace"};

  std::string random_color = arr_colors[(rand() % 4)]; // losujemy kolor
  std::string random_rank = arr_ranks[(rand() % 13)]; // losujemy wartosc

  // drukujemy wylosowana karte:
  printf("%s %s\n", random_rank.c_str(), random_color.c_str());

  return 0;
}

 

komentarz 12 stycznia 2017 przez pokrywa1 Użytkownik (990 p.)

Kurde bo mam książkę w ktoreb jest takie zadanie na koniec  tematu z liczbami losowymi . Nie brałem jeszcze tablic wiec ciężko jet to zrobić sad

0 głosów
odpowiedź 12 stycznia 2017 przez operator Stary wyjadacz (10,920 p.)
Możesz użyć map<int,string> cards; Będzie działać.

Podobne pytania

+2 głosów
1 odpowiedź 6,970 wizyt
0 głosów
0 odpowiedzi 514 wizyt
0 głosów
3 odpowiedzi 830 wizyt
pytanie zadane 30 sierpnia 2016 w C i C++ przez Szymon Ciamaga Obywatel (1,980 p.)

93,164 zapytań

142,176 odpowiedzi

321,938 komentarzy

62,493 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 688p. - dia-Chann
  2. 676p. - CC PL
  3. 675p. - Łukasz Piwowar
  4. 664p. - Marcin Putra
  5. 662p. - Łukasz Eckert
  6. 649p. - Michal Drewniak
  7. 641p. - rucin93
  8. 641p. - rafalszastok
  9. 629p. - Adrian Wieprzkowicz
  10. 629p. - Piotr Aleksandrowicz
  11. 621p. - Dawid128
  12. 611p. - ksalekk
  13. 606p. - Mariusz Fornal
  14. 602p. - Michał Telesz
  15. 597p. - Hubert Chęciński
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...