using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
/*Declaracao das variaveis globais*/
public static int numfichas;/*Variavel que vai guardar numero de fichas*/
public static int aposta;/*Variavel que vai guardar o valor da primeira aposta*/
public static int numapostas;/*Variavel que vai guardar o numero de apostas*/
public static int delta;/*Variavel que sob condicoes vai decidir se adicionar ou subtrair
o valor indicado pelo jogador,conforme o jogador ganhe ou perca aposta anterior*/
public static int k;/*Variavel que guarda e calcula o numero de jogadas ate o jogo dar ganho*/
public static int n;/*Variavel que indica o ganho do jogo de K em K jogadas*/
public static bool ganhou = false;/*Condicao que indica se o jogador ganhou na jogada anterior*/
public static bool primjogada = true;/*Indica se e a primeira jogada,para nao subtrair o delta*/
static void Main(string[] args)
{
Console.WriteLine("Introduza o numero de fichas que dispoe:");/*Pede ao jogador o nº de fichas no inicio*/
numfichas = Int32.Parse(Console.ReadLine());/*Le e guarda a quantidade das fichas que o jogador inseriu*/
Console.WriteLine("Introduza o valor da primeira aposta:");/*Pede ao jogador o valor da primeira aposta*/
aposta = Int32.Parse(Console.ReadLine());/*Le e guarda o valor da primeira aposta */
Console.WriteLine("Introduza o numero de apostas:");/*Pede ao jogador o nº de apostas que ele quer fazer*/
numapostas = Int32.Parse(Console.ReadLine());/*Le e guarda a quantidade indicada */
Console.WriteLine("Introduza o valor a somar ou subtrair a aposta,conforme ganhe ou perca a aposta anterior:");
/*Pede ao jogador a quantidade do bonus que vai ser adicionado ou subtraido,conforme o jogador ganhe ou perca a aposta anterior*/
delta = Int32.Parse(Console.ReadLine());/*Le e guarda o valor indicado do bonus*/
Console.WriteLine("Introduza o numero de jogadas ate o jogo dar ganho:");/*Pergunta de quantas em quantas jogadas o jogo tem que dar ganho*/
k = Int32.Parse(Console.ReadLine());/*Le e guarda o valor indicado do numero de jogadas*/
Console.WriteLine("Qual quer que seja o ganho de jogo de K em K apostas?");/*Pergunta o valor do ganho do jogo de K em K jogadas*/
n = Int32.Parse(Console.ReadLine());/*Le e guarda o valor indicado para o valor de ganho*/
int nJogada = 0;/*Variavel que assume valores entre "zero" e "K"*/
for (int i = 0; i <= numapostas; i++)/*Ciclo que dura ate o numero de apostas chegar ao limite*/
{
nJogada += 1;/*Variavel incrementa o numero de jogada*/
numerofichas(nJogada);/*Chama a funcao numerofichas para calcular o numero de fichas resultante de aposta*/
primjogada = false;/*Variavel indica que a primeira jogada ja foi efectuada,e a partir daqui o delta e calculado*/
if (nJogada == k)/*Condicao que verifica se o numero de jogada corresponde ao numero da jogada de ganho*/
nJogada = 0;/*Reinicia a contagem dos jogos que dao ganho para "zero"*/
Console.WriteLine("Tem:" + numfichas);/*Imprime no ecra as fichas que o jogador tem no final de cada jogada*/
}
Console.ReadKey();/*Para a consola para ler os valores obtidos*/
}
static int ganho(int numjogada)/*Funcao que da um ganho do jogo por uma certa jogada*/
{
if (numjogada == k)/*Se o numero de jogada corresponde ao ganho do jogo*/
{
ganhou = true;/*Confirma que e verdade*/
return n;/*Devolve o ganho do jogo*/
}
else/*Senao*/
ganhou = false;/*Indica que o jogador nao ganhou nada*/
return 0;/*Retorna "zero" no final da funcao,que nao e contado*/
}
static int numerofichas(int numjogada)/*Funcao que devolve o numero de fichas do jogador
* ao fim de cada jogada,indicada pelo seu numero*/
{
if (ganhou)/*Se ganhou */
aposta = aposta + delta;/*o valor do delta e adicionado para valor de aposta */
else/*Outra condicao "se"*/
if (primjogada == false)/*depois de efectuada a primeira jogada o valor do delta
* passa a ser subtraido a aposta*/
aposta = aposta - delta;/*O valor do delta e retirado a aposta */
numfichas = numfichas - aposta;/*Contador que subtrai as fichas de aposta a valor total das fichas */
numfichas = numfichas + (ganho(numjogada) * aposta);/*Ao numero de fichas e somado o valor do ganho de cada aposta*/
return numfichas;/*Devolve o numero de fichas*/
}
}
}