首页 文章 精选 留言 我的

精选列表

搜索[MoE动态路由],共10000篇文章
优秀的个人博客,低调大师

JS+Canvas的棋盘游戏和Java的动态结合

二维数组的题做了有几个了,感觉很有趣,随后想到想做一个五子棋的游戏. 因为前端知识匮乏,但感觉只是Java中去用二维数组做的话还是不太难的. 首先生成15*15的棋盘,(先不考虑前后端交互),其后HashMap作为棋盘数据容器,用来接收黑棋或者白棋的设置. 比如说: HashMap<String,String> goBang = new HashMap<>(); 其后 15A 与 白棋 分别作为 key 和 value ,put到goBang /////* snapshot public static void main(String[] args) { HashMap<String,String> goBangMap = new HashMap<>(); goBangMap.put("15A","白棋"); } 15A是棋盘坐标系.如图: 随后,白棋下子完成,这时候应该是设置一个裁判来检测棋盘的下子,是否有连成5个子的,也就是说,每一步棋之后(或者在先手的执行完第五步开始进入该裁判方法) 该裁判类应该去遍历整个棋盘,查看是否有连5个子的,该裁判应该去遍历整个棋盘,是否已无位置可以下子,或者说再怎么下子也无一方会获胜,则裁定程序结束(胜出 / 平局) 难点还在于判定每个角与边.(与细胞自动机不同的是,这个棋子(细胞)要判定的不再仅仅是周围的8个元素了,而是可能很多个以及位置不再像CellMachine那样固定. 比如说,最后黑棋落子形成了5连子,其他4个的位置连在它的左上方,这时候该如何判定?) 也许可以渐进性地去推断: 当有两个相连接时,判定两个子分别两端+1位置(+1指的是恰能组成5连子的位置的下个位置) 是否还有该颜色棋子.如果首端没有+1的,那么判断尾端是否有+1,如果true, 再判定+1位置的+1位置是否有该颜色棋子.直到这个true不满足5个,则取消该首尾棋子的判定,并且,如果该首尾列两端+1位置均为另一颜色,或者一端无法放置棋子,没有形成5连子,则应再下次裁定时 取消对该首尾列的判定(去除) 待续 2018.07.27整体的后台Java代码加判断棋子5连胜出的裁判类都做好了,那么应该再就是前端的棋盘生成以及棋子生成和Web端的事件监听和数据传导了 将编程看作是一门艺术,而不单单是个技术。 敲打的英文字符是我的黑白琴键, 思维图纸画出的是我编写的五线谱。 当美妙的华章响起,现实通往二进制的大门即将被打开。

优秀的个人博客,低调大师

旧版spark(1.6版本) 将rdd动态转为dataframe

版权声明:本文由董可伦首发于https://dongkelun.com,非商业转载请注明作者及原创出处。商业转载请联系作者本人。 https://blog.csdn.net/dkl12/article/details/80304950 我的原创地址:https://dongkelun.com/2018/05/11/rdd2df/ 前言 旧版本spark不能直接读取csv转为df,没有spark.read.option(“header”, “true”).csv这么简单的方法直接将第一行作为df的列名,只能现将数据读取为rdd,然后通过map和todf方法转为df,如果csv的列数很多的话用如Array((1,2..))即Arrar(元组)创建的话很麻烦,本文解决如何用旧版spark读取多列txt文件转为df 1、新版 为了直观明白本文的目的,先看一下新版spark如何实现 1.1 数据 data.csv,如图: 1.2 代码 新版代码较简单,直接通过spark.read.option(“header”, “true”).csv(data_path)即可实现! package com.dkl.leanring.spark.sql import org.apache.spark.sql.SparkSession object Txt2Df { def main(args: Array[String]): Unit = { val spark = SparkSession.builder().appName("Txt2Df").master("local").getOrCreate() val data_path = "files/data.csv" val df = spark.read.option("header", "true").csv(data_path) df.show() } } 1.3 结果 +----+----+----+----+----+ |col1|col2|col3|col4|col5| +----+----+----+----+----+ | 11| 12| 13| 14| 15| | 21| 22| 23| 24| 25| | 31| 32| 33| 34| 35| | 41| 42| 43| 44| 45| +----+----+----+----+----+ 2、旧版 2.1 数据 data.txt col1,col2,col3,col4,col5 11,12,13,14,15 21,22,23,24,25 31,32,33,34,35 41,42,43,44,45 其中列数可任意指定 2.2 代码 package com.dkl.leanring.spark.sql import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.sql.SQLContext import org.apache.spark.sql.types._ import org.apache.spark.sql.Row object Rdd2Df { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("Rdd2Df").setMaster("local") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) import sqlContext.implicits._ val data_path = "files/data.txt" val data = sc.textFile(data_path) val arr = data.collect() //arr1为除去第一行即列名的数据 val arr1 = arr.slice(1, arr.length) val rdd = sc.parallelize(arr1) //列名 val schema = StructType(arr(0).split(",").map(fieldName => StructField(fieldName, StringType, true))) val rowRDD = rdd.map(_.split(",")).map(p => Row(p: _*)) sqlContext.createDataFrame(rowRDD, schema).show() } } 2.3 结果 +----+----+----+----+----+ |col1|col2|col3|col4|col5| +----+----+----+----+----+ | 11| 12| 13| 14| 15| | 21| 22| 23| 24| 25| | 31| 32| 33| 34| 35| | 41| 42| 43| 44| 45| +----+----+----+----+----+ 根据结果看,符合逾期的效果!

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册