用C语言联网,命令行实现三人玩石头剪刀布游戏 从三台电脑输入, 40C

有没人做过三人联网玩小游戏的啊 一个大作业,用C语言联网,命令行实现三人玩石头剪刀布游戏 从三台电脑输入,一点头绪没有。

又没做过类似的小游戏的啊 完全用C编写,用命令行来输入石头剪刀布,请各位帮帮忙 啊!

c

3个回答

1、用c语言实现soket联网通讯,采用服务器/客户端结构,第一人作为服务器,其他两人作为客户端。
2、算法就简单了,当3人都给出动作后,判断谁被淘汰;如果胜利有2人,这2人接着出拳;最后决定胜利者。

感觉很容易,1:先写个组播通信socket,实现彼此通信
2:设计好协议,比如每次出动作都带着此次动作的序号3:收包后进行判别,规则想好
仅供参考

用1、2、3来表示剪刀、石头、布,然后先用scanf函数读取用户的输入,再用rand函数产生一个随机数,最后进行比较就可以了。
#include
#include
#include

void main()
{
int com,user;
char c;

srand((unsigned)time(NULL)); //初始化随机数,如果没有这条语句,每次运行电脑产生的随机数序列都是一样的
printf("进入游戏\n");
do{
    printf("请出拳(1.剪刀、2.石头、3.布):");
    scanf("%d",&user);
    com=rand()%3+1; //产生1-3范围内的随机数
    printf("电脑出%s\n",com==1?"剪刀":com==2?"石头":"布");
    switch(com-user) //用电脑产生的数和用户输入的数的差值来判断胜负
    {
    case 0:
        printf("平手\n");
        break;
    case 1:
    case -2:
        printf("电脑赢了\n");
        break;
    case -1:
    case 2:
        printf("你赢了\n");
    }
    printf("继续游戏按Y键、其它键退出");
    getchar();
    c=getchar();
}while(c=='y' || c=='Y');
printf("已经退出游戏");

}

gatusokaka
gatusokaka 大哥,你这是单机游戏,人家要求是网游
接近 5 年之前 回复
gatusokaka
gatusokaka 大哥,你这是单机游戏,人家让联网的
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