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

C++ liczby losowe i pseudolosowe

VPS Starter Arubacloud
0 głosów
860 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,793 wizyt
0 głosów
0 odpowiedzi 472 wizyt
0 głosów
3 odpowiedzi 734 wizyt
pytanie zadane 30 sierpnia 2016 w C i C++ przez Szymon Ciamaga Obywatel (1,980 p.)

92,786 zapytań

141,718 odpowiedzi

320,666 komentarzy

62,115 pasjonatów

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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...