正文

for循環(huán)、字符串與數(shù)組(12)

通過游戲編程實戰(zhàn)教新手學(xué)C++編程 作者:(美)Michael Dawson


3.6  使用多維數(shù)組

如您所見,序列在游戲中用處很大。它們能夠以字符串的形式存儲玩家的名字,或者以數(shù)組的形式存儲RPG游戲中的物品。但是有時線性列表不能滿足游戲中某些部分的迫切需求,所以需要使用更高維的結(jié)構(gòu)。例如,一個含64個元素的數(shù)組可以用來表示棋盤,但是8×8元素構(gòu)成的二維實體用起來則更加直觀。幸運(yùn)的是,可以使用二維或三維(甚至更高維)數(shù)組來最好地滿足游戲的需求。

3.6.1  Tic-Tac-Toe Board程序簡介

Tic-Tac-Toe Board程序顯示了一個井字棋游戲棋盤。程序顯示棋盤并宣布X為勝者。盡管可以用一維數(shù)組來編寫,但程序使用了二維數(shù)組來表示棋盤。程序如圖3-5所示。

從Course Technology網(wǎng)站(www.courseptr.com/downloads)或本書合作網(wǎng)站(http://www. tupwk.com.cn/downpage)上可以下載到該程序的代碼。程序位于Chapter 3文件夾中,文件名為tic-tac-toe_board.cpp。

圖3-5  井字棋游戲棋盤用二維數(shù)組表示

// Tic-Tac-Toe Board

// Demonstrates multidimensional arrays

#include <iostream>

using namespace std;

int main()

{

const int ROWS = 3;

const int COLUMNS = 3;

char board[ROWS][COLUMNS] = { {'O', 'X', 'O'},

{' ', 'X', 'X'},

{'X', 'O', 'O'} };

cout << "Here’s the tic-tac-toe board:\n";

for (int i = 0; i < ROWS; ++i)

{

for (int j = 0; j < COLUMNS; ++j)

{

cout << board[i][j];

}

cout << endl;

}

cout << "\n’X’ moves to the empty location.\n\n";

board[1][0] = ’X’;

cout << "Now the tic-tac-toe board is:\n";

for (int i = 0; i < ROWS; ++i)

{

for (int j = 0; j < COLUMNS; ++j)

{

cout << board[i][j];

}

cout << endl;

}

cout << "\n’X’ wins!";

return 0;

}


上一章目錄下一章

Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號