求助用c++做包含图形界面的八皇后游戏程序!!

来源:百度知道 编辑:UC知道 时间:2024/05/21 17:03:24
本课程设计要求学生在Windows操作系统环境下实现,操作界面宜采用图形界面,使用C++ Builder或其他面向对象的开发工具为开发平台。
具体要求是:程序启动后显示一张8*8的棋盘,然后游戏者可以用点击的方式在棋盘上布下棋子。如果布下的棋子合法,则增加10分并可以继承布下一个棋子。如果布下的棋子不合法,即当前布下的棋子A与已布下的棋子B有冲突,则使用闪烁的方式显示A与B。按游戏者在棋盘上布下的合法棋子数或在规定的时限内生成的合法布局数给出游戏者的得分数。如果下满8个棋子,可得满分100分。
游戏规则要求不能在同一行或同一列或同一条对角线上放置二个或二个以上的棋子,但每行都必须放置一个棋子。

八皇后问题

定义类:

class QUEENS
{
int count;
int queen [10], column[20],left[20],right[20];
public:
QUEENS();
void try1(int i);
void print();
};

定义类界面:

#include"ba4.h"
#include<stdio.h>
QUEENS::QUEENS()
{
int i;
for (i=1;i<=16;i++)
column[i]=left[i]=right[i]=1;
count=0;
}
void QUEENS::print()
{
int j,k;
printf("No.%d \n ",++count);
for (j=1;j<=8;j++)
printf("%2d",queen[j]);
printf("\n-----------------\n");
for (j=1;j<=8;j++)
{
for(k=1 ;k<=8;k++)
if(k!=queen[j])
printf("| ");
else
printf("|%d",0);
printf("|\n");

}
printf("回车键继续!\n\n");
getchar();
}
void QUEENS::try1(int i)
{
int j;
for (j=1;j<=8;j++)
if (column