• 软件工程结对项目黄金点游戏


    github源码和工程文件地址:https://github.com/HuChengLing/GoldPointGame

    基本要求黄金点游戏是一个数字小游戏。

    其游戏规则是:N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动。

    主要功能:由用户自主输入10个数字,然后由程序自主判断哪些得分和不得分并将结果进行排行。

    设计思想:将小游戏移植到安卓上,有图形界面更吸引人。

     人员:本次结对编程,我的队友是易聪,他是我的室友。他做事比较低调,默默勤劳工作。我们这次编程我们明确分工协同完成此次项目。并分别编写了博客和上传工程文件到GitHub上。

    工程部分源码及效果图

    1.activity——main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.bignerdranch.android.goldpoint.MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="黄金点游戏"
        android:textSize="20sp"
        android:textColor="#000000"
        android:layout_marginTop="100sp"
        android:layout_gravity="center"/>
    
        <TextView
            android:id="@+id/content_textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="10dp"
            android:text="      共十名玩家,每个玩家输入一个0-100的整数,不包括0或100,系统会算出这10个数的平均数然后乘0.618以此为G值,提交的数字最靠近G的玩家得到2分,离G点最远的玩家得到-1分,其他玩家得0分" />
    
        <Button
            android:id="@+id/start_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开始"
            android:textColor="#000000"
            android:background="@drawable/setbar_bg"
            android:layout_gravity="center"
            android:layout_marginTop="15dp"/>
        <LinearLayout
            android:id="@+id/play_linearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:orientation="horizontal">
    
                <Button
                    android:id="@+id/play1_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:text="Play_1"
                    android:textColor="#ffffff"
                    android:textSize="16sp"/>
    
                <Button
                    android:id="@+id/play2_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:text="Play_2"
                    android:textColor="#ffffff"
                    android:textSize="16sp"/>
    
                <Button
                    android:id="@+id/play3_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:text="Play_3"
                    android:textColor="#ffffff"
                    android:textSize="16sp"/>
    
                <Button
                    android:id="@+id/play4_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:text="Play_4"
                    android:textColor="#ffffff"
                    android:textSize="16sp"/>
    
                <Button
                    android:id="@+id/play5_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:text="Play_5"
                    android:textColor="#ffffff"
                    android:textSize="16sp"/>
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_marginTop="10dp">
    
                <Button
                    android:id="@+id/play6_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:textColor="#ffffff"
                    android:text="Play_6"
                    android:layout_marginLeft="5dp"
                    android:textSize="16sp"/>
                <Button
                    android:id="@+id/play7_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:textColor="#ffffff"
                    android:text="Play_7"
                    android:layout_marginLeft="5dp"
                    android:textSize="16sp"/>
                <Button
                    android:id="@+id/play8_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:textColor="#ffffff"
                    android:text="Play_8"
                    android:layout_marginLeft="5dp"
                    android:textSize="16sp"/>
                <Button
                    android:id="@+id/play9_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:textColor="#ffffff"
                    android:text="Play_9"
                    android:layout_marginLeft="5dp"
                    android:textSize="16sp"/>
                <Button
                    android:id="@+id/play10_btn"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:background="@android:color/holo_blue_light"
                    android:textColor="#ffffff"
                    android:text="Play_10"
                    android:layout_marginLeft="5dp"
                    android:textSize="16sp"/>
            </LinearLayout>
    
    
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="35dp">
            <Button
                android:id="@+id/inputEnd_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/holo_blue_bright"
                android:text="输入结束"
                android:textColor="#ffffff"
                android:textSize="16sp"
                android:layout_marginLeft="80dp"/>
            <Button
                android:id="@+id/checkResult_btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@android:color/holo_blue_bright"
                android:text="查看结果"
                android:textColor="#ffffff"
                android:textSize="16sp"
                android:layout_marginLeft="40dp"/>
        </LinearLayout>
    
    </LinearLayout>

    2.mainactivity.java

    package com.bignerdranch.android.goldpoint;
    
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.preference.PreferenceManager;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class MainActivity extends AppCompatActivity {
        private Button mPlayer1;
        private Button mPlayer2;
        private Button mPlayer3;
        private Button mPlayer4;
        private Button mPlayer5;
        private Button mPlayer6;
        private Button mPlayer7;
        private Button mPlayer8;
        private Button mPlayer9;
        private Button mPlayer10;
        private Button mInputEnd;
        private Button mCheckResult;
        private Button mStart;
        private LinearLayout mPlayer;
        private TextView mContent;
        private String mNumber;
        private List<Player> mPlayerList= new ArrayList<>();
        private double[] mValue = new double[10];
        private int[]mScore = new int[10];
        private SharedPreferences mPref;
        private SharedPreferences.Editor mEditor;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
            setupListeners();
        }
        public void initView()
        {
            mPlayer1 = (Button)findViewById(R.id.play1_btn);
            mPlayer2 = (Button)findViewById(R.id.play2_btn);
            mPlayer3 = (Button)findViewById(R.id.play3_btn);
            mPlayer4 = (Button)findViewById(R.id.play4_btn);
            mPlayer5 = (Button)findViewById(R.id.play5_btn);
            mPlayer6 = (Button)findViewById(R.id.play6_btn);
            mPlayer7 = (Button)findViewById(R.id.play7_btn);
            mPlayer8 = (Button)findViewById(R.id.play8_btn);
            mPlayer9 = (Button)findViewById(R.id.play9_btn);
            mPlayer10 = (Button)findViewById(R.id.play10_btn);
            mPlayer = (LinearLayout)findViewById(R.id.play_linearLayout);
            mStart = (Button)findViewById(R.id.start_btn);
            mCheckResult = (Button)findViewById(R.id.checkResult_btn);
            mInputEnd = (Button)findViewById(R.id.inputEnd_btn);
            mContent = (TextView) findViewById(R.id.content_textView);
            mPlayer.setVisibility(View.GONE);
            mInputEnd.setVisibility(View.GONE);
            mCheckResult.setVisibility(View.GONE);
            mPref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
            for(int i=0;i<10;i++)
            {
                Player player = new Player(null,"0");
                mPlayerList.add(i,player);
            }
            Log.i("TAG","test");
            for(int i=0;i<10;i++){
                mScore[i] = mPref.getInt(Integer.toString(i),0);
            }
    
        }
        public void setupListeners() {
    
            mStart.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    mPlayer.setVisibility(View.VISIBLE);
                    mInputEnd.setVisibility(View.VISIBLE);
                    mCheckResult.setVisibility(View.VISIBLE);
                    mStart.setVisibility(View.GONE);
                    mContent.setVisibility(View.GONE);
                }
            });
    
            mPlayer1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                           mNumber = mEditText.getText().toString();
                           mPlayerList.set(0,new Player("1",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer1.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if(mPlayerList.get(0).getNumber()!="0")
                        Toast.makeText(MainActivity.this, mPlayerList.get(0).getNumber(), Toast.LENGTH_SHORT).show();
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                        return false;
                }
            });
    
    
            mPlayer2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                        AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                        dialog.setMessage("请输入你的数字");
                        View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                        final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                        dialog.setView(mView);
    
                        dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                mNumber = mEditText.getText().toString();
                                mPlayerList.set(1,new Player("2",mNumber));
    
                            }
                        });
                        dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
    
                            }
                        });
                        dialog.show();
                }
            });
            mPlayer2.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(1).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(1).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
    
                    return false;
                }
            });
            mPlayer3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mNumber = mEditText.getText().toString();
                            mPlayerList.set(2,new Player("3",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer3.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(2).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(2).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                    return false;
                }
            });
            mPlayer4.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mNumber = mEditText.getText().toString();
                            mPlayerList.set(3,new Player("4",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer4.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(3).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(3).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                    return false;
                }
            });
            mPlayer5.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mNumber = mEditText.getText().toString();
                            mPlayerList.add(4,new Player("5",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer5.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(4).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(4).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                    return false;
                }
            });
            mPlayer6.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mNumber = mEditText.getText().toString();
                            mPlayerList.set(5,new Player("6",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer6.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(5).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(5).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                    return false;
                }
            });
            mPlayer7.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mNumber = mEditText.getText().toString();
                            mPlayerList.set(6,new Player("7",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer7.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(6).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(6).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                    return false;
                }
            });
            mPlayer8.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mNumber = mEditText.getText().toString();
                            mPlayerList.set(7,new Player("8",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer8.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(7).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(7).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                    return false;
                }
            });
            mPlayer9.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mNumber = mEditText.getText().toString();
                            mPlayerList.set(8,new Player("9",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                           dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer9.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(8).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(8).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                    return false;
                }
            });
            mPlayer10.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                    dialog.setMessage("请输入你的数字");
                    View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.input_number_dialog,null);
                    final EditText mEditText = (EditText)mView.findViewById(R.id.dialog_editText);
                    dialog.setView(mView);
    
                    dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            mNumber = mEditText.getText().toString();
                            mPlayerList.add(9,new Player("10",mNumber));
    
                        }
                    });
                    dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
    
                        }
                    });
                    dialog.show();
                }
            });
            mPlayer10.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    if (mPlayerList.get(9).getNumber()!="0"){
                        Toast.makeText(MainActivity.this,mPlayerList.get(9).getNumber(),Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"还没有输入数字",Toast.LENGTH_SHORT).show();
                    }
                    return false;
                }
            });
            mInputEnd.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int i = 0;
                    for(;i<10;i++){
                        if(mPlayerList.get(i).getNumber()=="0")
                            break;
                    }
    
                    if(i!=10)
                    {
                        Toast.makeText(MainActivity.this,"还没有输完,请继续输入",Toast.LENGTH_SHORT).show();
                    }
                    else {
                        Toast.makeText(MainActivity.this,"输入完成",Toast.LENGTH_SHORT).show();
                    }
                }
            });
            mCheckResult.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int j=0;
                    for(;j<10;j++){
                        if(mPlayerList.get(j).getNumber()=="0")
                            break;
                    }
                    if (j==10)
                    {
                         final AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
                        dialog.setMessage("游戏结果");
                        View mView = LayoutInflater.from(MainActivity.this).inflate(R.layout.game_result_dialog,null);
                        Button mPlayerScore = (Button)mView.findViewById(R.id.playerScore_btn);
                        Button mCheckGnumber = (Button)mView.findViewById(R.id.checkG_btn);
                        Button mAgainGame = (Button)mView.findViewById(R.id.againGame_btn);
                        Button mRestart = (Button)mView.findViewById(R.id.reStart_btn);
                        dialog.setView(mView);
                        int num=0;
                        float avg;
                        final Double goal;
                        for(int i=0;i<10;i++)
                        {
                            num = num+Integer.parseInt( mPlayerList.get(i).getNumber());
                        }
                        avg = num/10;
                        goal = avg*0.618;
                        for(int i=0;i<10;i++)
                        {
                            if((double)(Integer.parseInt(mPlayerList.get(i).getNumber()))>goal){
                                mValue[i] = Integer.parseInt(mPlayerList.get(i).getNumber())-goal;
                            }
                            else {
                                mValue[i] = goal - Integer.parseInt(mPlayerList.get(i).getNumber());
                            }
                        }
                        double min= mValue[0];
                        double max= mValue[0];
                        int minIndex =0 ;
                        int maxIndex = 0;
                        for(int i=0;i<10;i++)
                        {
                            if(max<mValue[i])
                            {
                                max = mValue[i];
                                maxIndex = i;
                            }
                            if(min>mValue[i])
                            {
                                min = mValue[i];
                                minIndex = i;
                            }
                        }
                        for(int i =0;i<10;i++)
                        {
                            if(mValue[i]==mValue[maxIndex])
                                mScore[i]-=1;
                        }
                       for( int i=0;i<10;i++){
                           if(mValue[i]==mValue[minIndex])
                               mScore[i]+=2;
                       }
                        for(int i=0;i<10;i++){
                            mEditor = mPref.edit();
                            mEditor.putInt(Integer.toString(i),mScore[i]);
                            mEditor.apply();
                        }
                        mPlayerScore.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
    
                                Intent i = PlayerScoreActivity.newIntent(MainActivity.this,mScore);
                                startActivity(i);
                            }
                        });
                        mCheckGnumber.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
    
                                Toast.makeText(MainActivity.this,Double.toString(goal),Toast.LENGTH_LONG).show();
    
                            }
                        });
                        mAgainGame.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                mPlayerList.clear();
                                Intent i = new Intent(MainActivity.this,MainActivity.class);
                                startActivity(i);
                            }
                        });
    
                        mRestart.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                mEditor.clear();
                                mEditor.apply();
                                Intent i = new Intent(MainActivity.this,MainActivity.class);
                                startActivity(i);
                            }
                        });
                        dialog.show();
                    }
                }
            });
    
        }
    
    }

    总结:此次也是我们第一次尝试运用安卓的知识将项目完成,还有许多有待改进的地方比如哎界面设计还不够精美,逻辑功能也还没完善,没加网络等等。但是我们会努力改进这些问题为了我们以后写出更好的东西。

  • 相关阅读:
    Latin1的所有字符编码
    Qt自定义委托在QTableView中绘制控件、图片、文字(内容比较全)
    Delphi5 update1的序列号
    Access Violation at address 00000000.Read of address 00000000 解决办法
    RealThinClient学习(一)
    使用WebDriver遇到的那些坑
    谱聚类(Spectral Clustering)详解
    Asp.net Mvc4默认权限详细(上)
    ASP.NET Web API中的JSON和XML序列化
    [珠玑之椟]估算的应用与Little定律
  • 原文地址:https://www.cnblogs.com/hcl390220670/p/7667227.html
Copyright © 2020-2023  润新知