特別課題 あまりにも優秀すぎて, 時間をもてあましている人へ
演習 Bronze Othello用の表示プログラムを作成せよ. 8×8の配列(int cell[8][8])を作り,そこに0,1,-1を格納する.それぞれ,空,黒,白を意味する. そして,その情報を8×8のマス目として表示するプログラムを作成せよ. ただし,cell[y][x]とせよ. 白「○」,黒「●」,空白「・」と表示せよ.
演習 Bronze (con’t) 実行結果例 ・・・・・・・・ ・・・○●・・・ ・・・●○・・・ cell[3][3]=-1; それ以外=0 の例 ・・・・・・・・ ・・・○●・・・ ・・・●●●・・ cell[3][3]=-1; cell[3][4]=1; cell[4][3]=1; cell[4][4]=1; cell[4][5]=1; それ以外=0 の例 ・・・・・・・・ ・・・○●・・・ ・・・○●●・・ ・・・○・・・・ cell[3][3]=-1; cell[3][4]=1; cell[4][3]=-1; cell[4][4]=1; cell[4][5]=1; cell[5][3]=-1; それ以外=0 の例 ・・・・・・・・ ・・・○●・・・ ・・●●●●・・ ・・・○・・・・ cell[3][3]=-1; cell[3][4]=1; cell[4][2]=1; cell[4][3]=1; cell[4][4]=1; cell[4][5]=1; cell[5][3]=-1; それ以外=0 の例
演習 Bronze (con’t) 必然的に,以下の処理が必要となる. cell[0][0]~cell[7][7]の64個すべてに,0を代入. その後, cell[3][3] = -1; cell[3][4] = 1; cell[4][3] = 1; cell[4][4] = -1;
演習 Silver ユーザからの入力を受け付けるプログラムを作成せよ. Webページ上にヒントあり Windowsであれば,getch()によりユーザからの入力を受け取ることができる. 横座標としてA~Hの入力を受け付ける. それ以外が入力されたら再入力を促す. A~Hが入力されたら,0~7に変換. Webページ上にヒントあり
演習 Silver (con’t) ヒント printf(“横座標(A-H)を入力してください.Q を入力で終了> "); ch = getch(); printf("\n"); // 大文字だったら,小文字に変換 if( 'A'<=ch && ch<='Z' ){ ??? } // 正しい入力か調査 if( ??? ){ } else {
演習 Gold 2人プレイ用Othelloを作成せよ。 8×8の配列を作り、そこに0,1,-1が格納されている。それぞれ、空、黒、白を意味する。そして、その情報を8×8のマス目として表示。 人間(二人)の入力を受け取り、オセロをプレイ可能とする。「石を置けるか否か」の判断や、石を置いたときの「ひっくり返し」の処理を行う。 7
演習 Platinum 1人プレイ用Othelloを作成せよ。 人間の相手をするコンピュータ ヒント:開放度理論など 8