r is an int, but you put a character into it. This is bad and causes something to remain in the input buffer, and then
that something gets read in at the next
cin call. I won't go into the details, because to be honest I'd probably get something wrong and mislead you as to exactly what happens. You can look up how the input buffer works yourself and get it firsthand.
If you want people to press "r" to roll, don't store the input character in an int. There's really no need to store their input at all in this case.
I note that you don't actually have a loop to play the game repeatedly; you are instead calling the
again function each time. This is very, very bad. This is not like BASIC where you just move the execution point around in the code. Each time you call the function
again, the existing function data doesn't get overwritten or deleted, but a whole new iteration of that function is started and all the data stored from that, and then again, and again, deeper and deeper each time you call the function until eventually you literally run out of memory on the stack and the program crashes.
Take a minute to read up on loops;
http://www.cplusplus.com/doc/tutorial/control/