www.2527.com_澳门新葡8455手机版_新京葡娱乐场网址_
做最好的网站

c语言实现小游戏_三子棋,C指针原理

2019-08-24 08:56 来源:未知

c语言完成小游戏_三子棋

游戏法规:游戏的使用者走一步,计算机走一步。当然计算机怎么走的代码也是您写的。

 

#include <stdio.h>
#include <stdlib.h>
/*******************************************************************************/
//函数功能:初始化棋盘
/*******************************************************************************/
void init_chess(char (*chess_arr)[3])
{
    int i,j;
    printf("游戏开始:n");

    for(i = 0;i<3;i  )
    {
        for(j = 0;j<3;j  )
        {
            *(*(chess_arr i) j) = ' ';
        }
    }
    for(i = 0;i<3;i  )
    {
        printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
        if(i!=2)
        {
            printf("n---|---|---n");
        }
    }
    printf("n");
}
/*******************************************************************************/
//函数功能:玩家输入下棋的坐标
/*******************************************************************************/
void input_player_xy(char (*chess_arr)[3],int x,int y)
{
    int i = 0;
    if(chess_arr[x][y]==' ')
    {
        chess_arr[x][y] = 'Y';
    }
    else
    {
        printf("该步以走过n");
    }
    for(i = 0;i<3;i  )
    {
        printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
        if(i!=2)
        {
            printf("n---|---|---n");
        }
    }
    printf("n");
}
/*******************************************************************************/
//函数功能:打印电脑下棋的坐标
/*******************************************************************************/
void input_computer_xy(char (*chess_arr)[3])
{
    int i = 0;
    for(i = 0;i<3;i  )
    {
        printf(" %c | %c | %c" ,chess_arr[i][0],chess_arr[i][1],chess_arr[i][2]);
        if(i!=2)
        {
            printf("n---|---|---n");
        }
    }
    printf("n");
}
/*******************************************************************************/
//函数功能:确定玩家下棋的坐标
/*******************************************************************************/
void input_player(char (*chess_arr)[3])
{
    int x = 0,y = 0;
    printf("请下您的棋:");
    scanf("%d%d",&x,&y);
    input_player_xy(chess_arr,x,y);

}
/*******************************************************************************/
//函数功能:确定电脑下棋的坐标
/*******************************************************************************/
void input_computer(char (*chess_arr)[3])
{
    int i =0,j = 0;
    for(i = 0;i<3;i  )
    {
        for(j = 0;j<3;j  )
        {
            if(chess_arr[i][j]==' ')
            {
              chess_arr[i][j] = 'O';
              goto flag;
            }
        }
    }
flag:
    input_computer_xy(chess_arr);
}
/*******************************************************************************/
//函数功能:主函数判断电脑还是玩家获胜
/*******************************************************************************/
int main()
{
    char chess_arr[3][3];
    int flag = 1;

    init_chess(chess_arr);
    while(flag)
    {
        int i = 0,j = 0;
        int diag_flag_player = 0,diag_flag_computer = 0,count = 0;
        input_player(chess_arr);
        input_computer(chess_arr);
        for(i = 0;i<3;i  )
        {
            if(((chess_arr[i][0]=='Y')&&(chess_arr[i][1]=='Y')&&(chess_arr[i][2]=='Y'))||
                 ((chess_arr[0][i]=='Y')&&(chess_arr[1][i]=='Y')&&(chess_arr[2][i]=='Y'))
              )
            {
                printf("player win!n");
                flag = 0;
                break;
            }
            if(((chess_arr[i][0]=='O')&&(chess_arr[i][1]=='O')&&(chess_arr[i][2]=='O'))||
                      ((chess_arr[0][i]=='O')&&(chess_arr[1][i]=='O')&&(chess_arr[2][i]=='O'))
                   )
            {
                printf("computer win!n");
                flag = 0;
                break;
            }
            for(j = 0;j<3;j  )
            {
                if(chess_arr[i][j]!=' ')
                {
                    count  ;
                }
            }
            if(chess_arr[i][i]=='Y')
            {
                diag_flag_player  ;
            }
            if(chess_arr[i][2-i]=='O')
            {
                diag_flag_computer  ;
            }
        }
        if(diag_flag_player==3)
        {
            flag = 0;
            printf("player win!n");
        }
        if(diag_flag_computer==3)
        {
            flag = 0;
            printf("computer win!n");
        }
        if(count==9)
        {
            flag = 0;
            printf("player equal computer!n");
        }
    }
    system("pause");
    return 0;
}

 

 

出于让大家看的知晓,未有放在多少个文件中。

游戏准则:游戏发烧友走一步,计算机走一步。当然Computer怎么走的代码也是您写的。 #include stdio.h#include stdlib.h/*************...

二、21点游戏

1、游戏准绳:

任性抽出1-12个数字,每回游戏发烧友和管理器各抽1次,游戏者和Computer能够公布不再抽数字,全数数字之和超过21点者输,在21点以内,大者胜利。

=

(1)招待游戏者

利用gchar字符型来储存游戏发烧友姓名。

typedef char gchar;

编辑代码如下:

#include

#include

#include

int main(int argc, char *argv[]){

setlocale(LC_ALL,"");

gchar gamename[10];

g_print("您叫什么名字?n");

scanf("%s",&gamename);

g_print("欢迎您,%s,这里是21点游戏n",gamename);

return 0;

}

[email protected]:~/gliblearn % gcc `pkg-config --cflags --libs glib-2.0 gthread-2.0` 1.c -o mytest

[email protected]:~/gliblearn % ./mytest

你叫什么名字?

麦好

欢迎您,麦好,这里是21点游戏!

[email protected]:~/gliblearn %

麦好的AI乐园博客全体剧情是原创,要是转发请注脚来源

(2)引进自由数

使用glib的大肆数函数爆发随机数

gamerand = g_rand_new();

rndnumber=g_rand_int_range(gamerand,1,11);

程序如下:

#include

#include

#include

int main(int argc, char *argv[]){

setlocale(LC_ALL,"");

GRand *gamerand;

gchar gamename[10];

g_print("您叫什么名字?n");

scanf("%s",&gamename);

g_print("欢迎您,%s,这里是21点游戏n",gamename);

g_print("%s,请按钮抽数字!n",gamename);

getchar();

getchar();

gint rndnumber;

gamerand = g_rand_new();

rndnumber=g_rand_int_range(gamerand,1,11);

g_print("%s,您抽到的是:%dn",gamename,rndnumber);

g_rand_free(gamerand);

return 0;

}

[email protected]:~/gliblearn % ./mytest

您叫什么名字?

myhaspl

欢迎您,myhaspl,这里是21点游戏

myhaspl,请按钮抽数字!

myhaspl,您抽到的是:3

[email protected]:~/gliblearn %

1、游戏法则: 随机收取1-十三个数字,每一回游戏用户和Computer各抽1次,游戏用户和计算机能够颁发不再抽数字,全体数字之和抢先21点者输,...

TAG标签:
版权声明:本文由澳门新葡8455手机版发布于计算机编程,转载请注明出处:c语言实现小游戏_三子棋,C指针原理