- 1、本文档共136页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言游戏程序及综合实例
C语言游戏程序及综合实例
【游戏规则】 游戏双方相互翻转对方棋子以最后棋盘上棋子多胜。一个8×8方格棋盘下在空格中间而不是围棋下在交叉点上。开始时棋盘正中有两两四个棋子交叉放置,总是先下子。横、竖、斜方向有一个自己棋子,则被夹在中间的全部翻转成为己棋子只有在可以翻转棋子的地方才可以子。骑士游历问题问题×n棋盘(如图3-14所示),一位骑士从初始位置(x0, y0)开始,按照“马跳日”规则在棋盘上移动。问:能否在n2(1步内遍历棋盘上的所有位置,即每个格子刚好游历一次,如果能,请找出这样的游历方案来。
6 八皇后问题
问题在一个×8的棋盘放置个皇后,要求每个皇后两两之间不冲在每一横列竖列斜列只有一个皇后。编写一个学生成绩管理程序。:
显示个学生的门科目的成绩、总分和平均分。
按总分由高到低进行排序。
输入一个学号,能该学生的姓名、各门功课的成绩。
#include graphics.h /*图形系统头文件*/
#define LEFT 0x4b00 /*光标左键值*/
#define RIGHT 0x4d00 /*光标右键值*/
#define DOWN 0x5000 /*光标下键值*/
#define UP 0x4800 /*光标上键值*/
#define ESC 0x011b /* Esc键值*/
#define ENTER 0x1c0d /* Enter键值*/
int Map[8][8] = {0}; /*用8×8的数组来描绘棋盘*/
int score1, score2; /*两位棋手各自的得分,占1格得1分*/
void PtoPGame(void); /*人人对战函数*/
void DrawChessboard(void); /*画棋盘函数*/
void SetChessColor(int x); /*设置棋子第一次的颜色*/
void RestoreChessColor(int x, int y); /*恢复原来棋盘状态*/
int ChessboardChange(int x, int y, int z);/*判断棋盘的变化*/
void CountScore(void); /*统计分数*/
void PrintScore(int n); /*输出成绩*/
void PrintWinner(void); /*输出胜利者信息*/
/******主函数*********/
void main(void)
{
int gd = DETECT, gr;
initgraph(gd, gr, ); /*初始化图形系统*/
DrawChessboard(); /*画棋盘*/
PtoPGame(); /*人人对战*/
closegraph(); /*关闭图形系统*/
}
void DrawChessboard() /*画棋盘*/
{
int i, j;
score1 = score2 = 0; /*棋手一开始得分都为0*/
setbkcolor(RED);
for (i=100; i=420; i+=40)
{
line(100, i, 420, i); /*画水平线*/
line(i, 100, i, 420); /*画垂直线*/
}
setcolor(0); /*取消圆周围的一圈东西*/
setfillstyle(SOLID_FILL, 14); /*黄色实体填充模式*/
fillellipse(500, 200, 15, 15); /*在显示得分的位置画棋*/
setfillstyle(SOLID_FILL, 1); /*蓝色实体填充模式*/
fillellipse(500, 300, 15, 15);
Map[3][3] = Map[4][4] = 1; /*初始两个蓝棋棋子*/
Map[3][4] = Map[4][3] = 2; /*初始两个黄棋棋子*/
setfillstyle(SOLID_FILL, YELLOW);
fillellipse(120+3*40, 120+3*40, 15, 15);
fillellipse(120+4*40, 120+4*40, 15, 15);
setfillstyle(SOLID_FILL, 1);
fillellipse(120+3*40, 120+4*40, 15, 15);
fillellipse(120+
文档评论(0)