Tic Tac Toe

2024-02-02 02:48
文章标签 tic tac toe

本文主要是介绍Tic Tac Toe,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、题目描述
  • 二、题目理解
  • 三、代码展示


一、题目描述

Tic Tac Toe is a child’s game played on a 3 by 3 grid. One player, X, starts by placing an X at an unoccupied grid position. Then the other player, O, places an O at an unoccupied grid position. Play alternates between X and O until the grid is filled or one player’s symbols occupy an entire line (vertical, horizontal, or diagonal) in the grid.
We will denote the initial empty Tic Tac Toe grid with nine dots. Whenever X or O plays we fill in an X or an O in the appropriate position. The example below illustrates each grid configuration from the beginning to the end of a game in which X wins.
… X… X.O X.O X.O X.O X.O X.O

… … … … .O. .O. OO. OO.

… … … …X …X X.X X.X XXX

Your job is to read a grid and to determine whether or not it could possibly be part of a valid Tic Tac Toe game. That is, is there a series of plays that can yield this grid somewhere between the start and end of the game?
Input
The first line of input contains N, the number of test cases. 4N-1 lines follow, specifying N grid configurations separated by empty lines.
Output
For each case print “yes” or “no” on a line by itself, indicating whether or not the configuration could be part of a Tic Tac Toe game.
Sample Input
2
X.O
OO.
XXX

O.X
XX.
OOO
Sample Output
yes
no

二、题目理解

在这里插入图片描述

三、代码展示

#include<stdio.h>
char plant[4][4];
int win(char c)
{int i,j;for(i=0;i<3;i++){for(j=0;j<3&&plant[i][j]==c;j++){if(j==2)return 1;}for(j=0;j<3&&plant[j][i]==c;j++){if(j==2)return 1;}}for(i=0;i<3&&plant[i][i]==c;i++){if(i==2)return 1;}for(i=0;i<3&&plant[i][2-i]==2;i++){if(i==2)return 1;}return 0;
}
int main()
{int n,x,o;int flag;int i,j;while(scanf("%d",&n)!=EOF){getchar();while(n--){x=0;o=0;for(i=0;i<3;i++){scanf("%s",plant[i]);}for(i=0;i<3;i++){for(j=0;j<3;j++){if(plant[i][j]=='X'){x++;}if(plant[i][j]=='O'){o++;}}}flag=1;if(win('X')&&win('O')){flag=0;}if(win('X')&&x==o){flag=0;}if(win('O')&&x!=o){flag=0;}if(o>x||x-o>1){flag=0;}if(flag==1)printf("yes\n");if(flag==0)printf("no\n");}}return 0;
}

这篇关于Tic Tac Toe的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/669260

相关文章

matlab 程序运行时间 tic toc

tic ... code toc   刚改完一个程序,把大段的 k = 0 for... k = k+1 ... end 改成了矩阵计算 240s缩短到180s,甚喜 缺点嘛....容易out of memory - -   plus 一个段子 判断代码质量的唯一标准是你在code review 的时候每分钟的脏话数。

linux查看日志文件内容命令tail、cat、tac、head、echo

-- linux 下修改文件内容保存并退出 vim /etc/profile e i shift+: 退出保存 wq ctrl+z sudo shutdown -r now chmod -777 修改权限 如果用命令chmod 777 tt.htm,结果是 -rwxrwxrwx 1 bu users 2254 2006-05-20 13:47 tt.htm

强化学习实践一:Tic-Tac-Toe游戏

这里给出一个简单的强化学习例子Tic-Tac-Toe。这是一个简单的游戏,在一个3x3的九宫格里,两个人轮流下,直到有个人的棋子满足三个一横一竖或者一斜,赢得比赛游戏结束,或者九宫格填满也没有人赢,则和棋。 这个例子的完整代码在我的github。例子只有一个文件,很简单,代码首先会用两个电脑选手训练模型,然后可以让人和机器对战。当然,由于这个模型很简单,所以只要你不乱走,最后的结果都是和棋,当然

Linux 命令使用:cat与tac、more与less、head与tail

Linux系统中有许多命令提供查看文件内容的功能,无所谓哪个命令更好,在具体工作中,根据需求选择具有不同功能特点的命令。 1. cat <file> 查看文件内容;指定输入创建文件;连接或合并文件 【1】查看一个或多个文件内容 tmpuser:test/ $ lltotal 0tmpuser:test/ $ echo 'a' > t1.filetmpuser:test/ $ echo

matlab中的tic、toc命令使用方法

tic和toc用来记录matlab命令执行的时间。 tic用来保存当前时间,而后使用toc来记录程序完成时间。 两者往往结合使用,用法如下: tic operations toc 显示时间单位:秒 例如: >> a = rand(1,10000);ticb = mean(a)tocb =0.4961时间已过 0.014130 秒。

ACdream区域赛指导赛之手速赛系列(4) E Tic-Tac-Toe-Tomek

题目: Tic-Tac-Toe-Tomek Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statistic Next Problem Problem Description Tic-Tac-Toe-Tomek is a game playe

tac 查看文件内容(反向列出)

命令解释 如果说cat是由第一行到最后一行连续显示到屏幕上,tac则是由最后一行到第一行反向在屏幕上显示出来。 命令举例 [root@localhost ~]# tac /etc/issueKernel \r on an \mCentOS release 5.11 (Final)# 这个文件是由最后一行先显示的

查看文件内容的指令:cat,tac,nl,more,less,head,tail,写入文件:echo

目录 cat 介绍 输入重定向 选项 -b -n -s  tac 介绍 输入重定向  nl 介绍 示例  more 介绍 选项 less 介绍 搜索文本 选项  head 介绍 示例 选项 -n tail 介绍 示例 选项 echo 介绍 输出重定向 追加重定向 cat 介绍 将标准输入(键盘输入)的内容打

《C++游戏编程入门》第7章 指针:Tic-Tac-Toe 2.0

《C++游戏编程入门》第7章 指针:Tic-Tac-Toe 2.0 7.1 指针基础07.pointing.cpp 7.2 指针和常量7.3 传递指针07.swap_pointer_ver.cpp07.inventory_displayer_pointer_ver.cpp 7.4 返回指针07.inventory_pointer.cpp 7.5 指针与数组的关系07.array_pas

具有Reactredux express的第一印象redux tic tac toe

I had no prior experience with redux, was looking for a chance to get into it a bit more. These scripts (English, Javascript) can help you too or may be you can help me by suggesting my mistakes