本日の課題
2010.06.28

Back


さいころを振ってすごろくをすることをシミュレートするプログラムを作ります. 「ふりだし」(start)から「上がり」(goal)まで全部で20マスとします.最後, 上がるときは上がりまでのマス数と同じ目が出ないとやりなおし,という条件に します.結果表示は次のようなものにしてください.

さいころの目 2, 今のマス  3, 残り 17
さいころの目 2, 今のマス  5, 残り 15
さいころの目 1, 今のマス  6, 残り 14
さいころの目 4, 今のマス 10, 残り 10
さいころの目 1, 今のマス 11, 残り  9
さいころの目 5, 今のマス 16, 残り  4
さいころの目 3, 今のマス 19, 残り  1
さいころの目 6, 上がれず(;_;)
さいころの目 5, 上がれず(;_;)
さいころの目 5, 上がれず(;_;)
さいころの目 5, 上がれず(;_;)
さいころの目 6, 上がれず(;_;)
さいころの目 1, 上がり!

解答用紙


解答例

/* ************************************************** */
/*                                                    */
/*      情報科学演習 C6 C7                            */
/*      レポート課題                                  */
/*      2010.6.28                                     */
/*                                                    */
/* ************************************************** */
/*                                                    */
/*      学生番号:                                    */
/*                                                    */
/*      氏名:                                        */
/*                                                    */
/* ************************************************** */
/*                                                    */
/*      この行以降に解答のプログラムを書くこと        */

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

main()
{
	srand((unsigned) time(NULL));
	
	int dice, pos = 1 ;
	
	while(pos != 20){
		dice = rand() % 6 + 1;
		
		if(dice < 20 - pos){
			pos += dice;
			
			printf("さいころの目 %d, 今のマス %2d, 残り %2d\n", dice, pos, 20 - pos);
		}
		else if(dice > 20 - pos)
			printf("さいころの目 %d, 上がれず(;_;)\n", dice);
		else
			pos += dice;
		 
	}
	
	printf("さいころの目 %d, 上がり!\n", dice);
	
	return(0);
}


戻る