poniedziałek, 14 września 2015

Pomocnik gracza RPG - wielokrotne rzucanie kością.

Jak dotąd wpisy na tej stronie były niezbyt częste. Istnieje pewna szansa, że to się zmieni na lepsze, gdyż mam kilka nadających się na to pomysłów. Muszę też pomyśleć nad lepszym stylem dla wklejek z kodem, bo sam nie mogę na to patrzeć.

W ramach małej rozgrzewki napisałem sobie w C prosty program, który może być pomocny przy rozgrywkach RPG. Ustawia się w nim liczbę ścian, kości i kolejek rzutu. Program podaje sumy wyników każdej z kolejek.

Kod:
/*
 Rafał Sarniak 2015.09.15
 Pomocnik_rpg.c
 Prosty program do wielokrotnego rzucania kośćmi o różnej liczbie ścian.
 Kompilować z flagą -std=c99
 */

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int rzut(int liczba_scian)
{
  return ((unsigned int) rand()) % liczba_scian +1;      // Zakładam, że numeracja ścian zaczyna się od "1".
}

void main(void)
{
  int liczba_kolejek, liczba_kosci, liczba_scian;
 
  srand(time(0));                                                   // Ustawiamy ziarno.
  printf("\nWprowadź liczbę kolejek; wybierz q aby zakończyć:\n");  // Każda inna litera/nie-liczba też zakończy.
  while(scanf("%d", &liczba_kolejek))
  {
    printf("Ile ścian i ile kości?\n");
    scanf("%d %d", &liczba_scian, &liczba_kosci);
    printf("Oto %d kolejek rzutów %d %d-ściennymi kostkami:\n  ", liczba_kolejek, liczba_kosci, liczba_scian);
    for(int i = 0; i<liczba_kolejek; i++)
    {
      int suma_wyniku = 0;
      for(int j = 0; j<liczba_kosci; j++)
        suma_wyniku += rzut(liczba_scian);
      printf("%d ", suma_wyniku);
    }
    printf("\n\nWprowadź liczbę kolejek; wybierz q aby zakończyć:\n");
  }
}

Brak komentarzy:

Prześlij komentarz