【发布时间】:2013-12-09 12:03:53
【问题描述】:
我有一个井字游戏的代码,我需要一些帮助,因为我不知道该怎么做。 (使用处理 2.0)
1) 我需要编写一个获胜条件测试。对于玩家 1 和玩家 2 填充的完整行。
应该是这样的
int rowFilledByPlayer(int row){ //代码
}
2) 那么我需要类似于 1) 中的函数来测试列和对角线的函数
然后我必须组合所有功能
我该怎么做?我希望有人可以帮助我。
提前致谢。
这是我的代码
// Global variables
int board [][] = new int [3][3]; // Game board 3x3 array
int cellWidth, cellHeight; // Cell size computed from window size
int player = 1;
int rowFilledByPlayer;
void setup() {
size (400, 400);
rectMode(CORNER);
ellipseMode(CORNER);
// Divide window in 3 by 3 cells
cellWidth = width / 3;
cellHeight = height / 3;
clearBoard();
}
void draw() {
background(255);
drawBoard();
if (boardFilled())
drawGameOver();
}
void drawGameOver() {
fill(0, 102, 153);
textSize(width / 7);
textAlign(CENTER, CENTER);
text("Game Over!", width / 2, height / 2);
}
void mouseClicked() {
if (boardFilled())
clearBoard();
else
playerMove();
}
void clearBoard() {
for (int row=0; row<3; row++)
for (int col=0; col<3; col++)
board[row][col] = 0;
}
void drawBoard() {
for (int row=0; row<3; row++)
for (int col=0; col<3; col++)
drawCell(row, col);
}
void drawCell(int row, int col) {
noFill();
stroke(0);
rect (col * cellWidth, row * cellHeight, cellWidth, cellHeight);
switch (board[row][col]) {
case 1:
ellipse(col * cellWidth, row * cellHeight, cellWidth, cellHeight);
break;
case 2:
line(col * cellWidth, row * cellHeight, (col+1) * cellWidth, (row+1) * cellHeight);
line((col+1) * cellWidth, row * cellHeight, col * cellWidth, (row+1) * cellHeight);
break;
}
}
void playerMove() {
int row = mouseY / cellHeight;
int col = mouseX / cellWidth;
if (board[row][col] == 0) {
board[row][col] = player;
player = oppositePlayer();
}
}
int oppositePlayer() {
return player = 3 - player;
}
boolean boardFilled() {
for (int row = 0; row < 3; row++) {
if (!rowFilled(row))
return false;
}
return true;
}
boolean rowFilled(int row) {
for (int col = 0; col < 3; col++) {
if (board[row][col] == 0) return false;
}
return true;
}
void CheckRows();
【问题讨论】:
-
到目前为止您的努力是什么?你看过
rowFilled方法吗?将其复制到rowFilledByPlayer然后进行修改似乎是不错的候选。向我们展示您的个人努力!
标签: java processing