大学入学共通テスト(数学) 過去問
令和6年度(2024年度)追・試験
問149 (情報関係基礎(第3問) 問10)
問題文
Aさんはゲーム会社に勤務しており、複数のプレイヤーが参加するゲームでのプレイヤーの順番(以下、手番と呼ぶ。)を管理するプログラムを開発している。ここでは図1に示すように、「高橋」を先頭として「高橋」→「石村」→「天野」→「小池」→「渡辺」の順で時計回りに手番が進み、最後の「渡辺」の次は「高橋」に戻り、再び同じ順で手番が繰り返される例について考える。
このゲームでは、プレイヤーがゲームに新たに参加したり抜けたりすることがある。図3・図4は、図1で示した手番の並びでの例である。Aさんは、プレイヤーを手番の並びに追加する手続きを考えた。図3では、「高橋」と「石村」の間に「三田」が新たに追加されている。この場合、「三田」の次のプレイヤーは「高橋」の次のプレイヤーである( オ )になり、「高橋」の次のプレイヤーは( カ )になる。つまり、あるプレイヤー(行番号x)の次に新たなプレイヤー(行番号tuika)を追加する手順は、図5のように、配列Playerにおいてそれぞれの列2の値を変更する手続きになる。(03)行目ではゲームの参加者数nの値を変更している。
図5 プレイヤーを手番の並びに追加する手続き
(01)Player[tuika,2]←( キ )
(02)Player[x,2]←( ク )
(03)n←( ケ )
次に、Aさんは任意のプレイヤーが手番の並びから抜ける手続きの作成にとりかかった。抜けるプレイヤーを配列から削除するのではなく、手番の並びを変更し、そのプレイヤーにたどり着かないようにする手順を考えた。図4は、図1で示した手番の並びから「渡辺」が抜ける例である。この場合、「渡辺」の前
にいる「小池」の次のプレイヤーは( コ )になる。そこで、手番の並びから抜
けるプレイヤー(行番号nuke)の前にいるプレイヤーを特定し、そのプレイヤーの列2の値を変更する手続きを図6のように書いた。問1と同じく、変数sentoは先頭のプレイヤーの行番号を格納している。変数pを用いて先頭から手番の並びをたどりながら、抜けるプレイヤーの前にいるプレイヤーの行番号を求め、(05)行目でそのプレイヤーの列2の値を変更している。(06)行目では、ゲームの参加者数nの値を変更している。この手続きでは、先頭のプレイヤーが抜けた場合の変数sentoの値の変更処理は省略している。
図6 プレイヤーが手番の並びから抜ける手続き
(01)p←sento
(02)( サ )の間,
(03)¦p←( エ )
(04)を繰り返す
(05)Player[p,2]←( シ )
(06)n←( ス )
( コ )にあてはまるものを1つ選べ。
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
大学入学共通テスト(数学)試験 令和6年度(2024年度)追・試験 問149(情報関係基礎(第3問) 問10) (訂正依頼・報告はこちら)
Aさんはゲーム会社に勤務しており、複数のプレイヤーが参加するゲームでのプレイヤーの順番(以下、手番と呼ぶ。)を管理するプログラムを開発している。ここでは図1に示すように、「高橋」を先頭として「高橋」→「石村」→「天野」→「小池」→「渡辺」の順で時計回りに手番が進み、最後の「渡辺」の次は「高橋」に戻り、再び同じ順で手番が繰り返される例について考える。
このゲームでは、プレイヤーがゲームに新たに参加したり抜けたりすることがある。図3・図4は、図1で示した手番の並びでの例である。Aさんは、プレイヤーを手番の並びに追加する手続きを考えた。図3では、「高橋」と「石村」の間に「三田」が新たに追加されている。この場合、「三田」の次のプレイヤーは「高橋」の次のプレイヤーである( オ )になり、「高橋」の次のプレイヤーは( カ )になる。つまり、あるプレイヤー(行番号x)の次に新たなプレイヤー(行番号tuika)を追加する手順は、図5のように、配列Playerにおいてそれぞれの列2の値を変更する手続きになる。(03)行目ではゲームの参加者数nの値を変更している。
図5 プレイヤーを手番の並びに追加する手続き
(01)Player[tuika,2]←( キ )
(02)Player[x,2]←( ク )
(03)n←( ケ )
次に、Aさんは任意のプレイヤーが手番の並びから抜ける手続きの作成にとりかかった。抜けるプレイヤーを配列から削除するのではなく、手番の並びを変更し、そのプレイヤーにたどり着かないようにする手順を考えた。図4は、図1で示した手番の並びから「渡辺」が抜ける例である。この場合、「渡辺」の前
にいる「小池」の次のプレイヤーは( コ )になる。そこで、手番の並びから抜
けるプレイヤー(行番号nuke)の前にいるプレイヤーを特定し、そのプレイヤーの列2の値を変更する手続きを図6のように書いた。問1と同じく、変数sentoは先頭のプレイヤーの行番号を格納している。変数pを用いて先頭から手番の並びをたどりながら、抜けるプレイヤーの前にいるプレイヤーの行番号を求め、(05)行目でそのプレイヤーの列2の値を変更している。(06)行目では、ゲームの参加者数nの値を変更している。この手続きでは、先頭のプレイヤーが抜けた場合の変数sentoの値の変更処理は省略している。
図6 プレイヤーが手番の並びから抜ける手続き
(01)p←sento
(02)( サ )の間,
(03)¦p←( エ )
(04)を繰り返す
(05)Player[p,2]←( シ )
(06)n←( ス )
( コ )にあてはまるものを1つ選べ。
- 「高橋」
- 「石村」
- 「天野」
- 「小池」
- 「渡辺」
- 「三田」
正解!素晴らしいです
残念...
この過去問の解説
前の問題(問148)へ
令和6年度(2024年度)追・試験 問題一覧
次の問題(問150)へ