以下是贪吃蛇源代码:
#includeiostream.h
#includewindows.h
#includetime.h
#includestdlib.h
#includeconio.h
#define N 21
void gotoxy(int x,int y)//位置函数{
COORD pos;
pos.X=2*x;
pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
void color(int a)//颜色函数{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果)
int i,j;//初始化围墙
int wall[N+2][N+2]={{0}};
for(i=1;i=N;i++)
for(j=1;j=N;j++)
wall[i][j]=1;
color(11);
for(i=0;iN+2;i++)
for(j=0;jN+2;j++)
if(wall[i][j])
cout"■";
else cout"□" ;
coutendl;
gotoxy(N+3,1);//显示信息
color(20);
cout"按 W S A D 移动方向"endl;
gotoxy(N+3,2);
color(20);
cout"按任意键暂停"endl;
gotoxy(N+3,3);
color(20);
cout"得分:"endl;
apple[0]=rand()%N+1;//苹果
apple[1]=rand()%N+1;
gotoxy(apple[0],apple[1]);
color(12);
cout"●"endl;
int main()
int i,j;
int** snake=NULL;
int apple[2];
int score=0;
int tail[2];
int len=3;
char ch='p';
srand((unsigned)time(NULL));
init(apple);
snake=(int**)realloc(snake,sizeof(int*)*len);
for(i=0;ilen;i++)
snake[i]=(int*)malloc(sizeof(int)*2);
for(i=0;ilen;i++)
snake[i][0]=N/2;
snake[i][1]=N/2+i;
gotoxy(snake[i][0],snake[i][1]);
color(14);
cout"★"endl;
while(1)//进入消息循环
tail[0]=snake[len-1][0];
tail[1]=snake[len-1][1];
gotoxy(tail[0],tail[1]);
color(11);
cout"■"endl;
for(i=len-1;i0;i--)
snake[i][0]=snake[i-1][0];
snake[i][1]=snake[i-1][1];
gotoxy(snake[i][0],snake[i][1]);
color(14);
cout"★"endl;
if(kbhit())
gotoxy(0,N+2);
ch=getche();
switch(ch)
case 'w':snake[0][1]--;break;
case 's':snake[0][1]++;break;
case 'a':snake[0][0]--;break;
case 'd':snake[0][0]++;break;
default: break;
gotoxy(snake[0][0],snake[0][1]);
color(14);
cout"★"endl;
Sleep(abs(200-0.5*score));
if(snake[0][0]==apple[0]snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1
score++;
len++;
snake=(int**)realloc(snake,sizeof(int*)*len);
snake[len-1]=(int*)malloc(sizeof(int)*2);
apple[0]=rand()%N+1;
apple[1]=rand()%N+1;
gotoxy(apple[0],apple[1]);
color(12);
cout"●"endl;
gotoxy(N+5,3);
color(20);
coutscoreendl;
if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败
gotoxy(N/2,N/2);
color(30);
cout"失败!!!"endl;
for(i=0;ilen;i++)
free(snake[i]);
Sleep(INFINITE);
exit(0);
return 0;
最浪漫的编程代码可复制的编程代码有如下:
?php
for($t=0;$t360;$t++)
$y=2*cos($t)-cos(2*$t);//笛卡尔心形曲线函数
$x=2*sin($t)-sin(2*$t);
$x+=3;
$y+=3;
$x*=70;
$y*=70;
$x=round($x);
$y=round($y);
$str[]=$x;
$y=$y+2*(180-$y);//图像上下翻转
$x=$y;
$str[]=$x;
前面这段代码是用函数构造图形
$im=imagecreate(500,500);//创建图形500*500
$black=imagecolorallocate($im,0,0,0);
$red=imagecolorallocate($im,255,0,0);//设置图形颜色
imagepolygon($im,$str,360,$red);
imagestring($im,5,190,190,"love",$red);//输出字符串
header('Content-type:image/gif');//通知浏览器输出的是gif图片
imagegif($im);//输出图片
imagedestroy($im);//销毁
编程是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、 *** 和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
五子棋的代码:
#includeiostream
#includestdio.h
#includestdlib.h
#include time.h
using namespace std;
const int N=15; //15*15的棋盘
const char ChessBoardflag = ' '; //棋盘标志
const char flag1='o'; //玩家1或电脑的棋子标志
const char flag2='X'; //玩家2的棋子标志
typedef struct Coordinate //坐标类
int x; //代表行
int y; //代表列
}Coordinate;
class GoBang //五子棋类
public:
GoBang() //初始化
InitChessBoard();
void Play() //下棋
Coordinate Pos1; // 玩家1或电脑
Coordinate Pos2; //玩家2
int n = 0;
while (1)
int mode = ChoiceMode();
while (1)
if (mode == 1) //电脑vs玩家
ComputerChess(Pos1,flag1); // 电脑下棋
if (GetVictory(Pos1, 0, flag1) == 1) //0表示电脑,真表示获胜
break;
PlayChess(Pos2, 2, flag2); //玩家2下棋
if (GetVictory(Pos2, 2, flag2)) //2表示玩家2
break;
else //玩家1vs玩家2
PlayChess(Pos1, 1, flag1); // 玩家1下棋
if (GetVictory(Pos1, 1, flag1)) //1表示玩家1
break;
PlayChess(Pos2, 2, flag2); //玩家2下棋
if (GetVictory(Pos2, 2, flag2)) //2表示玩家2
break;
cout "***再来一局***" endl;
cout "y or n :";
char c = 'y';
cin c;
if (c == 'n')
break;
protected:
int ChoiceMode() //选择模式
int i = 0;
system("cls"); //系统调用,清屏
InitChessBoard(); //重新初始化棋盘
cout "***0、退出 1、电脑vs玩家 2、玩家vs玩家***" endl;
while (1)
cout "请选择:";
cin i;
if (i == 0) //选择0退出
exit(1);
if (i == 1 || i == 2)
return i;
cout "输入不合法" endl;
void InitChessBoard() //初始化棋盘
for (int i = 0; i N + 1; ++i)
for (int j = 0; j N + 1; ++j)
_ChessBoard[i][j] = ChessBoardflag;
void PrintChessBoard() //打印棋盘,这个函数可以自己调整
system("cls"); //系统调用,清空屏幕
for (int i = 0; i N+1; ++i)
for (int j = 0; j N+1; ++j)
if (i == 0) //打印列数字
if (j!=0)
printf("%d ", j);
else
printf(" ");
else if (j == 0) //打印行数字
printf("%2d ", i);
else
if (i N+1)
printf("%c |",_ChessBoard[i][j]);
cout endl;
cout " ";
for (int m = 0; m N; m++)
printf("--|");
cout endl;
void PlayChess(Coordinate pos, int player, int flag) //玩家下棋
PrintChessBoard(); //打印棋盘
while (1)
printf("玩家%d输入坐标:", player);
cin pos.x pos.y;
if (JudgeValue(pos) == 1) //坐标合法
break;
cout "坐标不合法,重新输入" endl;
_ChessBoard[pos.x][pos.y] = flag;
void ComputerChess(Coordinate pos, char flag) //电脑下棋
PrintChessBoard(); //打印棋盘
int x = 0;
int y = 0;
while (1)
x = (rand() % N) + 1; //产生1~N的随机数
srand((unsigned int) time(NULL));
y = (rand() % N) + 1; //产生1~N的随机数
srand((unsigned int) time(NULL));
if (_ChessBoard[x][y] == ChessBoardflag) //如果这个位置是空的,也就是没有棋子
break;
pos.x = x;
pos.y = y;
_ChessBoard[pos.x][pos.y] = flag;
int JudgeValue(const Coordinate pos) //判断输入坐标是不是合法
if (pos.x 0 pos.x = Npos.y 0 pos.y = N)
if (_ChessBoard[pos.x][pos.y] == ChessBoardflag)
return 1; //合法
return 0; //非法
int JudgeVictory(Coordinate pos, char flag) //判断有没有人胜负(底层判断)
int begin = 0;
int end = 0;
int begin1 = 0;
int end1 = 0;
//判断行是否满足条件
(pos.y - 4) 0 ? begin = (pos.y - 4) : begin = 1;
(pos.y + 4) N ? end = N : end = (pos.y + 4);
for (int i = pos.x, j = begin; j + 4 = end; j++)
if (_ChessBoard[i][j] == flag_ChessBoard[i][j + 1] == flag
_ChessBoard[i][j + 2] == flag_ChessBoard[i][j + 3] == flag
_ChessBoard[i][j + 4] == flag)
return 1;
//判断列是否满足条件
(pos.x - 4) 0 ? begin = (pos.x - 4) : begin = 1;
(pos.x + 4) N ? end = N : end = (pos.x + 4);
for (int j = pos.y, i = begin; i + 4 = end; i++)
if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j] == flag
_ChessBoard[i + 2][j] == flag_ChessBoard[i + 3][j] == flag
_ChessBoard[i + 4][j] == flag)
return 1;
int len = 0;
//判断主对角线是否满足条件
pos.x pos.y ? len = pos.y - 1 : len = pos.x - 1;
if (len 4)
len = 4;
begin = pos.x - len; //横坐标的起始位置
begin1 = pos.y - len; //纵坐标的起始位置
pos.x pos.y ? len = (N - pos.x) : len = (N - pos.y);
if (len4)
len = 4;
end = pos.x + len; //横坐标的结束位置
end1 = pos.y + len; //纵坐标的结束位置
for (int i = begin, j = begin1; (i + 4 = end) (j + 4 = end1); ++i, ++j)
if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j + 1] == flag
_ChessBoard[i + 2][j + 2] == flag_ChessBoard[i + 3][j + 3] == flag
_ChessBoard[i + 4][j + 4] == flag)
return 1;
//判断副对角线是否满足条件
(pos.x - 1) (N - pos.y) ? len = (N - pos.y) : len = pos.x - 1;
if (len 4)
len = 4;
begin = pos.x - len; //横坐标的起始位置
begin1 = pos.y + len; //纵坐标的起始位置
(N - pos.x) (pos.y - 1) ? len = (pos.y - 1) : len = (N - pos.x);
if (len4)
len = 4;
end = pos.x + len; //横坐标的结束位置
end1 = pos.y - len; //纵坐标的结束位置
for (int i = begin, j = begin1; (i + 4 = end) (j - 4 = end1); ++i, --j)
if (_ChessBoard[i][j] == flag_ChessBoard[i + 1][j - 1] == flag
_ChessBoard[i + 2][j - 2] == flag_ChessBoard[i + 3][j - 3] == flag
_ChessBoard[i + 4][j - 4] == flag)
return 1;
for (int i = 1; i N + 1; ++i) //棋盘有没有下满
for (int j =1; j N + 1; ++j)
if (_ChessBoard[i][j] == ChessBoardflag)
return 0; //0表示棋盘没满
return -1; //和棋
bool GetVictory(Coordinate pos, int player, int flag) //对JudgeVictory的一层封装,得到具体那个玩家获胜
int n = JudgeVictory(pos, flag); //判断有没有人获胜
if (n != 0) //有人获胜,0表示没有人获胜
PrintChessBoard();
if (n == 1) //有玩家赢棋
if (player == 0) //0表示电脑获胜,1表示玩家1,2表示玩家2
printf("***电脑获胜***\n");
else
printf("***恭喜玩家%d获胜***\n", player);
else
printf("***双方和棋***\n");
return true; //已经有人获胜
return false; //没有人获胜
private:
char _ChessBoard[N+1][N+1];
扩展资料:
设计思路
1、进行问题分析与设计,计划实现的功能为,开局选择人机或双人对战,确定之后比赛开始。
2、比赛结束后初始化棋盘,询问是否继续比赛或退出,后续可加入复盘、悔棋等功能。
3、整个过程中,涉及到了棋子和棋盘两种对象,同时要加上人机对弈时的AI对象,即涉及到三个对象。
需锁定目标才能打开防御雨伞 默认键位也就是按 Caps Lock 锁定怪物 E 键打开防御雨伞 Tab可切换锁定目标
【西安咸阴群众否收费看爱偶艺 一个月】其真前些日子劣酷也上线了“西安群众收费看”限时收费私损铺播运动 (露咸阴)。 那波操做有点相似 于鸿星我克捐钱 行为 ,当然每一野的作法战力度皆纷歧 样。没有 晓得会有更多望频网站跟入吗必修 【西安咸阴群众否收费看爱偶艺 一个月】 一月 七日,爱偶艺VIP...
京东 六 一 八年外年夜 促做为京东运动 力度最年夜 的一个买物节,天然 是遭到许多 人存眷 的,有些小同伴 一晚便念孬要正在京东 六 一 八下面购甚么器械 了,借有些小同伴 连本年 京东 六 一 八怎么个廉价 法皆没有 晓得,上面便由百思特小编去给年夜 野说说吧!...
正在资产页点入BCH币种详情,私司的内涵 代价 的剖析 。如今 的阅批价钱 是 五 四00元多一点。今朝 便有一种进修 的要领 :鸣作搬砖。便是说上市私司的股票的价钱 币市取原,怎么分.本日 的阅批价钱 是若干 ?尔看到每一一野。 三线着花 ,那些人 对于阅批止情会有较年夜 影响。例如以太坊,其它的...
喷鼻 菜,正在咱们那面鸣芜荽喷鼻 菜的栽种 要领 。果有一种特殊 孬味的喷鼻 气。年夜 野皆鸣它喷鼻 菜。喷鼻 菜是年夜 寡调味菜,无论鸡,鸭,鱼,年夜 肉等菜,作孬时总爱搁一点儿喷鼻 菜,看着美不雅 ,吃着喷鼻 。是饭铺 战野户弗成 短少的调味菜。 正在咱们农村,野野户户都邑 种一小畦喷鼻...
一 七日散粹:“TMD”、“SEX”是甚么意义? 二00 五年 一 一月 一 七日 一 六: 一0群众网群众日报社论古代快报:“TMD”、“SEX”是甚么意义?个文化的社会应该是严容的。如今 尔国在构修协调 社会,严容是协调 的基 一 七日散粹:“TMD”、“SEX”是甚么意义? ...
温顺 终局 | 二0 一 八年 八月0 九日0 八:0 七最好配色圆案,蓝色。对付 橙色,最佳的色彩 是蓝色。当然,其实不是说任何的蓝色皆配橙色,最佳是比拟 深的暖色,好比 深蓝或者者湖蓝。如许 ,橙色便没有会隐患上这么隐眼,而是战蓝色一路 隐患上温和 天然 。次佳配色,金色。假如 没有念橙色跳太多...