2007年4月30日 星期一

10.5

警告!!下列程式碼非常.....嗯你懂的!!



為遊戲十點半的程式碼



#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <string.h>



struct card {

char *face;

char *color;

double point;

};



typedef struct card Card;



void fill_Deck( Card * , char *[] , char *[] );

void shift_card( Card * );

void print_the_game( Card * , Card * , int * , double * , int );

int deil_Card( Card * , Card * , int , int * );

int the_money( int * , double * , int );



int main( ){

Card card[52];

Card player[10];

Card house[10];



int how_many[2] = { 0 , 0 };

double point[2] = { 0 , 0 };



int card_number = 52;

int pay_money , own_money = 2000;



int chose = 1;

int p_house = 0;

int give_house = 1;

int no = 1;

char none;



int changepage;



char *color[4] = { { "Spade" } , { "Heart" } , { "Diamond" } , { "Club" } };

char *face[13] = { { "Ace" } , { "Two" } , { "Three" } , { "Four" } , { "Five" } , { "Six" } , { "Seven" } , { "Eight" } , { "Nine" } , { "Ten" } , { "Jack" } , { "Queen" } , { "King" } };



srand( time(NULL) );

fill_Deck( card , face , color );

shift_card( card );



card_number = deil_Card( card , house , card_number , &how_many[0] );

card_number = deil_Card( card , player , card_number , &how_many[1] );

point[0] += house[how_many[0] - 1].point;



while( 1 ){

while( no ){

printf("You have %d dolors to join this game\n" , own_money );

printf("Whw much do you want fo pay?? ");

scanf("%d" , &pay_money);



while( pay_money > own_money ){

printf("You don't have so much money\n");

printf("How much do ypu want to pay?? ");

scanf("%d" , &pay_money);

}

no = 0;

}



print_the_game( house , player , how_many , point , p_house );



do{

printf("0.)Restart the game \n");

printf("1.)Give me one more card \n");

printf("2.)Finish\n");

printf("3.)Forfeit this game \n");

printf("4.)EXIT!!!\n");

printf("Chose??");

scanf(" %d" , &chose );

}while( chose < 0 || chose > 4 );



switch( chose ){

case 0:



for( changepage = 50 ; changepage > 0 ; --changepage )

printf("\n");



printf("%c" , 13 );

main();

break;



case 1:



for( changepage = 50 ; changepage > 0 ; --changepage )

printf("\n");



card_number = deil_Card( card , player , card_number , &how_many[1]);



if( point[0] < 10.5 && how_many[0] < 4 && give_house ){



if( point[0] <= 5 ){

card_number = deil_Card( card , house , card_number , &how_many[0]);

point[0] += house[how_many[0] - 1].point;

}



else if( ( point[0] > 4 ) && ( point[0] <= 7 ) && ( rand() % 2 == 0 ) ){

card_number = deil_Card( card , house , card_number , &how_many[0]);

point[0] += house[how_many[0] - 1].point;

}



else if( ( point[0] > 7 ) && ( point[0] < 9 ) && ( rand() % 10 == 0 ) ){

card_number = deil_Card( card , house , card_number , &how_many[0]);

point[0] += house[how_many[0] - 1].point;

}





else if( ( point[0] >=9 ) && ( rand() %100 == 0 ) ){

card_number = deil_Card( card , house , card_number , &how_many[0]);

point[0] += house[how_many[0] - 1].point;

}





if( how_many[1] != how_many[0] )

give_house = 0;

}



break;



case 2:



for( changepage = 50 ; changepage > 0 ; --changepage )

printf("\n");



while( point[0] < 10.5 && how_many[0] < 4 && give_house ){



if( point[0] <= 4 ){

card_number = deil_Card( card , house , card_number , &how_many[0]);

point[0] += house[how_many[0] - 1].point;

}



else if( ( point[0] > 4 ) && ( point[0] <= 7 ) && ( rand() % 2 == 0 ) ){

card_number = deil_Card( card , house , card_number , &how_many[0]);

point[0] += house[how_many[0] - 1].point;

}



else if( ( point[0] > 7 ) && ( point[0] < 9 ) && ( rand() % 10 == 0 ) ){

card_number = deil_Card( card , house , card_number , &how_many[0]);

point[0] += house[how_many[0] - 1].point;

}



else if( ( point[0] >=9 ) && ( rand() %100 == 0 ) ){

card_number = deil_Card( card , house , card_number , &how_many[0]);

point[0] += house[how_many[0] - 1].point;

}



if( how_many[1] != how_many[0] )

give_house = 0;

}



p_house = 1;

print_the_game( house , player , how_many , point , p_house );

pay_money = the_money( how_many , point , pay_money );

own_money -= pay_money;



if( pay_money < 0 )

printf(" you %s %d !!\n\n\n" , pay_money < 0 ? "WIN" : "LOST" , pay_money * -1 );

else

printf(" you %s %d !!\n\n\n" , pay_money < 0 ? "WIN" : "LOST" , pay_money );



if( own_money <= 0 ){

printf("You hove no money so \nYOU LOST!!\nPress any key to restart!");

scanf("%d" , &none );



for( changepage = 50 ; changepage > 0 ; --changepage )

printf("\n");



main();

}

how_many[0] = 0;

how_many[1] = 0;

point[0] = 0.0;

point[1] = 0.0;

p_house = 0;

no = 1;

give_house = 1;

card_number = deil_Card( card , house , card_number , &how_many[0] );

card_number = deil_Card( card , player , card_number , &how_many[1] );

point[0] += house[how_many[0] - 1].point;



break;



case 3:



for( changepage = 50 ; changepage > 0 ; --changepage )

printf("\n");



how_many[0] = 0;

how_many[1] = 0;

point[0] = 0.0;

point[1] = 0.0;

no = 1;

own_money -= pay_money;

card_number = deil_Card( card , house , card_number , &how_many[0] );

card_number = deil_Card( card , player , card_number , &how_many[1] );

point[0] += house[how_many[0] - 1].point;

give_house = 1;

break;



case 4:

return 0;

break;

}//switch( chose )



}//while( 1 )



}//main



void fill_Deck( Card *card , char *face[] , char *color[] ){



for ( int a = 0 ; a <= 51 ; ++a ) {

card[ a ].face = face[ a % 13 ];

card[ a ].color = color[ a / 13 ];



if( ( a % 13 ) <= 9 )

card[a].point = ( a % 13 ) + 1;

else

card[a].point = 0.5;

}



}



void shift_card( Card *card ){



int a;

Card temp;



for ( int b = 0; b <= 51; ++b ) {

a = rand() % 52;

temp = card[ a ];

card[ a ] = card[ b ];

card[ b ] = temp;

}



}



int deil_Card( Card *card , Card *hold , int card_number , int *how_many ){



hold[*how_many] = card[card_number - 1];

++(*how_many);



return ( card_number -= 1 );

}



void print_the_game( Card *house , Card *player , int *how_many , double *point , int p_house ){



printf("\n%5s %s %5s %6s %s %6s \n", " " , "computer" , " " , " " , "player" , " " );

point[1] = 0.0;



if( how_many[0] >= how_many[1] ){



for( int a = 0 ; a < how_many[0] ; ++a ){



if( a < how_many[0])

printf("%7s %10s " , p_house ? house[a].color : '\0' , p_house ? house[a].face : '\0' );

else

printf("%7s %10s " , " " , " " );



if( a < how_many[1]){

printf("%15s %10s \n" , player[a].color , player[a].face );

point[1] += ( player[a].point );

}

else

printf("%15s %10s \n" , " " , " " );



}//for



}//if

else{



for( int b = 0 ; b < how_many[1] ; ++b ){



if( b < how_many[0])

printf("%7s %10s " , p_house ? house[b].color : '\0' , p_house ? house[b].face : '\0' );

else

printf("%7s %10s " , " " , " " );



if( b < how_many[1] ){

printf("%15s %10s \n" , player[b].color , player[b].face );

point[1] += ( player[b].point );

}

else

printf("%7s %10s \n" , " " , " " );



}//for



}//else

if( p_house )

printf("\n%15s%2g %17s%2g\n\r" , "Point of house:" , point[0] , "Point of player:" , point[1]);

else

printf("\n%15s%2s %17s%2g\n\r" , "Point of house:" , " " , "Point of player:" , point[1]);

}





int the_money( int * how_many , double *point , int pay_money ){



if( ( how_many[1] == 2 ) && ( point[1] == 10.5 ) )

return pay_money *= ( -3 );



else if( how_many[1] == 5 ){

if( point[1] == 10.5 )

return ( pay_money *= ( -4 ) );



else if( point[1] < 10.5 )

return ( pay_money *= ( -3 ) );

}



else if( point[1] > 10.5 )

return pay_money;



else if ( ( how_many[0] == 5 ) && ( point[0] <= 10.5 ) && ( point[1] <= 10.5 ) )

return pay_money;



else if( ( point[0] <= 10.5 ) && ( point[1] <= 10.5 ) ){



if( point[0] >= point[1] )

return ( pay_money *= 2 );



else

return ( pay_money *= ( -2 ));

}

else

return ( pay_money * ( -2 ) );

}

