[問題] 又是遊戲
真的事麻煩各位大大了~~
小弟的春假完全貢獻給程式設計了
無奈 時間不多
學程設真的好需要時間
可是偏偏主科有4科@@
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#include<string.h>
void history_brd(int w_t,int l_t,double p);//寫入排行榜
void view_history();//讀出排行榜
void game(int w_t,int l_t)
{
//int w_t=0;int l_t=0;
char history,brd_choice;
int x;
float p;
do{
int s;
int w=0,l=0,n1;
printf("請輸入你要的局數(一場)\n");
scanf("%d",&n1);
n1=(n1+1)/2;
do{
srand(time(NULL));
int n=rand()%3+1;
printf("%d",n);
printf("(1剪刀 (2石頭 (3布\n");
printf("請輸入你的選擇\n");
scanf("%d",&s);
if(n==1&&s==1)
{
printf("你出剪刀!!\n");
printf("電腦出剪刀\n");
printf("平手唷!!!\n");
}
else if(n==1&&s==2)
{
printf("你出石頭!!\n");
printf("電腦出剪刀\n");
printf("你贏囉!!\n");
w=w+1;
}
else if(n==1&&s==3)
{
printf("你出布\n");
printf("電腦出剪刀\n");
printf("你輸囉!!!\n");
l=l+1;
}
else if(n==2&&s==2)
{
printf("你出石頭!!\n");
printf("電腦出石頭\n");
printf("平手唷!!!\n");
}
else if(n==2&&s==1)
{
printf("你出剪刀!!\n");
printf("電腦出石頭\n");
printf("你輸囉!!\n");
l=l+1;
}
else if(n==2&&s==3)
{
printf("你出布!!\n");
printf("電腦出石頭\n");
printf("你贏囉!!!\n");
w=w+1;
}
else if(n==3&&s==3)
{
printf("你出布!!\n");
printf("電腦出布\n");
printf("平手唷!!!\n");
}
else if(n==3&&s==2)
{
printf("你出石頭!!\n");
printf("電腦出布\n");
printf("你輸囉!!\n");
l=l+1;
}
else if(n==3&&s==1)
{
printf("你出剪刀!!\n");
printf("電腦出布\n");
printf("你贏囉!!!\n");
w=w+1;
}
}while( w<n1 && l<n1);
if(w==n1)
{
printf("你贏了此場\n");
w_t=w_t+1;
}
else if(l==n1)
{
printf("你輸了此場\n");
l_t=l_t+1;
}
printf("想繼續玩請按1\n");
scanf("%d",&x);
printf("你目前的戰績為%d勝%d敗\n",w_t,l_t);
}while(x==1);
p=(w_t/(l_t+w_t))*100;
printf("你的最終戰績為%d勝%d敗勝率%6f\n",w_t,l_t,p);
printf("\n是否要加入歷史排行榜?(y/n)");
fflush(stdin);
scanf("%c",&history);
if(history == 'y')
{
history_brd( w_t, l_t,p);
printf("是否觀看歷史排行榜 ? (y/n)");
fflush(stdin);
scanf("%c",&brd_choice);
if(brd_choice == 'y')
{
view_history();
}
}
system("pause");
}
void new_player()
{
char name[99];
printf("請輸入你的名子");
scanf("%s",&name[99]);
}
int main()
{
int s1;
printf("歡迎來到猜拳遊戲\n");
printf("請輸入你的選擇\n");
printf("(1.進入遊戲(2.載入遊戲(3.觀看排行榜\n");
scanf("%d",&s1);
if(s1==1)
{
new_player();
int w_t=0;
int l_t=0;
game( w_t,l_t);
}
/*if(s1==2)
{
}*/
if(s1==3)
{
view_history() ;
}
system("pause");
return 0;
}
void history_brd(int w_t,int l_t,double p)
{
FILE *out;
char name[50];
time_t timep;
time (&timep);
out = fopen("board.bin","a+");
printf("\n請輸入你的姓名 : ");
scanf("%s",name);
fprintf(out,"%s總共在猜拳遊戲中%d勝%d敗勝率%f時間 %s",name,w_t,l_t,p,ctime(&timep));
fclose(out);
}
void view_history()
{
char list[200];
FILE *inp;
inp = fopen("board.bin","a+");
system("cls");
while(fscanf(inp,"%s", &list) != EOF)
{
printf("%s\n",list);
memset(list,0,sizeof(char)*200);
fgets(list,199,inp);
printf("%s\n",list);
}
fclose(inp);
system("pause");
}
這個是我目前作業的半完成品
助教說在排行榜要依勝率排行(就是小弟的變數P)
助教有提示跟fseek有關.....
小弟不才 不會用
有好心人可以提示一下
或者教一下嘛
----------------------------------------------------
對程設來說我就像塊海綿
助教倒了半瓶水
可是偏偏要我擠出一杯水
我該如何是好
----------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.97.92
→
04/04 23:09, , 1F
04/04 23:09, 1F
→
04/04 23:10, , 2F
04/04 23:10, 2F
→
04/04 23:43, , 3F
04/04 23:43, 3F
推
04/04 23:43, , 4F
04/04 23:43, 4F
→
04/04 23:45, , 5F
04/04 23:45, 5F
→
04/04 23:47, , 6F
04/04 23:47, 6F
推
04/05 00:05, , 7F
04/05 00:05, 7F
→
04/05 00:12, , 8F
04/05 00:12, 8F
→
04/05 00:13, , 9F
04/05 00:13, 9F
→
04/05 00:15, , 10F
04/05 00:15, 10F
→
04/05 00:16, , 11F
04/05 00:16, 11F
→
04/05 00:17, , 12F
04/05 00:17, 12F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
-10
29