电脑象棋

程序对程序

最早由宏碁计算机开始举办计算机象棋比赛，从 1988 年到1990 年止。另一个是计算机奥林匹亚竞赛中有计算机象棋的项目，从 1989 年办到1992 年暂停，2001 年起继续每年举办。最近几年计算机象棋发展越来越热络，2004 年起世界计算机象棋争霸赛每三年举办一次。中国机器博弈锦标赛 2006 年起开始每年举办。

人对程序

1985 年到1990 年宏碁计算机就曾办过人对计算机的竞赛。 之后偶有计算机程序参加人类的象棋比赛或检定赛，但时常遇到阻挠，譬如不予排名甚至不准参赛。 人脑对计算机象棋大赛自 1999 年开始每年举办。

协议/通信协议

为了让象棋程序与程序之间能够自动下棋，因此必须定出了一些共通协议（protocol），譬如棋盘如何表示、棋步如何表示、或是复杂一些的时间控制。比较早公开提出的有cxboard 及 浅红plugin spec。现在比较广为流行的是基于国际象棋协议修改而来的中国象棋通用引擎协议（UCCI）。

开局

由于人类已累积相当丰富的开局知识，因此开局纯用计算机计算是无法胜过人类的。普遍的做法是搜集棋谱，统计分析各种走法，制成开局数据库。更进一步则会通过人类专家订正开局库的内容/加入最新的开局研究成果。

残局

计算机象棋对残局的处理主要有两种方法，一是编写大量规则，当盘面匹配某些条件则调整评分函数，这个方法的优点是可以将棋谱或专家研究的结果编写入程序内，缺点是例外可能很多。另一种则是利用计算机强大的计算力与存储空间，穷举一个兵种所有的状况，做成数据库，优点是数据库内的数据都很精确（某个盘面的输赢，距离输赢步数），但缺点是建造数据库旷日费时，在实战中还不够实用。因此实战程序都是采用第一种方法，少数程序会再利用残局库作辅助。
残局库研究困难在于象棋棋规的处理，还有如何快速建造大数据库。