| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1472 人关注过本帖
标题:求助,,中国象棋 走子功能 如何写
只看楼主 加入收藏
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:406
专家分:190
注 册:2021-4-9
结帖率:97.26%
收藏
已结贴  问题点数:20 回复次数:3 
求助,,中国象棋 走子功能 如何写
求助,,中国象棋,看视频学了三天了。。。。。

求走棋功能函数。
求棋规,限制走棋功能函数。。。。

看视频学了三天。只弄出来棋盘界面了,棋子还不能走。。。
在这时说这样,有“念完了经就打和尚”之嫌。。。
可我的水平真的很有限。。。。
视频中的讲师讲得,总是让我无语。。。
”一加一 ,等于二“ 的问题他可以讲半天。。。
真正听不懂的地方,他总是 ”一讲而过“从不细讲。。。。
程序测试,他自己也频繁出错。。。。
我真的好无语。。。。

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

ChineseChess.rar (1.17 KB)


搜索更多相关主题的帖子: 等于 函数 中国 视频 出错 
2021-12-14 21:24
追梦人zmrghy
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:406
专家分:190
注 册:2021-4-9
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<easyx.h>
#define ROW 10
#define COL 9
#define INTERVAL 35        //边距
#define GRID_SIZE 70    //格子宽度
enum Pieces        //棋子
{
    NONE = -1,
    俥,马,相,仕,帥,炮,兵,    //红子
    車,馬,象,士,将,砲,卒,    //绿子
    BEGIN,END,
};
//给id赋值
enum Pieces greenChess[] = {車,馬,象,士,将,砲,卒};
enum Pieces redChess[] = {俥,马,相,仕,帥,炮,兵};
//绘制时转化成字符串
const char* ChessName[]= {"","","","","","","","","","","","","",""};
//每一个棋子的属性
struct Chess
{
    enum Pieces id;        //棋子名称
    DWORD type;            //棋子类型,红?绿?
    short x;
    short y;
    bool  isRiver;            //是否过河
};
//游戏地图
struct Chess map[ROW][COL];

//初始化数据
void init()
{
    //遍历地图
    for(size_t i=0; i<ROW; i++)
    {
        size_t temp = 0;
        for(size_t k=0; k<COL; k++)
        {
            map[i][k].id = NONE;
            if(i<=4)        //绿棋子
            {
                map[i][k].type = GREEN;
                if(i == 0)        //放置第一行的棋子
                {
                    if(k<=4)
                    {
                        temp=k;
                    }
                    else
                    {
                        temp = 4-(k-4);
                    }
                    map[i][k].id=greenChess[temp];
                }
                if(i==2 && (k==1 || k==7))
                {
                    map[i][k].id=greenChess[5];
                }
                if(i==3 && (k%2) ==0)
                {
                    map[i][k].id=greenChess[6];
                }
            }
            
            else            //红棋子
            {
                map[i][k].type = RED;
                if(i == 9)        //放置第一行的棋子
                {
                    if(k<=4)
                    {
                        temp=k;
                    }
                    else
                    {
                        temp = 4-(k-4);
                    }
                    map[i][k].id=redChess[temp];
                }
                if(i==7 && (k==1 || k==7))
                {
                    map[i][k].id=redChess[5];
                }
                if(i==6 && (k%2) ==0)
                {
                    map[i][k].id=redChess[6];
                }
            }
            map[i][k].isRiver = false;
            map[i][k].x = k*GRID_SIZE+INTERVAL;
            map[i][k].y = i*GRID_SIZE+INTERVAL;
        }
    }
}
//绘制
void draw()
{
    setlinestyle(PS_SOLID,3);
    //设置文字样式
    settextstyle(36,0,"楷体");
    for(size_t i=0; i<ROW; i++)
    {
        for(size_t k=0; k<COL; k++)
        {
            if(map[i][k].id == NONE)
                continue;
            settextcolor(map[i][k].type);
            setlinecolor(map[i][k].type);
            //绘制棋子
            fillcircle(map[i][k].x, map[i][k].y, 30);
            outtextxy(map[i][k].x-18, map[i][k].y-18, ChessName[map[i][k].id]);
        }
    }
}
void main()
{
    //创建图形窗口
    initgraph(632,700);
    //设置背景模式
    setbkmode(TRANSPARENT);
    //贴棋盘
    IMAGE img_board;
    loadimage(&img_board,"./res/ChessBoard.png");
    putimage(0,0,&img_board);
    init();
    draw();
    getchar();
}
2021-12-15 04:43
diycai
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:147
专家分:895
注 册:2021-5-18
收藏
得分:14 
用纯C做动画游戏,你看的是啥视频,这老师坏得很。
2021-12-16 10:59
by67895
Rank: 2
等 级:论坛游民
威 望:2
帖 子:13
专家分:20
注 册:2021-12-22
收藏
得分:0 
回复 3楼 diycai
他用的是VC++2010,怎么还用c语言,直接用VC++,使用单文档创建视图应用程序,走子需要对每个棋子的走向进行规定。若是人机对战,还得研究各种套路走法,需要更多的时间去研究

[此贴子已经被作者于2021-12-22 06:03编辑过]

2021-12-22 05:52
快速回复:求助,,中国象棋 走子功能 如何写
数据加载中...
 
   



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

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