程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C指針原理(73)-GLIB

C指針原理(73)-GLIB

編輯:關於C語言

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved