如何修改R语言实现的简易贪吃蛇游戏中蛇头的颜色?
修改贪吃蛇蛇头颜色的实现方法
要把蛇头改为黄色,核心是在绘制蛇时区分蛇头和蛇身的颜色,具体修改步骤如下:
确认蛇头位置:你的
snake数据框中,蛇头是数据框的第一行(xpos=11,ypos=15)——因为蛇身按11到20的顺序排列,第一个元素就是蛇头。修改
plotSnake函数:给函数新增蛇头颜色参数,绘制时单独为蛇头设置颜色:
plotSnake <- function(snake, border = "black", col = "red", head_col = "yellow") { for (i in 1:nrow(snake)) { xstart <- snake$xpos[i]-1 xend <- snake$xpos[i] ystart <- snake$ypos[i]-1 yend <- snake$ypos[i] # 判断是否为蛇头,应用对应颜色 current_col <- ifelse(i == 1, head_col, col) rect(xstart, ystart, xend, yend, border = border, col = current_col) } }
- 运行完整代码:用修改后的函数绘图,就能看到黄色蛇头:
plotGrid <- function(N=30, border = "white", col = "light green") { par(mar=c(1,1,1,1)) plot(0, 0, type="n", xlim = c(0, N), ylim = c(0, N), axes = FALSE, xlab = "", ylab = "", asp = 1) for (i in 1:N) { ystart <- (i-1) yend <- i rect(0:(N-1), ystart, 1:N, yend, border = border, col= col) } } plotSnake <- function(snake, border = "black", col = "red", head_col = "yellow") { for (i in 1:nrow(snake)) { xstart <- snake$xpos[i]-1 xend <- snake$xpos[i] ystart <- snake$ypos[i]-1 yend <- snake$ypos[i] current_col <- ifelse(i == 1, head_col, col) rect(xstart, ystart, xend, yend, border = border, col = current_col) } } snake <- as.data.frame(matrix(0,10,2)) names(snake) <- c("xpos","ypos") snake$xpos <- 11:20 snake$ypos <- rep(15,10) plotGrid() plotSnake(snake)
改动说明
- 新增
head_col参数,默认值设为黄色,方便后续灵活调整蛇头颜色 - 通过
ifelse(i == 1, head_col, col)判断当前绘制的是蛇头还是蛇身,分别应用不同颜色
内容的提问来源于stack exchange,提问作者Kash
相关产品推荐
相关产品推荐

