You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改R语言实现的简易贪吃蛇游戏中蛇头的颜色?

修改贪吃蛇蛇头颜色的实现方法

要把蛇头改为黄色,核心是在绘制蛇时区分蛇头和蛇身的颜色,具体修改步骤如下:

  1. 确认蛇头位置:你的snake数据框中,蛇头是数据框的第一行(xpos=11,ypos=15)——因为蛇身按11到20的顺序排列,第一个元素就是蛇头。

  2. 修改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)
  }
}
  1. 运行完整代码:用修改后的函数绘图,就能看到黄色蛇头:
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:50:45