五子棋游戏(Scala版本)

package datastructure

import scala.collection.mutable.ArrayBuffer

/**
 * 编写五子棋程序,有存盘退出和续上盘的功能
 */

object Sparsearray {
  def main(args: Array[String]): Unit = {
    val rowSize = 11
    val colSize = 11

    //创建棋盘
    val chessArray = Array.ofDim[Int](rowSize, colSize)
    //初始化棋子
    chessArray(1)(2) = 1
    chessArray(2)(3) = 2

    //查看棋盘
    for (item <- chessArray) {
      for (item2 <- item) {
        printf("%d \t", item2)
      }
      println()
    }

    //压缩棋盘
    println("--------------------压缩棋盘存储----------------------")
    val sparseArr = ArrayBuffer[Node]()
    //保存原始数组信息
    val node = new Node(rowSize, colSize, 0)
    sparseArr.append(node)
    for (i <- 0 until chessArray.length) {
      for (j <- 0 until chessArray(i).length) {
        if (chessArray(i)(j) != 0) {
          val node = new Node(i, j, chessArray(i)(j))
          sparseArr.append(node)
        }
      }
    }
    //输出稀疏数组
    println("----------------稀疏数组------------------------")
    for (node <- sparseArr) {
      printf("%d\t%d\t%d\n", node.row, node.col, node.value)
    }
    //恢复棋盘
    println("----------------恢复棋盘------------------------")
    val newNode = sparseArr(0)
    val rowSize2 = newNode.row
    val colSize2 = newNode.col
    val newChessArray = Array.ofDim[Int](rowSize, colSize)
    for (itme <- 1 until sparseArr.length) {
      val node = sparseArr(itme)
      newChessArray(node.row)(node.col) = node.value
    }
    //查看棋盘
    for (item <- newChessArray) {
      for (item2 <- item) {
        printf("%d \t", item2)
      }
      println()
    }

  }

}

class Node(val row: Int, val col: Int, val value: Int)

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QFiver 功能简介: 1. 针对QQ游戏平台五子棋:能够代替人进行思考和落子,替你战胜对手。同时支持无禁手和禁手规则。 2. 具有四个不同的“大脑”:就是四个不同的引擎,各具特色,可以应对不同的对手! 3. 设置难度:机器人下棋当然也需要进行“思考”,和人一样,思考得越久,下的水平越高。所以你要设置合适的难度,如果碰到水平并不是特别优秀的玩家设置较低的难度就可以,这样落子的速度较快,反之如果碰到难得一见的高手,就应设置较高的难度,虽然想的时间会变长一些,但战胜的把握更大。 4. 获胜预先提示:当机器人觉得你即将获胜的时候,它会进行提示! 5. 走子延时:机器人有时会下得很快,最快可以在对手落子后的0.5秒内出击。但如果总是这么快容易让对手发现不是真人在下棋,所以适当延长走棋时间。 6. 人机模式:你可以把机器人当作你的一个小军师,让他帮你下一步,有时候合作也很有意思哦,注意:点击一次“人机模式”或按一次F6,软件只帮你走一步棋,下棋过程中要用这种模式,先必须先按F12停止“自动模式”。 7. 收拾残局(仅“推荐”引擎有此功能):即在游戏已经开始的情况下继续替你战斗,这是一个非常实用的功能。另外有一个特殊用法:如果你同意悔棋,这个时候棋盘上的棋子就改变了,可以先中止机器人操作然后再点“自动模式”。 8.关于悔棋功能:如果你要同意别人悔棋,请先按F12中止机器人操作,然后再点“同意”悔棋,之后可按F5实现自动模式或按F6实现人机模式。 9.随开:就是执黑子时随机任意开局,不选它时,执黑开局的第一子都是走中心。 10.挂机:在无人值守的情况下自动对战。试想,如果你将房间设置改为只同“分差不超过100的玩家”进行游戏,找一个热闹的房间和抢手的桌子,也许几个小时后你就升了好几段(当然前提是这个过程中你没有被蓝钻踢掉)!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值