当前位置: 首页 > news >正文

网站管理系统 phpseo信息是什么

网站管理系统 php,seo信息是什么,wordpress手动裁剪,北京网站软件制作介绍 井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下…

介绍

井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。

在这里插入图片描述

训练AI

主要思路是保存每次失败的局,下次不在走类似的局,这样经过长期训练,AI会越来越聪明

import java.util.Random;
import java.util.Scanner;
import java.util.concurrent.CopyOnWriteArrayList;/*** TicTacToe** @author your name*/
public class TicTacToe {// member variablesprivate static final String[][] table = new String[3][3];private static final CopyOnWriteArrayList<String> success = new CopyOnWriteArrayList<String>();private static final CopyOnWriteArrayList<String> pStrings = new CopyOnWriteArrayList<String>();private static final CopyOnWriteArrayList<String> cStrings = new CopyOnWriteArrayList<String>();private static final CopyOnWriteArrayList<String> losingStrings = new CopyOnWriteArrayList<String>();// mainpublic static void main(String[] args) {// initialinitSuccess();// loopdo {System.out.println("start game!");test();} while (true);}@SuppressWarnings("resource")// testpublic static void test() {Scanner sc = new Scanner(System.in);CopyOnWriteArrayList<String> losingList = new CopyOnWriteArrayList<String>();int index = 0;do {System.out.println("input anything");sc.next();System.out.println("your input position 1: (range 0 from 2)");int p1 = sc.nextInt();System.out.println("your input position 2: (range 0 from 2)");int p2 = sc.nextInt();table[p1][p2] = "p";pStrings.add(p1 + "" + p2);index++;int a1 = 0;int a2 = 0;if (index == 5) ;else {do {// call computerint[] cs = computerTurn();table[cs[0]][cs[1]] = "c";boolean fs = false;String temp = print();for (int i = 0; i < losingStrings.size(); i++) {if (temp.equals(losingStrings.get(i))) {fs = true;}}if (fs) {table[cs[0]][cs[1]] = null;continue;} else {a1 = cs[0];a2 = cs[1];break;}} while (true);cStrings.add(a1 + "" + a2);}// printSystem.err.println(print());// recordlosingList.add(print());// judgeboolean[] flag = judge();if (flag[0] | flag[1]) {// clear tablefor (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {table[i][j] = null;}}// print resultif (flag[1]) {System.err.println("person wins!");losingStrings.add(losingList.get(losingList.size() - 2));System.err.println(printLosing());pStrings.clear();cStrings.clear();break;} else {System.err.println("computer wins!");cStrings.clear();pStrings.clear();break;}}// is tieif (isTie()) {break;}} while (true);}// printLosingpublic static String printLosing() {String outString = "";for (int i = 0; i < losingStrings.size(); i++) {outString += "losing:\n" + losingStrings.get(i) + "\n";}return outString;}// isTiepublic static boolean isTie() {int idxs = 0;// valid of tablefor (int i = 0; i < table.length; i++) {for (int j = 0; j < 3; j++) {if (table[i][j] != null) idxs++;}}if (idxs == 9) {System.err.println("equal or tie");cStrings.clear();pStrings.clear();// clear tablefor (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {table[i][j] = null;}}return true;}return false;}public static boolean[] judge() {// judge successboolean fc = false;boolean fp = false;for (int i = 0; i < success.size(); i++) {int b = 0;for (int j = 0; j < pStrings.size(); j++) {int f = 0;if (success.get(i).substring(0, 2).equals(pStrings.get(j))) {f = 1;}if (success.get(i).substring(2, 4).equals(pStrings.get(j))) {f = 1;}if (success.get(i).substring(4, 6).equals(pStrings.get(j))) {f = 1;}if (f == 1) {b++;}}if (b == 3) {fp = true;break;}}for (int i = 0; i < success.size(); i++) {int a = 0;for (int j = 0; j < cStrings.size(); j++) {int f = 0;if (success.get(i).substring(0, 2).equals(cStrings.get(j))) {f = 1;}if (success.get(i).substring(2, 4).equals(cStrings.get(j))) {f = 1;}if (success.get(i).substring(4, 6).equals(cStrings.get(j))) {f = 1;}if (f == 1) {a++;}}if (a == 3) {fc = true;break;}}System.out.println("cs=" + cStrings.toString());System.out.println("ps=" + pStrings.toString());return new boolean[]{fc, fp};}public static String print() {// printString tableString = "";for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (table[i][j] == null) {tableString += " \t";} else if (table[i][j].equals("c")) {tableString += "c\t";} else {tableString += "p\t";}}tableString += "\n";}return tableString;}// computer turnpublic static int[] computerTurn() {int[] res = new int[2];int c1 = 0;int c2 = 0;do {c1 = new Random().nextInt(3);c2 = new Random().nextInt(3);if (table[c1][c2] == null) {break;}} while (true);res[0] = c1;res[1] = c2;return res;}// initSuccesspublic static void initSuccess() {final String[] items = {"00", "01", "02","10", "11", "12","20", "21", "22"};final int[][] combination = {{0, 4, 8},{2, 4, 6},{0, 1, 2},{3, 4, 5},{6, 7, 8},{0, 3, 6},{1, 4, 7},{2, 5, 8}};for (int i = 0; i < combination.length; i++) {int[] temp = combination[i];String t1 = items[temp[0]] + items[temp[1]] + items[temp[2]];success.add(t1);String t4 = items[temp[2]] + items[temp[1]] + items[temp[0]];success.add(t4);String t2 = items[temp[1]] + items[temp[0]] + items[temp[2]];success.add(t2);String t5 = items[temp[2]] + items[temp[0]] + items[temp[1]];success.add(t5);String t3 = items[temp[0]] + items[temp[2]] + items[temp[1]];success.add(t3);String t6 = items[temp[1]] + items[temp[2]] + items[temp[0]];success.add(t6);}}}

效果

启动后和AI进行对局,AI每次会将失败的路数记录下来,下次不再走重复的路径,训练久了AI就会越来越聪明

在这里插入图片描述

http://www.tj-hxxt.cn/news/48078.html

相关文章:

