特別課題 • あまりにも優秀すぎて, 時間をもてあましている人へ 演習 Bronze • Othello用の表示プログラムを作成せよ. • 8×8の配列(int cell[8][8])を作り, そこに0,1,-1を格納する.それぞれ,空,黒 ,白を意味する. • そして,その情報を8×8のマス目として表示 するプログラムを作成せよ. – ただし,cell[y][x]とせよ. – 白「○」,黒「●」,空白「・」と表示せよ. 演習 Bronze (con’t) • 実行結果例 ・・・・・・・・ ・・・・・・・・ ・・・・・・・・ ・・・○●・・・ ・・・●○・・・ ・・・・・・・・ ・・・・・・・・ ・・・・・・・・ cell[3][3]=-1; cell[3][4]=1; cell[4][3]=1; cell[4][4]=-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 • ユーザからの入力を受け付けるプログラムを 作成せよ. – 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
© Copyright 2024 ExpyDoc