搜索
查看: 989|回复: 12
打印 上一主题 下一主题

请教:我想做个限时1分钟的走迷宫小游戏,该用何种方法编写代码?谢谢!

[复制链接]
跳转到指定楼层
楼主
发表于 2017-12-7 15:30:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
请教:我想做个限时1分钟的走迷宫小游戏,该用何种方法编写代码?谢谢!

最佳答案

查看完整内容

CreateThread是一种微软在Windows API中提供了建立新的线程的函数,该函数在主线程的基础上创建一个新线程。线程中止运行后,线程对象仍然在系统中,必须通过CloseHandle函数来关闭该线程对象。 需要调用到CRT库时,不要用CreateThread 创建线程、并用CloseHandle来关闭这个线程,而应该用_beginthread来创建线程,_endthread来销毁线程。因为没有对子线程为CRT库分配堆,会导致低内存错误而崩溃。 CreateThread 不会判断lpStart ...
沙发
发表于 2017-12-7 15:30:18 | 只看该作者
CreateThread是一种微软在Windows API中提供了建立新的线程的函数,该函数在主线程的基础上创建一个新线程。线程中止运行后,线程对象仍然在系统中,必须通过CloseHandle函数来关闭该线程对象。
需要调用到CRT库时,不要用CreateThread 创建线程、并用CloseHandle来关闭这个线程,而应该用_beginthread来创建线程,_endthread来销毁线程。因为没有对子线程为CRT库分配堆,会导致低内存错误而崩溃。
CreateThread 不会判断lpStartAddr是数据还是代码,甚至不会判断是否有足够的访问权限。lpStartAddr可以未必是个函数,也可以是类成员,只要将函数指针强制转换,并且不产生栈溢出和没有访问权限的问题就以及类如未定义的指令之类的错误可以顺利执行线程。创建类成员函数的对象时,this指针是调用CreateThread时所处的类对象的指针。在类对象外调用,其this指针将是未知的。。。。。。
板凳
发表于 2017-12-7 18:12:43 | 只看该作者
本帖最后由 4399APPLE 于 2017-12-7 18:49 编辑

请自行查找 CreateThread 函数

点评

多线程!  发表于 2017-12-7 20:44
地板
发表于 2017-12-7 21:03:31 | 只看该作者
111很好 发表于 2017-12-7 21:03
CreateThread是一种微软在Windows API中提供了建立新的线程的函数,该函数在主线程的基础上创建一个新线程 ...

摘自百度。。。。。。。。
5#
发表于 2017-12-9 10:39:11 | 只看该作者
打酱油的路过
6#
 楼主| 发表于 2017-12-10 15:56:35 | 只看该作者
我刚学完《啊哈C语言》,建立新线程函数的相关知识和要点还未接触,但还是要对您的解答表示感谢!
7#
发表于 2017-12-22 13:28:30 | 只看该作者
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main()
{
        char a [50][50]={"############",
                                         "#O #   ## ##",
                     "# ## #    ##",
                     "#  # # # #  ",
                     "##     #   #",
                     "############",
                                        };
    int i,x,y,p,q;
    char ch;
    float time=60.0;//
    x=1;y=1;p=3;q=11;
    for(i=0;i<=5;i++)
                puts(a[i]);
    while(x!=p||y!=q)
    {
    printf("%f",time);
    if(kbhit())
    {
          ch=getch();
      
      if(ch=='s')
      {
                  if(a[x+1][y]!='#')
          {
                          a[x][y]=' ';
              x++;
              a[x][y]='O';
          }
      }
      
      if(ch=='w')
      {
                  if(a[x-1][y]!='#')
          {
                          a[x][y]=' ';
              x--;
              a[x][y]='O';
          }
      }
      
      if(ch=='a')
      {
                  if(a[x][y-1]!='#')
          {
                          a[x][y]=' ';
              y--;
              a[x][y]='O';
          }
      }
      
      if(ch=='d')
      {
                  if(a[x][y+1]!='#')
          {
                          a[x][y]=' ';
              y++;
              a[x][y]='O';
          }
      }
    }
          Sleep(60);//
      time-=0.1;
      printf("%f",time);
      if(time<0)
      {
                printf("you die!");
        system("pause>nul");
      }
      system("cls");
      for(i=0;i<=5;i++)
              puts(a[i]);
    }
    system("cls");
    printf("you win!\n");
    Sleep(5000);
        return 0;
}
把它粘贴过去
试试
8#
发表于 2017-12-23 17:51:25 | 只看该作者

点评

已解决了你发什么发?  发表于 2017-12-24 08:39
9#
发表于 2017-12-24 10:57:06 | 只看该作者

点评

什么意思???????????????????  发表于 2018-2-18 16:25
10#
 楼主| 发表于 2018-1-13 11:32:55 | 只看该作者
111很好 发表于 2017-12-22 13:28
#include
#include
#include

非常感谢您的指导帮助!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表