设为首页 加入收藏

TOP

C指针原理(73)-GLIB
2014-11-23 17:49:44 来源: 作者: 【 】 浏览:11
Tags:指针 原理 -GLIB

(3)轮流抽数判断输赢

使用逻辑型变量类型gboolean,定义如下:

typedef gint gboolean;

A standard boolean type. Variables of this type should only contain the value TRUE or FALSE.

麦好的AI乐园博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/


代码如下:

dp@dp:~/gliblearn % cat 21dian.c

#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);

setbuf(stdin,NULL);

gint key=0;

gint rndnumber;

gint man_number,comp_number;

gint man_count=0,comp_count=0;

gboolean man_end=FALSE,comp_end=FALSE;

gboolean gameover=FALSE;

gamerand = g_rand_new();

do{

if (!man_end){

g_print("%s,按Y/y键抽数字,按其它键表示不再抽数字!\n",gamename);

key=getchar();

getchar();

//玩家抽数字

if (key=='y'||key=='Y'){

rndnumber=g_rand_int_range(gamerand,1,11);

man_number=rndnumber;

man_count+=man_number;

g_print("%s,您抽到的是:%d\n",gamename,man_number);

}else

{

g_print("玩家放弃抽数!\n",comp_number);

man_end=TRUE;

}

}

//电脑抽数字

if (comp_count<=17){

rndnumber=g_rand_int_range(gamerand,1,11);

comp_number=rndnumber;

comp_count+=comp_number;

g_print("电脑抽到的是:%d\n",comp_number);

}else

{

g_print("电脑放弃抽数!\n",comp_number);

comp_end=TRUE;

}

if ((man_count>21 && comp_count>21)||(man_count==21 && comp_count==21)){

g_print("平手,电脑%d点,%s %d点\n",comp_count,gamename,man_count);

gameover=TRUE;

}

else if (man_count>21 && comp_count<=21) {

g_print("电脑赢了,电脑%d点,%s %d点\n",comp_count,gamename,man_count);

gameover=TRUE;

}

else if (man_count<=21 && comp_count>21) {

g_print("玩家赢了,电脑%d点,%s %d点\n",comp_count,gamename,man_count);

break;

}else if (man_end && comp_end){

man_count>comp_count g_print("玩家赢了,电脑%d点,%s %d点\n",comp_count,gamename,man_count):g_print("电脑赢了,电脑%d点,%s %d点\n",comp_count,gamename,man_count);

gameover=TRUE;

}else

{

g_print("\n$$$$$$本轮结束,电脑%d点,%s %d点$$$$$$\n",comp_count,gamename,man_count);

}

}while(!gameover);

g_rand_free(gamerand);

return 0;

}

麦好的AI乐园博客所有内容是原创,如果转载请注明来源

http://blog.csdn.net/myhaspl/


编译执行:

dp@dp:~/gliblearn % gcc `pkg-config --cflags --libs glib-2.0 gthread-2.0` 21dian.c -o 21dian

dp@dp:~/gliblearn % ./21dian

您叫什么名字

麦好

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

麦好,按Y/y键抽数字,按其它键表示不再抽数字!

y

麦好,您抽到的是:7

电脑抽到的是:10

$$$$$$本轮结束,电脑10点,麦好 7点$$$$$$

麦好,按Y/y键抽数字,按其它键表示不再抽数字!

Y

麦好,您抽到的是:1

电脑抽到的是:9

$$$$$$本轮结束,电脑19点,麦好 8点$$$$$$

麦好,按Y/y键抽数字,按其它键表示不再抽数字!

Y

麦好,您抽到的是:10

电脑放弃抽数!

$$$$$$本轮结束,电脑19点,麦好 18点$$$$$$

麦好,按Y/y键抽数字,按其它键表示不再抽数字!

Y

麦好,您抽到的是:7

电脑放弃抽数!

电脑赢了,电脑19点,麦好 25点

dp@dp:~/gliblearn % ./21dian

您叫什么名字

myhaspl

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

myhaspl,按Y/y键抽数字,按其它键表示不再抽数字!

y

myhaspl,您抽到的是:2

电脑抽到的是:8

$$$$$$本轮结束,电脑8点,myhaspl 2点$$$$$$

myhaspl,按Y/y键抽数字,按其它键表示不再抽数字!

y

myhaspl,您抽到的是:2

电脑抽到的是:3

$$$$$$本轮结束,电脑11点,myhaspl 4点$$$$$$

myhaspl,按Y/y键抽数字,按其它键表示不再抽数字!

y

myhaspl,您抽到的是:5

电脑抽到的是:5

$$$$$$本轮结束,电脑16点,myhaspl 9点$$$$$$

myhaspl,按Y/y键抽数字,按其它键表示不再抽数字!

y

myhaspl,您抽到的是:2

电脑抽到的是:9

玩家赢了,电脑25点,myhaspl 11点

dp@dp:~/gliblearn %

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C指针原理(75)-GLIB 下一篇C语言字符串操作总结大全(超详细)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: