结对项目:黄金点游戏

领航员:干友恒   驾驶员:曹纪涛

编译语言:c语言

编程环境是Visual C++ 6.0

 

我们限定输入的数字是0-100之间的有理数,提供一个菜单给用户选择,玩家的人数和游戏的次数都由用户来输入,再将玩家输入的数字算出黄金点,再和玩家输入的数字进行比较,最后输出玩家的得分,由得分可以看出谁是胜利者。

心得:通过本次实验对c语言的运用更加熟练,了解了结对项目中的合作配合,对现代软件工程团队有了初步的了解认识。

GITHUB:https://github.com/GYH1205392387/MY-REPOSITORY/blob/master/%E7%BB%93%E5%AF%B9%E9%A1%B9%E7%9B%AE%EF%BC%9A%E9%BB%84%E9%87%91%E7%82%B9%E6%B8%B8%E6%88%8F

//代码参考网上的,来源忘记了:)

 1 #include "stdio.h"
 2 #include "string.h"
 3 #include "stdlib.h"
 4 
 5 struct
 6 {
 7     float data;
 8     float grade;
 9 }Player[100]; 
10 void game();
11 void main()
12 {
13     int n;
14     printf("--------------黄金点游戏------------\n");
15     printf("\n规则:输入的数仅为0~100之间的有理数\n\n");
16     printf("--------------1.开始游戏------------\n");
17     printf("--------------2.退出游戏------------\n");
18     printf("------------请输入您的选择:--------\n");
19     scanf("%d", &n);
20     system("cls");
21     if (n == 1)
22     {
23         game();
24 
25     }
26     else
27         exit;
28 }
29 
30 
31 void game()
32 {
33     int  N, a, b, c, i, j, k;
34     
35     printf("请输入游戏人数:");
36     scanf("%d", &N);
37     printf("\n请输入游戏次数:");
38     scanf("%d", &a);
39     for (i= 0; i < N; i++)
40     {
41         Player[i].grade = 0;
42     }
43     for (j = 1; j <= a; j++)
44     {
45         int num = 0, max = 100, min = 0;
46         float G=0,m=0;
47         printf("\n第%d次游戏:\n",j);
48         for (i = 0; i < N; i++)
49         {
50          loop: printf("玩家%d输入的数为:",i+1);
51                scanf("%f", &Player[i].data);
52                if(Player[i].data>=0&&Player[i].data<=100)
53                {
54                   num += Player[i].data;
55                }
56                else
57                {
58                   printf("输入的数据有误,请重新输入!\n");
59                   goto loop;
60                }
61         }
62         G = (float)num*0.618 / N;
63         printf("\n黄金G点值为:%f\n\n",G);
64         for (k = 0; k < N; k++)
65         {
66             m = abs((float)Player[k].data - G);
67             if (m>=min)
68             {
69                 min = m;
70                 b = k;
71             }
72             if (m <= max)
73             {
74                 max = m;
75                 c = k;
76             }
77         }
78         Player[b].grade += -2;
79         Player[c].grade += 2;
80         for (i = 0; i < N; i++)
81         {
82             printf("玩家%d的得分为:", i+1);
83             printf("%f\n", Player[i].grade);
84         }
85     }
86 }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2017-10-27 19:23  sMei  阅读(179)  评论(0编辑  收藏  举报