CF 3C Tic-tac-toe

原创 2012年03月29日 19:41:45

考虑全面!!

#include <iostream>
using namespace std;
char m[3][3];
bool fwin()
{
    if((m[0][0] == m[0][1]&&m[0][1]==m[0][2]&&m[0][0] == 'X')||
       (m[1][0] == m[1][1]&&m[1][1]==m[1][2]&&m[1][0] == 'X')||
       (m[2][0] == m[2][1]&&m[2][1]==m[2][2]&&m[2][0] == 'X')||
       (m[0][0] == m[1][0]&&m[1][0]==m[2][0]&&m[0][0] == 'X')||
       (m[0][1] == m[1][1]&&m[1][1]==m[2][1]&&m[0][1] == 'X')||
       (m[0][2] == m[1][2]&&m[1][2]==m[2][2]&&m[0][2] == 'X')||
       (m[0][0] == m[1][1]&&m[1][1]==m[2][2]&&m[0][0] == 'X')||
       (m[0][2] == m[1][1]&&m[1][1]==m[2][0]&&m[0][2] == 'X'))
       return 1;
    else return 0;
}
bool swin()
{
    if((m[0][0] == m[0][1]&&m[0][1]==m[0][2]&&m[0][0] == '0')||
       (m[1][0] == m[1][1]&&m[1][1]==m[1][2]&&m[1][0] == '0')||
       (m[2][0] == m[2][1]&&m[2][1]==m[2][2]&&m[2][0] == '0')||
       (m[0][0] == m[1][0]&&m[1][0]==m[2][0]&&m[0][0] == '0')||
       (m[0][1] == m[1][1]&&m[1][1]==m[2][1]&&m[0][1] == '0')||
       (m[0][2] == m[1][2]&&m[1][2]==m[2][2]&&m[0][2] == '0')||
       (m[0][0] == m[1][1]&&m[1][1]==m[2][2]&&m[0][0] == '0')||
       (m[0][2] == m[1][1]&&m[1][1]==m[2][0]&&m[0][2] == '0'))
       return 1;
    else return 0;
}
int main()
{
    int i,j,f = 0,s = 0;
    bool full = 1;
    for(i = 0;i < 3;i ++)
    {
        for(j = 0;j < 3;j ++)
        {
            cin>>m[i][j];
            if(m[i][j] =='.') full = 0;
            else if(m[i][j] == 'X') f ++;
            else s ++;
        }
    }
    if(f == s||f == s + 1)
    {
        if(full)
        {
            if(fwin()) {if(f == s+1){if(swin())cout<<"illegal"<<endl;else  cout<<"the first player won"<<endl;}else cout<<"illegal"<<endl;}
            else if(swin()) {if(f==s+1)cout<<"illegal"<<endl;else cout<<"the second player won"<<endl;}
            else cout<<"draw"<<endl;
        }
        else
        {
            if(fwin())  {if(f == s+1){if(swin())cout<<"illegal"<<endl;else  cout<<"the first player won"<<endl;}else cout<<"illegal"<<endl;}
            else if(swin()) {if(f==s+1)cout<<"illegal"<<endl;else cout<<"the second player won"<<endl;}
            else if(f == s) cout<<"first"<<endl;
            else cout<<"second"<<endl;
        }
    }
    else cout<<"illegal" <<endl;

}


CF 3C Tic-tac-toe 井字棋 简洁代码

题目大意就是给你一个 3*3 棋盘,要你判断 A,B 哪个选手赢了,或者该谁下了,或者平局,或者棋盘不符合规则。 这里分六类  (假设A先走) 1. 输出 the first player won...
  • u014311181
  • u014311181
  • 2015年11月07日 19:35
  • 268

华为荣耀3C彻底root的方法

首先你要用任意一款一键root软件将手机root掉,现在的root工具都很容易在一分钟之内搞定。 但是这样的root都不彻底,你无法修改很多系统文件,比如/system/build.prop,想修改...
  • u010035971
  • u010035971
  • 2016年01月27日 17:26
  • 1603

程序实践系列之Tic-Tac-Toe实现

程序编程实训Tic-Tac-Toe实现.关于Image Engineering& Computer Vision更多讨论与交流,敬请关注本博客和新浪微博songzi_tea....
  • utimes
  • utimes
  • 2014年08月10日 14:49
  • 3304

【机器学习算法-python实现】协同过滤(cf)的三种方法实现

(转载请注明出处:http://blog.csdn.net/buptgshengod)
  • gshengod
  • gshengod
  • 2014年05月16日 11:47
  • 4950

汇编中有符号与无符号数以及CF,OF标志位的区分

汇编中有符号与无符号数以及CF,OF标志位的区分
  • zrf2112
  • zrf2112
  • 2016年05月01日 20:04
  • 4229

CF卡技术详解——笔记

知识太全面了,摘抄摘不完,还是粘过来加上注释和笔记吧。 重点以及断句用加粗,注释用红括号。 一.CF卡技术及规格 一.CF卡技术及规格   ...
  • huqinweI987
  • huqinweI987
  • 2013年12月04日 21:45
  • 15542

基于用户的协同过滤(user-based CF)推荐系统【1】

一个基于用户的协同过滤推荐系统(user-based CF),给他加了一个用来计算该算法准确率和召回率的代码文件。...
  • u010454636
  • u010454636
  • 2016年07月06日 20:40
  • 3942

构建CF卡Linux系统的几个常见难题

关于如何在cf卡上构建linux ,从网上可以找到很多文章,如:许德新 《嵌入式Linux在PC104平台上的构建与实现》等等。这里主要介绍我在cf卡上构建linux系统中碰到的问题和 解决方法。采用...
  • yandaqijian
  • yandaqijian
  • 2014年12月16日 16:24
  • 683

[教程] 教你如何实现荣耀3C支持OTG功能,解决荣耀3C的唯一缺点

教你如何实现荣耀3C支持OTG功能,解决荣耀3C的唯一缺点  转自 朕爱3C 前言: OTG是手机非常非常实用的功能,能接移动硬盘、U盘(这个功能相当于你的手机可以无限扩展内存卡了,什么8...
  • small_rice_
  • small_rice_
  • 2014年01月10日 17:35
  • 19440

cf div2 #444 (ABC)(D已补)

ABC三道大水题,自信满满锁了溜出自习室回寝睡觉,第二天起来发现变成两道题了,哭唧唧。 回头翻代码吃了一口大翔,少写了两行被自己gank了。 然后由于出题人的数据放错了导致D题一开始没人过,E和F零星...
  • Stupid_Turtle
  • Stupid_Turtle
  • 2017年11月04日 10:47
  • 292
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CF 3C Tic-tac-toe
举报原因:
原因补充:

(最多只允许输入30个字)