热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

C语言实现推箱子小游戏

这篇文章主要为大家详细介绍了C语言实现推箱子小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

推箱子是一款非常经典的游戏,我们一起来实现它吧!

一、要完成这个游戏,首先要知道实现那些功能,需要哪些知识点。

1.实现图形的界面*

二维数组,初始化赋值,图形库贴图

2.人物的移动

for循环,switch,以及人物推动箱子等等一切逻辑的判断!
人物往前走的时候,遇到的情况:
(1表示围墙,0表示空地,2表示人,3表示目的地,4表示箱子,5表示箱子进入目的地,6表示人进入目的地)
①.人物面前是空地,人往前走,对人原本位置进行判断,如果站在目的地就是3,如果站在空地就是0,进行赋值
②.人面前是站在空地上的箱子,再判断箱子的面前是空地还是空的目的地,箱子往前走,人往前走,站在原本箱子呆的地方,人站在空地上,人原本的位置也要进行判断,再赋值
③:人面前是空的目的地,人进入空目的地,对人原本的位置进行判断,人可以站在空地也可以站在空的目的地上
④:人面前是进入目的地的箱子,判断箱子的面前是什么,空地还是空目的地,箱子往前走,人进入箱子原本的位置,箱子离开了,人也就是进入空目的地,再判断人原本的位置,进行赋值

3.游戏的胜利条件

判断胜利的函数,判断失败的条件

4.第一关胜利之后,会自动换关

5.播放音乐

6.悔棋功能:

*用另一个数组,保存我们人物移动的时候,还没动的时候的位置,如果要悔棋,就替换呢元素

二、运行结果给大家看看

三、接下面来编写代码

/************************************************************************
* 项目名称:推箱子
* 项目描述:按键操作
* 项目环境:VS2013
* 生成日期:2019-11-20
* 作者所属:追梦
*************************************************************************/
#include
#include
#include
#include//_getch()函数的头文件
#include
#pragma comment(lib,"winmm.lib")//添加库,音乐
int arr[3][10][10] =
{
 {
 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
 { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1 },
 { 1, 0, 0, 1, 0, 0, 0, 0, 0, 1 },
 { 1, 0, 0, 0, 0, 4, 0, 0, 0, 1 },
 { 1, 0, 0, 0, 0, 2, 4, 3, 0, 1 },
 { 1, 0, 0, 0, 0, 0, 4, 0, 0, 1 },
 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
 { 1, 0, 1, 0, 0, 1, 0, 1, 1, 1 },
 { 1, 3, 1, 0, 0, 0, 0, 0, 3, 1 },
 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
 },
 {
 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
 { 1, 3, 0, 1, 0, 0, 0, 0, 3, 1 },
 { 1, 0, 0, 1, 0, 0, 4, 0, 0, 1 },
 { 1, 0, 0, 1, 0, 4, 0, 0, 0, 1 },
 { 1, 0, 0, 1, 0, 2, 0, 1, 1, 1 },
 { 1, 4, 0, 1, 0, 0, 4, 0, 0, 1 },
 { 1, 0, 0, 0, 0, 3, 0, 0, 0, 1 },
 { 1, 0, 1, 0, 0, 1, 0, 1, 1, 1 },
 { 1, 3, 1, 0, 0, 1, 0, 1, 1, 1 },
 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
 },
 {
 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
 { 1, 1, 3, 1, 0, 0, 0, 3, 0, 1 },
 { 1, 1, 0, 1, 0, 0, 0, 0, 0, 1 },
 { 1, 1, 0, 0, 0, 4, 0, 0, 0, 1 },
 { 1, 1, 0, 0, 4, 2, 4, 0, 0, 1 },
 { 1, 1, 1, 1, 0, 0, 4, 0, 0, 1 },
 { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1 },
 { 1, 0, 1, 0, 0, 1, 0, 1, 1, 1 },
 { 1, 3, 4, 0, 0, 3, 0, 0, 3, 1 },
 { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
 },
};//这个关卡难易程度自己改

int map[10][10];//游玩时候的地图
int map1[10][10];//保存移动前的数组的值
IMAGE image[6];//图片数组
int life = 0;//判断游戏胜利
int level = 0;//第几关

void drawMenu()
{
 initgraph(640, 450);
 setbkcolor(WHITE);
 cleardevice();
 setfillcolor(BLUE);
 settextstyle(30, 0, "宋体");
 setbkmode(TRANSPARENT);
 fillrectangle(240, 100, 380, 150);
 fillrectangle(240, 100 + 60, 380, 150 + 60);
 outtextxy(240 + 13, 100 + 13, "开始游戏");
 outtextxy(240 + 13, 100 + 13 + 60, "退出游戏");
 settextcolor(RED);
 outtextxy(130, 280, "追梦团队拼图游戏v1.2.0版本");
 MOUSEMSG m;
 while (1)
 {
 m = GetMouseMsg();
 if (m.x >= 240 && m.x <= 380 && m.y >= 100 && m.y <= 150)
 {
 setlinecolor(BLACK);
 rectangle(240 - 5, 100 - 5, 380 + 5, 150 + 5);
 if (m.uMsg == WM_LBUTTONDOWN)
 {
 break;
 }
 }
 else if (m.x >= 240 && m.x <= 380 && m.y >= 160 && m.y <= 210)
 {
 setlinecolor(BLACK);
 rectangle(240 - 5, 160 - 5, 380 + 5, 210 + 5);
 if (m.uMsg == WM_LBUTTONDOWN)
 {
 exit(0);
 }
 }
 else
 {
 setlinecolor(WHITE);
 rectangle(240 - 5, 100 - 5, 380 + 5, 150 + 5);
 rectangle(240 - 5, 160 - 5, 380 + 5, 210 + 5);
 }
 }
 closegraph();
}
//初始化地图
void init()
{
 for (int i = 0; i <10; i++)
 {
 for (int j = 0; j <10; j++)
 {
 map[i][j] = arr[level][i][j];
 }
 }
}

//贴图
void drawmap()
{
 BeginBatchDraw();//开始批量贴图
 putimage(0, 0, &image[0]);//贴背景
 for (int i = 0; i <10; i++)//for循环遍历map地图的所有元素进行贴图
 {
 for (int j = 0; j <10; j++)
 {
 switch (map[i][j])//判断地图元素进行对应的贴图
 {
 case 1://墙的贴图
 putimage(50 * j, 50 * i, &image[1]);
 putimage(0, 0, &image[1]);
 break;
 case 2://人的贴图
 putimage(50 * j, 50 * i, &image[2]);
 break;
 case 3://目的地的贴图
 putimage(50 * j, 50 * i, &image[3]);
 break;
 case 4://箱子的贴图
 putimage(50 * j, 50 * i, &image[4]);
 break;
 case 5://箱子进入目的地的贴图
 putimage(50 * j, 50 * i, &image[5]);
 break;
 case 6://人进入目的地的贴图
 putimage(50 * j, 50 * i, &image[2]);
 break;
 }
 }
 }
 EndBatchDraw();//结束批量贴图
}

//悔棋函数
void huiqi()//记录还没移动的时候,数组元素的值
{
 for (int i = 0; i <10; i++)
 {
 for (int j = 0; j <10; j++)
 {
 map1[i][j] = map[i][j];
 }
 }
}

//移动
void play()
{
 int i, j;//表示人在数组中的下标
 for (int n = 0; n <10; n++)//遍历数组找人的位置
 {
 for (int m = 0; m <10; m++)
 {
 if (map[n][m] == 2 || map[n][m] == 6)//找到了人
 {
 i = n;
 j = m;
 }
 }
 }
 char key = _getch();//_getch()是字符按键接收,不会回显到控制台
 switch (key)//判断按键
 {
 case'r':case'R'://回撤一步
 for (int i = 0; i <10; i++)
 {
 for (int j = 0; j <10; j++)
 {
 map[i][j] = map1[i][j];
 }
 }
 break;
 case'w':case'W'://区分大小写
 huiqi();//保存还没移动前的数据
 if (map[i - 1][j] == 0)//如果人面前是空地
 {
 map[i - 1][j] = 2;//人往前走
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i - 1][j] == 3)//人面前是空的目的地
 {
 map[i - 1][j] = 6;//人站在目的地里面
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i - 1][j] == 4)//人得面前是空地上的箱子
 {
 if (map[i - 2][j] == 0)//箱子的面前是空地
 {
 map[i - 2][j] = 4;//箱子推到空地上
 map[i - 1][j] = 2;//人站在箱子原本的位置上
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i - 2][j] == 3)//箱子的前面是空的目的地
 {
 map[i - 2][j] = 5;//箱子推进目的地里
 map[i - 1][j] = 2;//人进入原本箱子的位置
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 }
 else if (map[i - 1][j] == 5)//人的面前是站在目的地的箱子
 {
 if (map[i - 2][j] == 0)//箱子的面前是空地
 {
 map[i - 2][j] = 4;//箱子推到空地上
 map[i - 1][j] = 6;//人站在目的地上了
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i - 2][j] == 3)//箱子的面前是空的目的地
 {
 map[i - 2][j] = 5;//箱子推到目的地
 map[i - 1][j] = 6;
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 }
 break;
 case's':case'S':
 huiqi();//保存还没移动前的数据
 if (map[i + 1][j] == 0)//如果人面前是空地
 {
 map[i + 1][j] = 2;//人往前走
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i + 1][j] == 3)//人面前是空的目的地
 {
 map[i + 1][j] = 6;//人站在目的地里面
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i + 1][j] == 4)//人得面前是空地上的箱子
 {
 if (map[i + 2][j] == 0)//箱子的面前是空地
 {
 map[i + 2][j] = 4;//箱子推到空地上
 map[i + 1][j] = 2;//人站在箱子原本的位置上
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i + 2][j] == 3)//箱子的前面是空的目的地
 {
 map[i + 2][j] = 5;//箱子推进目的地里
 map[i + 1][j] = 2;
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 }
 else if (map[i + 1][j] == 5)//人的面前是站在目的地的箱子
 {
 if (map[i + 2][j] == 0)//箱子的面前是空地
 {
 map[i + 2][j] = 4;//箱子推到空地上
 map[i + 1][j] = 6;//人站在目的地上了
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i + 2][j] == 3)//箱子的面前是空的目的地
 {
 map[i + 2][j] = 5;//箱子推到目的地
 map[i + 1][j] = 6;
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 }
 break;
 case'a':case'A':
 huiqi();//保存还没移动前的数据
 if (map[i][j - 1] == 0)//如果人面前是空地
 {
 map[i][j - 1] = 2;//人往前走
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i][j - 1] == 3)//人面前是空的目的地
 {
 map[i][j - 1] = 6;//人站在目的地里面
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i][j - 1] == 4)//人得面前是空地上的箱子
 {
 if (map[i][j - 2] == 0)//箱子的面前是空地
 {
 map[i][j - 2] = 4;//箱子推到空地上
 map[i][j - 1] = 2;//人站在箱子原本的位置上
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i][j - 2] == 3)//箱子的前面是空的目的地
 {
 map[i][j - 2] = 5;//箱子推进目的地里
 map[i][j - 1] = 2;
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 }
 else if (map[i][j - 1] == 5)//人的面前是站在目的地的箱子
 {
 if (map[i][j - 2] == 0)//箱子的面前是空地
 {
 map[i][j - 2] = 4;//箱子推到空地上
 map[i][j - 1] = 6;//人站在目的地上了
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i][j - 2] == 3)//箱子的面前是空的目的地
 {
 map[i][j - 2] = 5;//箱子推到目的地
 map[i][j - 1] = 6;
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 }
 break;
 case'd':case'D':
 huiqi();//保存还没移动前的数据
 if (map[i][j + 1] == 0)//如果人面前是空地
 {
 map[i][j + 1] = 2;//人往前走
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i][j + 1] == 3)//人面前是空的目的地
 {
 map[i][j + 1] = 6;//人站在目的地里面
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i][j + 1] == 4)//人得面前是空地上的箱子
 {
 if (map[i][j + 2] == 0)//箱子的面前是空地
 {
 map[i][j + 2] = 4;//箱子推到空地上
 map[i][j + 1] = 2;//人站在箱子原本的位置上
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i][j + 2] == 3)//箱子的前面是空的目的地
 {
 map[i][j + 2] = 5;//箱子推进目的地里
 map[i][j + 1] = 2;
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 }
 else if (map[i][j + 1] == 5)//人的面前是站在目的地的箱子
 {
 if (map[i][j + 2] == 0)//箱子的面前是空地
 {
 map[i][j + 2] = 4;//箱子推到空地上
 map[i][j + 1] = 6;//人站在目的地上了
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 else if (map[i][j + 2] == 3)//箱子的面前是空的目的地
 {
 map[i][j + 2] = 5;//箱子推到目的地
 map[i][j + 1] = 6;
 //对人本身进行判断
 if (map[i][j] == 6)//如果人本身是站在目的地里
 map[i][j] = 3;//恢复成空目的地
 else//人站在空地
 map[i][j] = 0;//恢复成空地
 }
 }
 break;
 }
}

//判断游戏胜利
void win()
{
 int number = 0;//假设所有的箱子都进入了目的地,地图上就没有了箱子,number用来表示站在空地上的箱子的数量
 for (int i = 0; i <10; i++)
 {
 for (int j = 0; j <10; j++)
 {
 if (map[i][j] == 4)//说明空地上还有箱子
 number++;
 }
 }
 for (int i = 0; i <10; i++)//判断游戏失败
 {
 for (int j = 0; j <10; j++)
 {
 if (map[i][j] == 4)//对某个箱子进行判断
 {
 if (map[i - 1][j] == 1 || map[i + 1][j] == 1)//判断上下是否有一个是围墙
 {
 if (map[i][j - 1] == 1 || map[i][j + 1] == 1)
 //判断左右是否有一个是围墙
 {
 life = 2;//游戏失败
 }
 }
 }
 }
 }

 if (number == 0)//如果地图上站在空地上的箱子数为0
 life = 1;//表示游戏胜利
}
int main()
{
 drawMenu();
 initgraph(500, 500);//初始化图形环境
 loadimage(&image[0], "背景.PNG", 500, 500);//加载背景图片
 loadimage(&image[1], "墙.PNG", 50, 50);//墙
 loadimage(&image[2], "推人.PNG", 50, 50);//人
 loadimage(&image[3], "目的地.PNG", 50, 50);//目的地
 loadimage(&image[4], "箱子.png", 50, 50);//箱子
 loadimage(&image[5], "箱子和目的地重合.PNG", 50, 50);//箱子和目的地重合
 init();//初始化地图
 drawmap();//给地图元素贴图
 mciSendString("open attheage.mp3", 0, 0, 0);//打开
 mciSendString("play attheage.mp3", 0, 0, 0);//播放
 //Sleep(5000);//延迟五秒
 //mciSendString("stop attheage.mp3", 0, 0, 0);//停止

 while (1)
 {
 play();//移动一次
 drawmap();//贴一次图
 win();//判断游戏是否胜利
 if (life == 1)//游戏胜利
 {
 if (MessageBox(GetHWnd(), "游戏胜利!", "是否要继续游戏&#63;", MB_YESNO) == IDYES)//弹窗,按下'是',进入if语句
 {
 life = 0;//下次循环不会进入if语句
 level++;//关卡+1
 if (level == 3)//说明第三关结束了
 {
 if (MessageBox(GetHWnd(), "最后一关!", "是否要回到第一关!", MB_YESNO) == IDYES)//按下'是',进入if语句,回到第一关
 {
 level = 0;
 }
 else return 0;
 }
 init();//重新初始化
 drawmap();//贴图
 }
 else return 0;//按下'否',退出程序
 }
 if (life == 2)//游戏失败
 {
 life = 0;
 if (MessageBox(GetHWnd(), "游戏失败!", "是否重新开始本关卡", MB_YESNO) == IDYES)//按下'是',重新开始游戏
 {
 init();
 drawmap();
 }
 }
 }
 system("pause");
 closegraph();//关闭图形库
 return 0;
}

主要还是人物的移动判断,弄清楚一个方向之后,其他的方向只需要稍微修改一下即可。这是我19年11月份写的,存在一些问题,不过我改了。有错误就有进步,希望大家可以指点一下,谢谢您们!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • windows便签快捷键_用了windows十几年,没想到竟然这么好用!隐藏的功能你知道吗?
    本文介绍了使用windows操作系统时的一些隐藏功能,包括便签快捷键、截图功能等。同时探讨了windows和macOS操作系统之间的优劣比较,以及人们对于这两个系统的不同看法。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • 如何在联想win10专业版中修改账户名称
    本文介绍了在联想win10专业版中修改账户名称的方法,包括在计算机管理中找到要修改的账户,通过重命名来修改登录名和属性来修改显示名称。同时指出了windows10家庭版无法使用此方法的限制。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
author-avatar
筷子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有