| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1532 人关注过本帖
标题:一个两人玩的五子棋游戏
取消只看楼主 加入收藏
xzghyd
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-3-29
收藏
 问题点数:0 回复次数:3 
一个两人玩的五子棋游戏
#include<iostream>
#include <conio.h>
using namespace std;

const int size=19;

void form(char data[][size]);               //棋盘生成函数
void putin(char data[size][size]);          //输入函数
int work(char data[size][size],int row,int col,int player,int *p);   //基本判断函数

int main()
{
    char data[size][size];
    int index;
 
    for(index=0;index<size*size;index++)
     *(*data+index)=' ';                    //棋盘初始化为空

    form(data);                             //打印棋盘
    putin(data);

    return 0;
}
void form(char data[][size])
{
    int row,col,index;
 
    cout<<"  ";
    for(index=0;index<size;index++)
    cout<<" "<<char(index+97)<<" ";
    cout<<endl;

    for(index=0;index<size;index++)
    {
        cout<<"  ";

        for(row=0;row<size;row++)
        cout<<"+--";

        cout<<"+"<<endl;                     //输出+--+--+--+--+--+--+--+--+
   
        cout<<char(index+97)<<" ";           

        for(col=0;col<size;col++)
        cout<<"| "<<data[index][col];

        cout<<"|"<<endl;                     //输出|  |  |  |  |  |  |  |  |
    }

        cout<<"  ";
        for(row=0;row<size;row++)
        cout<<"+--";

        cout<<"+"<<endl;
 }

void putin(char data[size][size])
{
    int row,col,number1=0,number2=0;     //number为游戏是否结束的标志
    char cw,cl;
    int UU1=0;
 
    while(1)
    {
        number1=1;
        cout<<"player1 put in @"<<endl;    //player1的输入属性
        cin>>cw>>cl;
        row=cw-97;col=cl-97;
        data[row][col]='@';

        if(work(data,row,col,1,&number1))
        {
            UU1=1;
            break;
        }
        system("cls");
        form(data);

        number2=1;
        cout<<"player2 put in &"<<endl;   //player2的输入属性
        cin>>cw>>cl;
        row=cw-97;col=cl-97;
        data[row][col]='&';

        if(work(data,row,col,2,&number2))
            break;
         
        system("cls");
        form(data);
    }

     system("cls");

     form(data);
     cout<<"GAME OVER"<<endl;

     if(UU1)
         cout<<"player1 胜利"<<endl;
     else
         cout<<"player2 胜利"<<endl;
}

int work(char data[size][size],const int row,const int col,int player,int *p)
{
    int i,j;
    char bj;

    if(player==1)bj='@';
    else bj='&';

 //垂直
    i=row-1;    //上            
    while(i>=0 && data[i][col]==bj)
    {
        (*p)++;i--;
    }

    i=row+1;    //下
    while(i<size && data[i][col]==bj)
    {
        (*p)++;i++;
    }

    if((*p)==5)
        return 1;
    else
        *p=1;

 //水平
    j=col+1;   //左
     while(j<size && data[row][j]==bj)
     {
         (*p)++;
         j++;
     }

     j=col-1;   //右

     while(j>=0 && data[row][j]==bj)
     {
         (*p)++;
         j--;
     }
     if((*p)==5)
         return 1;
     else
         *p=1;

   //右斜
    i=row-1;j=col+1;  //右上
    while(i>=0 && j<size && data[i][j]==bj)
    {
        (*p)++;
        i--;
        j++;
    }

    i=row+1;j=col-1;  //左下
    while(i<size && j>=0 && data[i][j]==bj)
    {(*p)++;
    i++;
    j--;
    }

    if((*p)==5)
        return 1;
    else
        *p=1;

    //左斜
    i=row-1;j=col-1;   //左上
     while(i>=0 && j>=0 && data[i][j]==bj)
     {
         (*p)++;
         i--;
         j--;
     }

     i=row+1;j=col+1;   //右下
     while(i<size && j<size && data[i][j]==bj)
     {
         (*p)++;
         i++;
         j++;
     }

     if((*p)==5)
         return 1;
     else
         *p=1;

      return 0;
}

大家给评价一下啊,不要打击我啊,我是菜鸟
搜索更多相关主题的帖子: 五子棋 游戏 
2008-09-28 01:50
xzghyd
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-3-29
收藏
得分:0 
size 好象太大了,呵呵,不好意思啊
2008-09-28 01:51
xzghyd
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-3-29
收藏
得分:0 
由于本人还不会五子棋的算法,所以还没有加电脑IQ,还希望大家多指点一下迷津,谢谢啊
2008-09-28 01:59
xzghyd
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2008-3-29
收藏
得分:0 
电脑IQ需要怎么判断下子的位置呢
2008-09-28 21:59
快速回复:一个两人玩的五子棋游戏
数据加载中...
 
   



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

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