美文网首页C语言编程交流
制作的C语言经典游戏以及源代码分享,复制一下去试试玩吧

制作的C语言经典游戏以及源代码分享,复制一下去试试玩吧

作者: 6dd77184077e | 来源:发表于2019-08-16 14:17 被阅读0次

    C语言精品游戏主角和怪物源码

    //C语言多线程-主角和怪物

    #include

    #include

    #define bool int //定义int变量为bool变量,bool不是真就是假

    int a=0,b=20;//主角的坐标

    int x=1,y=0;//怪物的坐标

    int i=1;//i值为真

    HANDLE hMutex;

    //1.坐标

    void GamePosition(HANDLE g_hout,int x,int y)

    {

    COORD pos;//点的结构体

    pos.X=x;//横坐标

    pos.Y=y;//纵坐标

    SetConsoleCursorPosition(g_hout,pos);

    //设置控制平台光标位置

    }

    DWORD WINAPI Func(LPVOID lpParamter)//多线程的功能函数6.线程是画怪物

    {

    HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);//7.拿到这张纸

    WaitForSingleObject(hMutex, INFINITE);//13.自己进来,自己用洗手间

    GamePosition(hout,x,y),printf('●');//8.在纸上画怪物

    ReleaseMutex(hMutex);//14.放弃使用权

    while(1)//9.怪物在横坐标为从0-10依次循环移动

    {

    if(x>=0&&i==1)

    {

    printf(' ');

    GamePosition(hout,++x,y);

    printf('●');

    Sleep(1000);

    if(x==10)

    i=0;//i为假

    }

    else if(x<>

    {

    printf(' ');

    GamePosition(hout,--x,y);

    printf('●');

    Sleep(1000);

    if(x==0)

    i=1;

    }

    }

    return 0;

    }

    int main()

    {

    HANDLE hThread = CreateThread(NULL, 0, Func, NULL, 0, NULL);//5.创建线程

    hMutex = CreateMutexA(NULL, FALSE, '123');//创建互斥锁(量)//10.关上洗手间

    HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);//2.拿到这张纸

    WaitForSingleObject(hMutex, INFINITE);//11.等待你的同事出来 15步接着

    GamePosition(hout,a,b),printf('☆');//3.在纸上画主角

    ReleaseMutex(hMutex);//12.同事出来了,放弃了洗手间的使用权

    while(1)

    {

    if(kbhit())

    switch(getch())//控制左右 4.主角上下左右移动

    {

    case 'w':

    case 'W':

    if(b>3)GamePosition(hout,a,b),printf(' '),GamePosition(hout,a,--b),printf('☆');

    break;

    case 's':

    case 'S':

    if(b<20)gameposition(hout,a,b),printf('>

    break;

    case 'a':

    case 'A':

    if(a>0)printf(' '),GamePosition(hout,--a,b),printf('☆');

    break;

    case 'd':

    case 'D':

    if(a<20)printf('>

    break;

    }

    }

    CloseHandle(hThread);

    system('pause');

    return 0;

    }

    扫雷游戏代码源码

    #include

    #include

    #include

    int main (){

    int delta[8][2] = {{-1,-1},{-1,0},{-1,1},{0,-1},{0,1},{1,-1},{1,0},{1,1}};

    int row =0,col = 0,num = 0;

    char map[10][10] = {0};

    char show[10][10] = {0};

    srand(time(0));

    for(row = 0;row <=>

    for(col = 0;col <=>

    map[row][col] = '0';

    }

    }

    do{

    row = rand() % 10;

    col = rand() % 10;

    if(map[row][col] == '0'){

    map[row][col] = 'x';

    num++;

    }

    }while(num <>

    for (row = 0;row <=>

    for (col = 0;col <=>

    if(map[row][col] != 'x'){

    int cnt = 0;

    for (num = 0;num <=>

    if(row + delta[num][0] <>

    continue;

    }

    if(row + delta[num][0] > 9){

    continue;

    }

    if(col + delta[num][1] <>

    continue;

    }

    if(col + delta[num][1] > 9){

    continue;

    }

    if(map[row + delta[num][0]][col + delta[num][1]]== 'x'){

    cnt++;

    }

    }

    map[row][col] = '0' + cnt;

    }

    }

    }

    for (row = 0;row <>

    for(col = 0;col < 10;col="">

    printf('* ');

    }

    printf('\n');

    }

    num = 0;

    int x,y;

    do{

    printf('please enter the coordinate of array:');

    scanf('%d%d',&x,&y);

    show[x-1][y-1] = 1;

    if(map[x-1][y-1] == '0'){

    for (num = 0;num <=>

    if(x-1 + delta[num][0] <>

    continue;

    }

    if(x-1 + delta[num][0] > 9){

    continue;

    }

    if(y -1+ delta[num][1] <>

    continue;

    }

    if(y-1 + delta[num][1] > 9){

    continue;

    }

    show[x-1+delta[num][0]][y-1+delta[num][1]] = 1;

    }

    }

    if (map[x-1][y-1]!= 'x'&&map[x-1][y-1] != '0'){

    for (num = 0;num <=>

    int cnt = 0;

    if(x-1 + delta[num][0] <>

    continue;

    }

    if(x-1 + delta[num][0] > 9){

    continue;

    }

    if(y-1 + delta[num][1] <>

    continue;

    }

    if(y-1 + delta[num][1] > 9){

    continue;

    }

    if( map[x -1 + delta[num][0]][y -1+ delta[num][1]] != 'x'){

    show[x-1 + delta[num][0]][y -1+ delta[num][1]] = 1 ;

    }

    }

    }

    if(map[x-1][y-1] == 'x') {

    printf('game over!\n');

    for (row = 0;row <>

    for(col = 0;col < 10;col="">

    printf('%c ',map[row][col]);

    }

    printf('\n');

    }

    return 0;

    }

    system('cls');

    printf('mine sweeping:\n');

    for (row = 0;row <>

    for(col = 0;col < 10;col="">

    if (show[row][col] == 1)

    {

    printf('%c ', map[row][col]);

    }

    else

    {

    printf('* ');

    }

    }

    printf('\n');

    }

    num = 0;

    for (row = 0;row <>

    for(col = 0;col < 10;col="">

    if (show[row][col] == 1 )

    {

    num++;

    }

    }

    }

    printf('num:%d\n',num);

    }while(num <>

    printf('you win!');

    return 0;

    }

    如果大家如果在自学遇到困难,想找一个C++的学习环境,可以加入我们的C++学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题。C/C++开发交流群:671274157

    相关文章

      网友评论

        本文标题:制作的C语言经典游戏以及源代码分享,复制一下去试试玩吧

        本文链接:https://www.haomeiwen.com/subject/junfsctx.html