(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 %