俄罗斯方块AI_强化学习

这篇博客计划记录利用强化学习实现俄罗斯方块的智能程序。首先将尝试编写一个基础的俄罗斯方块游戏,然后通过调用强化学习算法来训练AI,以期待看到智能玩法的效果。在开发过程中,作者分享了Windows API编程的一些技巧,如静态常量数组的使用,case语句下变量声明的注意事项,以及解决双缓冲绘图中闪屏问题的方法。
摘要由CSDN通过智能技术生成

先写个开头放这里。。

1. 明天试试写出个能用的俄罗斯方块。

2. 调用强化学习写出个智能的程序看看效果。


Tetris Windows API代码记录:

1. 下面是Windows API代码框架,感觉用API写东西比别的框架清爽很多。

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); //窗口过程函数
/*

     程序的入口点WinMain函数
     第一个参数:应用程序的当前实例句柄。
     第二个参数:应用程序的前一个实例句柄,别管它,对于Win32位而言,它一般是NULL.

     第三个参数:指向任何传给程序的命令行参数。PSTR代表"指向字符串的指针"。
     第四个参数:它告诉应用程序如何初始化窗口,如最大化,最小化等状态。
     WinMain()所起的作用:初始化,展示,销毁应用程序等。
*/

int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow)

{

     static TCHAR szAppName[] = TEXT("Hello Win");

     HWND hwnd;//定义窗口句柄
     MSG msg;//创建消息
     WNDCLASS wc;//定义窗口类,下面是窗口类的结构定义
     
	 /*
     typedef struct _WNDCLASSA 
   { 
     UINT style ;         //窗口类风格
     WNDPROC lpfnWndProc ;    //指向窗口过程函数的指针
     int cbClsExtra ;       //窗口类附加数据
     int cbWndExtra ;      //窗口附加数据
     HINSTANCE hInstance ;    //拥有窗口类的实例句柄
     HICON hIcon ;        //最小窗口图标
     HCURSOR hCursor ;      //窗口内使用的光标
     HBRUSH hbrBackground ;   //用来着色窗口背景的刷子
     LPCSTR lpszMenuName ;   //指向菜单资源名的指针
     LPCSTR lpszClassName ;   // 指向窗口类名的指针
   } 
     */

 

     wc.style = CS_HREDRAW | CS_VREDRAW; //窗口类风格
     wc.lpfnWndProc = WndProc; //指向窗口过程函数的指针
     wc.cbWndExtra = 0; //窗口类附加数据
     wc.cbClsExtra = 0; //窗口附加数据
     wc.hInstance = hinstance; //拥有窗口类的实例句柄
     wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); //最小窗口图标
     wc.hCursor = LoadCursor(NULL, IDC_HAND);//窗口内使用的光标
     wc.hb
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值