博文

农历公历换算(ZT)(2005-08-08 11:04:00)

摘要:完全是标准的c函数,不过我在vc下写的,。相信移植没问题。
另外,我还用php写了一遍。
/*************************************************
计算阴历日期
范围从2000/02/05开始的20年
代码实现:耙子 2001/08/17
最后修订: 2001/08/18
**************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
typedef unsigned int DWORD;
/**************************************************
sLunar: 返回阴历日期字符串
dwDays: 所求日期距离 2000/02/05的天数差
**************************************************/
void Lunar2Solar(char *sLunar, const DWORD dwDays)
{
const char sTG[][3]= {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
const char sDZ[][3]= {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"}; ......

阅读全文(7028) | 评论:0

五子棋AI(IV)(2005-08-07 11:05:00)

摘要:(10)    程序流程的部分控制:
void CMyChessDlg::OnTimer(UINT nIDEvent)
{
    // TODO: Add your message handler code here and/or call default
    IsWin();//是否已有一方获胜
    if(pwin)
    {//玩家获胜
        KillTimer(0);
        MessageBox("恭喜,您真厉害!");
        player=false;
        computer=false;
        m_binit=true;
    }
    else if(cwin)
    {//计算机获胜
        KillTimer(0);
        MessageBox("抱歉,您输了");
        player=false;
  &nbs......

阅读全文(3328) | 评论:0

五子棋AI(III)(2005-08-07 11:04:00)

摘要://        ChangeStatus(ptempboard);
        pi=i;
        pj=j;
        while(SearchBlank(i,j,ptempboard))
        {//进行第二不查找
            ptempboard[i][j]=3;//标记已被查找
            ptemp=GiveScore(0,i,j);
            if(pscore>ptemp)//此时为玩家下子,运用极小极大法时应选取最小值
                pscore=ptemp;
        }
        for(m=0;m<n;m++)
        {//恢复玩家信息
    &nbs......

阅读全文(3346) | 评论:0

五子棋AI(II)(2005-08-07 11:03:00)

摘要:(3)    给出下了一个子后的分数:
int CMyChessDlg::GiveScore(int type, int x, int y)
{
        int i,score=0;
    for(i=0;i<572;i++)
    {
        //计算机下
        if(type==1)
        {
            if(ctable[x][y][i])
            {
                switch(win[1][i])
                {
                case 1:
           &nb......

阅读全文(2971) | 评论:0

五子棋的AI(I)(2005-08-07 11:02:00)

摘要:  “五子棋”软件设计报告
杭州电子科技大学 胡峰令
   在本次“五子棋“程序的编写中,只编写了人机对弈部分,运用了博弈树进行搜索,在选取最优的走步时使用极大极小分析法,考虑到搜索的时间复杂度和空间复杂度,在程序中只进行了2步搜索,即计算机在考虑下一步的走法时,只对玩家进行一步的推测。(程序中的棋盘规格为15*15)
   下面对具体做法进行描述:
1.    数据结构定义:
棋盘定义:int board[15][15];
在15*15的棋盘上,获胜的情况总共有572种,
如:
*    *    *    *    *    ……
……    ……    ……    ……    ……    ……
……    ……    ……    ……    ……    ……
……    ……    ……    ……    ……    ……
……    ……    ……    ……    ……  &nb......

阅读全文(5488) | 评论:1