  • 哪个网站可以做行程电商网站设计模板
  • 用asp做网站题目收录情况
  • 怎么改网站标题免费站长统计工具
  • 黄骅广信建设集团网站苹果cms永久免费全能建站程序
  • 网站建设审批最近的新闻摘抄
  • 怎么做影视网站长春网站seo哪家好
  • 西安做建站的公司百分百营销软件
  • 武汉网络推广公司排名windows优化大师提供的
  • 政府查询网站建设方案百家号排名
  • 石家庄做外贸的网站推广西安百度关键词优化
  • 360怎么做网站排名seo方法图片
  • 企业创建网站的途径广告关键词排名
  • 2015做哪些网站致富优化清理大师
  • 网站开发图片素材免费下载app并安装
  • 竞价广告推广站长seo工具
  • 做aa视频网站web网页制作成品免费
  • 百度关键词排名常州seo外包公司
  • 网上做打字任务的网站子域名查询工具
  • 免费照片模板制作文明seo技术教程网
  • 昆明哪里做网站免费下优化大师
  • 网站建设响应发帖效果好的网站
  • 北京网站建设的服务公司自媒体平台
  • 把插钉机子拍下怎么做网站宣传软文
  • 护肤品网站建设分析青岛seo关键词优化公司
  • 安徽省建设工程安全协会网站微信推广方案
  • 关于省钱的网站名字足球排名最新排名世界
  • 国外做网站用的程序网站域名查询ip地址
  • 成都网站设公司精准营销通俗来说是什么
  • 怎么黑掉织梦做的网站天津搜索引擎seo
  • wordpress建站菜单栏 二级标题站长工具流量统计