| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1391 人关注过本帖
标题:井字游戏
只看楼主 加入收藏
captain2050
Rank: 2
等 级:论坛游民
帖 子:57
专家分:43
注 册:2016-7-15
结帖率:92.86%
收藏
 问题点数:0 回复次数:2 
井字游戏
这是我刚写的井字游戏,没写注释,如果有意见或问题可以跟贴
由于我用的是linux所以倒数第五行的清空缓冲区的那个函数在windows中不一定可用,注意一下。。。
程序代码:
#include<stdio.h>
#include<ctype.h>
int main(void)
{
    int winner,step,row,column,turn;
    char a[3][3],newgame;
    printf(" 1 | 2 | 3 \n");
    printf("---+---+---\n");
    printf(" 4 | 5 | 6 \n");
    printf("---+---+---\n");
    printf(" 7 | 8 | 9 \n");
    printf("游戏要开始了,先连成三个(横竖斜均可)的人胜利\n"
             "A是X,B是O\n\n");
    while(1){
    char a[3][3]={'1','2','3','4','5','6','7','8','9'};
    turn=0;winner=0;
    do
    {
        turn++;
        printf("It's %c's turn.Please enter a number\n",turn%2?'A':'B');
        scanf("%d",&step);
        step-=1;
        column=step%3;
        row=step/3;
        a[row][column]=turn%2?'X':'O';
        printf(" %c | %c | %c \n",a[0][0],a[0][1],a[0][2]);
        printf("---+---+---\n");
        printf(" %c | %c | %c \n",a[1][0],a[1][1],a[1][2]);
        printf("---+---+---\n");
        printf(" %c | %c | %c \n",a[2][0],a[2][1],a[2][2]);
        if(a[0][0]==a[0][1]&&a[0][0]==a[0][2]) winner=turn%2?1:2;
        else if(a[1][0]==a[1][1]&&a[1][1]==a[1][2]) winner=turn%2?1:2;
        else if(a[2][0]==a[2][1]&&a[2][1]==a[2][2]) winner=turn%2?1:2;
        else if(a[0][0]==a[1][0]&&a[2][0]==a[1][0]) winner=turn%2?1:2;
        else if(a[0][1]==a[1][1]&&a[1][1]==a[2][1]) winner=turn%2?1:2;
        else if(a[0][2]==a[1][2]&&a[1][2]==a[2][2]) winner=turn%2?1:2;
        else if(a[0][0]==a[1][1]&&a[1][1]==a[2][2]) winner=turn%2?1:2;
        else if(a[0][2]==a[1][1]&&a[1][1]==a[2][0]) winner=turn%2?1:2;
        if(turn==9)
            break;
    }
    while(winner==0);
    if(winner!=0)
        printf("winner is %c\n",winner==1?'A':'B');
    else
        printf("和\n");
    printf("wanna another game?\n");
    setbuf(stdin,NULL);
    scanf("%c",&newgame);
    if(tolower(newgame)=='n')
        break;
}}


[此贴子已经被作者于2016-7-21 07:44编辑过]

搜索更多相关主题的帖子: windows linux 缓冲区 五行 游戏 
2016-07-21 07:41
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:0 
字母“O”和数字“0”长得太像,在这个游戏里,有那么一丢丢不够清晰,是不是可以考虑一些别的字符。。




[此贴子已经被作者于2016-7-21 23:36编辑过]


φ(゜▽゜*)♪
2016-07-21 23:17
xmxxcds
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-7-20
收藏
得分:0 
1 | 2 | 3
---+---+---
 4 | 5 | 6
---+---+---
 7 | 8 | 9
游戏要开始了,先连成三个(横竖斜均可)的人胜利
A是X,B是O

It's A's turn.Please enter a number
5
 1 | 2 | 3
---+---+---
 4 | X | 6
---+---+---
 7 | 8 | 9
It's B's turn.Please enter a number
5
 1 | 2 | 3
---+---+---
 4 | O | 6
---+---+---
 7 | 8 | 9
It's A's turn.Please enter a number
5
 1 | 2 | 3
---+---+---
 4 | X | 6
---+---+---
 7 | 8 | 9
It's B's turn.Please enter a number
5
 1 | 2 | 3
---+---+---
 4 | O | 6
---+---+---
 7 | 8 | 9
It's A's turn.Please enter a number
2016-07-22 19:42
快速回复:井字游戏
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057623 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved