Exemple #1
0
int rollstat(int min)
{
 int val = rolldice(6,3);
 while(val <= min)
	 val = rolldice(6,3); 
 return val;
}
void executeCommand(enum Commands command, User *bot, ...)
{
    va_list a_list;
    va_start(a_list, bot);
    char *sender, *cmdStr;
    char **parameters;
    switch (command)
    {
        case PONG:
            pong(bot);
            break;
        case PRIVMSG:
            sender = va_arg(a_list, char *);
            cmdStr = va_arg(a_list, char *);
            parameters = va_arg(a_list, char **);
            if (strcmp("speak", cmdStr) == 0 && strcmp("Anthony`", sender) == 0)
                privmsg(bot, sender, parameters[0]);
            else if (strcmp("rolldice", cmdStr) == 0)
                rolldice(bot, sender, atoi(parameters[0]));
            else if (strcmp("die", cmdStr) == 0 && strcmp("Anthony`", sender) == 0)
                killBot(bot);
            else if (strcmp("coolmeter", cmdStr) == 0)
                coolmeter(bot, sender, parameters[0]);
            else if (strcmp("fight", cmdStr) == 0)
                fight(bot, sender, parameters[0], parameters[1]);
            else if (strcmp("getlatestpost", cmdStr) == 0)
                getLatestRlPost(bot, sender);
            break;
    }

    va_end(a_list);
}
Exemple #3
0
 int main(int argc,const char *argv[])
{
 int gamestatus,sm,meuponto;

srand (time(NULL));
sm = rolldice();/*primeira jogada dos dados*/

switch (sm)
{

   case 7:
   case 11:/*vence na primeira jogada*/
          gamestatus =1;
          break;
    case 2:
    case 3:
    case 12:/*perde a primeira rodada*/
           gamestatus =2;
           break;
 default:/*Armazena dados do jogo*/

        gamestatus = 0;
        meuponto = sm;
        printf("O ponto é %d\n",meuponto);
   break;
}

 while (gamestatus==0)
{
 sm = rolldice ();

 if (sm == meuponto)
     gamestatus = 1;/*vence fazendo ponto*/
   else
       if (sm == 7) /* perde obtendo um valor 7*/
           gamestatus = 2;

}

   if (gamestatus == 1)

     printf ("Jogador vence \n");
   else
   printf("Jogador perde \n");


}
void dicerolls(int sets, int dice, int sides)
{
	// roll multiple sets of multiple n-sided dice and print results

	printf("Here are %d sets of %d %d-sided throws.\n", sets, dice, sides);
	for (int i = 0; i < sets; i++)
		printf("%2d ", rolldice(dice, sides));
	putchar('\n');
}
Exemple #5
0
void tableinit(GameTable* const gameStat) {
    for (int i = 0; i < Players; ++i) { // 代走させる処理
        if (gameStat->Player[i].ConnectionLost) {
            EnvTable::Instantiate()->PlayerDat[i].RemotePlayerFlag = 0;
            gameStat->Player[i].ConnectionLost = false;
        }
    }
    init_ai(gameStat);
    inittable(gameStat);
    // 局の開始で同期する。1.7系列まではこのとき落ち戻りが可能(落ち戻り機能は1.8で廃止されました)
    statsync(gameStat, mihajong_socket::protocol::Server_StartRound_Signature,
    [](GameTable* const gameStat, int ReceivedMsg) -> bool {
        if (ReceivedMsg == mihajong_socket::protocol::Server_StartRound_Signature) {
            return true;
        } else if (ReceivedMsg == 1023) { // 回線が切れてたら
            EnvTable::Instantiate()->GameMode = EnvTable::Standalone;
            for (int i = 0; i < Players; ++i)
                EnvTable::Instantiate()->PlayerDat[i].RemotePlayerFlag = 0;
            return true;
        } else {
            return false;
        }
    });
    // 牌譜バッファの初期化
    haifu::haifuinit();
    /* 卓の情報を同期 */
    syncTableStat(gameStat);
    // BGMを鳴らす
    choosebgm(gameStat);
    // 画面の準備
    screen(gameStat);
    // 洗牌
    tileshuffle(gameStat);
    // 賽を振る
    bool doraFlag = rolldice(gameStat, false, 0);
#ifndef GUOBIAO
    if (RuleData::chkRule("dice_roll", "roll_twice"))
#endif /* GUOBIAO */
        (void)rolldice(gameStat, doraFlag, 2); // 二度振りの2回目
    // 配牌
    haipai(gameStat);
    return;
}
void rolldice(int c,int arr[]) {
	int pd1,pd2,i;
	if (c == 0) for (i = 0;i < MPoint;++i) printf("\tPoint %-2d : %d\n",i+2,arr[i]);
	if (c != 0)
	{
		pd1 = rand()%6+1;
		pd2 = rand()%6+1;
		++arr[pd1+pd2-2];
		c--;
		rolldice(c,arr);
	}
}
// ==========================================================
int main () {
	int logp[MPoint],t;
	int i,k;
	for(;;){
		switch(GetMenu((char *)"Dice;Average score;Standard deviation",3))
		{
			case 1:	
			createa(logp,MPoint);
			printf("\n\tHow many time you want to roll : ");scanf("%d",&t);srand(time(NULL));//seed
			rolldice(t,logp);while((k=getchar())!= '\n');
			break; 
			case 2:printf("\n\t Average score : %lf\n",ap(logp,t));break;
			case 3:printf("\n\t Standard deviation  : %lf\n",sd(logp,t));break;
			case 0:return 0;
		}
	}
}
Exemple #8
0
int gameClient::build_board()
{
	int resource = 0;
	int dice = 0;
	srand(time(0));
	//must create tile, put it into pieces array, and update tile number in other array
	for (int x = 0; x < active_num_tiles; x++)
	{
		resource = assign_resources();
		if (resource == DESERT)
			dice = 1;
		else
			dice = rolldice();
		board[x].set_resource_type(resource);
		board[x].set_dice_roll(dice);
	}
	return(1);
}