• 结对项目--黄金点游戏 (尹海&李状)


    结对项目名称:黄金分割点游戏(单机)

    运行环境:vs

    编译语言:c语言

    实现的功能:用户可以选择继续游戏并且可以保存之前获得的分数,但是为了游戏的公平性,游戏的参数人数一开始用户确定以后就不能够改变。

    Github地址:https://github.com/522623378/hello-world/blob/master/Golden%20point

    总结与心得:本次项目的设计能够学习到另一个结对项目者的想法,能够让自己的思维能够开阔一些,在设计项目的过程中总是不断完善能够让自己的思维更加严密,同时也可以学习到另一个结对项目者的代码编写方法,能够让自己对于同一个代码编写能够有不同的写法。

    代码:

    #include <stdio.h>
      #include <math.h>
      void main()
      {
      int i,n,j,k;
      char s='Y';
      int a=0;
      int maxscore;
      int student[50];
      int number[50];
      double b=0;
      double min = 100 , max = 0;
      while(s=='Y')
      {
      maxscore=-1000;
      printf("请输入游戏人数:");
      scanf("%d",&n);
      printf("请输入游戏局数:");
      scanf("%d",&j);
      for(i=0;i<n;i++) //将得分数组赋值0
      {
      student[i]=0;
      }
      for(k=0;k<j;k++) //局数循环
      {
      for(i=1;i<=n;i++) //输入每个同学的数并求和
      {
      printf("请输入第%d个人的数字:",i);
      scanf("%d",&number[i-1]);
      a += number[i-1];
      }
       
      printf("G值为:%.3f ",b=a/n*0.618); //输出G值
      for(i=0;i<n;i++)
      {
      if(fabs(number[i]-b)<min) //用每个数分别减去G值并取绝对值找到最大绝对值max与最小min
      {
      min=fabs(number[i]-b);
      }
      }
      for(i=0;i<n;i++)
      {
      if(fabs(number[i]-b)>max)
      {
      max=fabs(number[i]-b);
      }
      }
      for(i=0;i<n;i++) //通过max与min找到距离G点最远与最近的数,并将对用同学的成绩进行修改
      {
      if(fabs(number[i]-b)==min)
      {
       
      if(fabs(number[i]-b)==max)
      { student[i]=student[i]+n;
      }
      student[i]-= 2;
      }
      }
      a=0; //每轮游戏结束将一些必要数值重置
      b=0;
      max=0;
      min=100;
      printf("******************************* ");
      for(i=0;i<n;i++) //打印出每个同学成绩
      {
      printf("*第%d位学生的得分为%d ",i+1,student[i]);
      }
      printf("******************************* ");
      }
      for(i=0;i<n;i++) //找到最高分
      {
      if(student[i]>maxscore)
      {
      maxscore=student[i];
      }
      }
       
       
      printf("游戏结束!结果如下: ");
       
      printf("恭喜得数为%d的同学获胜! ",maxscore); //输出游戏结果
      printf("____________________________________________________________________ ");
      printf("是否继续游戏? Y/N "); //游戏结束判断是否继续游戏
      scanf("%s",&s);
      }
       
      }
  • 相关阅读:
    【刷题】BZOJ 4059 [Cerc2012]Non-boring sequences
    【刷题】BZOJ 3745 [Coci2015]Norma
    【刷题】BZOJ 2734 [HNOI2012]集合选数
    【刷题】BZOJ 2287 【POJ Challenge】消失之物
    【刷题】BZOJ 2151 种树
    【刷题】BZOJ 2134 单选错位
    【刷题】BZOJ 1924 [Sdoi2010]所驼门王的宝藏
    【刷题】BZOJ 1823 [JSOI2010]满汉全席
    【刷题】BZOJ 1124 [POI2008]枪战Maf
    编程之美 ---> 1.2中国象棋将帅问题
  • 原文地址:https://www.cnblogs.com/li1158/p/8041268.html
Copyright © 2020-2023  润新知