2007年4月28日 星期六

校運會

昨天是咱們學校的校運會

基於我們沒比賽SO就跑去當工作人員去了

說是工作人員不過卻是無價勞工= =|||

每場比賽都是我們在計時紀錄算分數

開幕前所要的東西也是我們搬的

原本還要我們把所有的棚子拆掉

不過大家看在他們沒收我們的薪水上

就全部跑光了

後來一群人跑去三重打保齡球

那家"综合"保齡球館真的是啥咪都有

小型網咖 遊樂器 撞球桌 漫畫 & 保齡球道

重點是他是計時的!!全部都隨你玩到爽~

頂多排隊就是了



打了兩輪保齡球

一局根本就不是撞球的撞球

以及一堆的遊戲機之後

三個小時就這ㄇ的過去了

回到家已經快掛掉了= =|||



2007年4月17日 星期二

期中考

考到現在只剩下程設 電子電路 英聽 跟 日文

昨天微積分跟英文已經大爆炸了....

不過今天考線代時第一次覺得

前方的路不再是黑暗的了^~^

況且程設有老師的加持

一定會很順利的

只剩下日文了 那個教別再說了~"~

2007年4月11日 星期三

非我日

前天帶著忐忑不安去考汽車筆試

結果是84分= =|||離及格就只有這ㄇ一分遺憾的距離

後來回家的時候

好像有被測速照到....

整個就是超衰的~"~



對了 信有收到了

雖然睡了一覺之後才驚覺有第二頁= =|||

不過 謝了^~^

2007年4月9日 星期一

掃墓

過了四天半的放假距離期中考又近了

總覺得沒那個精神讀書

心情挺沉重的

總有種悶悶的感覺

努力想讓自己打起精神

卻徒勞無功

床我來了!

2007年4月1日 星期日

記憶力...

原本就很破爛的記憶

現在更爛到已經把所有電影融合成一片了

看過的電影情節早已既不清楚是哪片

就算記得對話也實在想不起在哪出現

看過的書 內容更是記的亂七八遭

要部就是根本忘了這本書在幹麻....

唉...我的記憶力ㄚ真的是不知道去哪了~"~

能在我腦中留下腳步的東西寥寥無幾



P.s.愚人節快樂~

2007年3月24日 星期六

小病

有些微感冒的跡象 頭痛 發寒 四肢無力

整個就是很懶的動

蔗兩天都可以邊做事邊打瞌睡.....

話說昨天

一個路痴帶著另一個海底生物"探路"

說真的這勇氣還真不是普通的大

衝去板橋 再跑到學校去

之後再跑回去板橋借用電腦上個網

去到他家有種似曾相似的感覺

原來ㄚ 我跑到范小姐家的社區去了= =||||

是的 絕對不是我打錯 我真的到了那裡去

非常傻眼的盡然連屋內設計也都一樣

後來回去的時候我再三重市迷路了一個多小時......

一直找不到重陽橋>"<

照著路標走卻繞了一大圈走回到當初的叉路

更誇張的是那個差路是標種的十字路口

而我把那四個出入口都走過了

卻走不出去....整個就是不知道路標在標啥麼鬼的

後來只好乖乖的走台北橋回去.....

路上又一堆轉彎不打方向燈...

最誇張的是單線道前面沒車還給我騎20!!

超幹!!搞的心情超差...

對他按喇叭還回頭看我 也不看看你的速度表現在是多少...

反正那天回到家之後 等中華電信來修好網路就去睡了

睡到今天早上八點

還是騎著車就出去晃了

很不要命的穿著短袖從外雙溪殺上陽明山

嗯 很冷>"<

邊騎邊想著像是我活著要做啥之類的蠢問題

也沒啥答案從我凍豆腐般的腦袋中跑出來

反而是手機衝出幾個打錯電話的

話說我的電話真的那ㄇ容易打錯ㄇ???

這是這禮拜以來不曉得第幾通了....

還有問一個路癡路真的是很有勇氣

難道我的臉上有畫地圖ㄇ???

回歸正題 看到上擎天崗的路標 二話不說就轉向了那方

那個霧真的不是普通的大 只能看的到5,6公尺的路....

超恐怖的只好回頭 下山回家吃泡麵

接著就到了光華 去買耳機~

因為荷包終於可以承受鐵三角的威力了

大概花了1.5K左右~還有副耳機套~

哈~~開心^~^