Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Boardaic · Aug 22, 2017 at 11:31 PM · c#listvector2maxmaximum

Find the highest first value of a vector2 in a list?

I have a list of vector2's:

 List playerSpiele = new List(4);

This is where the List is filled:

 playerSpiele[playerNumber - 1] = new Vector2(game, suit);

I want to find the Vector2 with the highest value of the int "game" and return its index, if there are two of the same value, i want both of their indexes.

I can't think of a way to do this, can anyone help me with it? Thanks in advance!

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by unidad2pete · Aug 22, 2017 at 11:43 PM

You only need a loop to compare each value of your list.

 List<Vector2> List = new List<Vector2>(4) { }; 


 float x = 0;
         float y = 0;
 
         int indexX = 0;
         int indexY = 0;
 
         bool allValues0 = true;
 
         for(int i = 0; i < List.Count; i++)
         {
             if(List[i].x > x)
             {
                 x = List[i].x;
                 indexX = i;
                 allValues0 = false;
             }
             if (List[i].y > y)
             {
                 y = List[i].y;
                 indexY = i;
                 allValues0 = false;
             }
         }
 
         if(allValues0)
         {
             print(" All values are 0");
         } else
         {
             print("the biggest X is = " + x + " on Index = " + indexX);
             print("the biggest Y is = " + y + " on Index = " + indexY);
 
         }
Comment
Add comment · Show 3 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image fafase · Aug 23, 2017 at 07:37 AM 0
Share

That does not seem to fully answer the question, OP asks for all indexes of the highest value. This only returns the first iteration.

avatar image unidad2pete fafase · Aug 23, 2017 at 08:16 AM 1
Share

You right, but I think the question is how do it, and the ansewer is a loop to find all values of a list.

But dont worry:

 public List<Vector2> List;
     public List<int> indexesX;
     public List<int> indexesY;
 
     private void Start()
     {
         List = new List<Vector2>(4) { };
         indexesX = new List<int>();
         indexesY = new List<int>();
     }
 
     private void Update()
     {
         if(Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.Space))
         {
             float x = 0;
             float y = 0;
             indexesX.Clear();
             indexesY.Clear();
             bool allValuesX0 = true;
             bool allValuesY0 = true;
 
 
             for (int i = 0; i < List.Count; i++)
             {
                 if (List[i].x >= x && List[i].x != 0)
                 {
                     if (List[i].x == x)
                     {
                         indexesX.Add(i);
                     }
                     else
                     {
                         x = List[i].x;
                         indexesX.Clear();
                         indexesX.Add(i);
                     }
                     allValuesX0 = false;
                 }
 
                 if (List[i].y >= x && List[i].y != 0)
                 {
                     if (List[i].y == y)
                     {
                         indexesX.Add(i);
                     }
                     else
                     {
                         y = List[i].y;
                         indexesY.Clear();
                         indexesY.Add(i);
                     }
                     allValuesY0 = false;
                 }
             }
 
             if (allValuesX0)
             {
                 print(" All values of X are 0");
             }
             else
             {
 
                 print("the biggest X is = " + x + " on Indexes ");
 
                 foreach (int index in indexesX)
                 {
                     print(index);
                 }
 
             }
             if (allValuesY0)
             {
                 print(" All values of Y are 0");
             }
             else
             {
 
                 print("the biggest Y is = " + y + " on Indexes ");
 
                 foreach (int index in indexesY)
                 {
                     print(index);
                 }
 
             }
         }
     }

avatar image Boardaic unidad2pete · Aug 23, 2017 at 11:01 AM 0
Share

Thank you VERY much this helped me a lot!

avatar image
2

Answer by Xarbrough · Aug 22, 2017 at 11:50 PM

Here is my take:

 public class Data
 {
     public int game;
     public int suit;
 }
 
 List<Data> games = new List<Data>();
 
 private List<int> FindHighestGames(List<Data> input)
 {
     List<int> results = new List<int>(); // Better us HashSet<int> and cache/recycle it.
 
     // Find the highest score.
     int highestGame = -1; // some value, that should never appear in Data.game
     for (int i = 0; i < input.Count; i++)
     {
         if (input[i].game > highestGame)
             highestGame = input[i].game;
     }
 
     // Now find all with the highest score and add them.
     for (int i = 0; i < input.Count; i++)
     {
         if (input[i].game == highestGame)
             results.Add(i); // store index.
     }
     return results;
 }

Things to note:

  • You shouldn't represent score with floats. When you're comparing values, better use ints. You can always convert them to the desired output format later. Comparing floats might cause subtle trouble, for example when checking if they are equals, because of floating-point imprecision.

  • If I understood what you wanted correctly, the algorithm does this: Search for the highest score from a list of inputs. Then checks to see if there are other scores which are the same and returns the indices of them all in a collection.

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Boardaic · Aug 22, 2017 at 11:52 PM 0
Share

great, thanks!

avatar image Boardaic · Aug 23, 2017 at 07:19 AM 0
Share

Sorry, I'm new to coding. How would i convert my Vector2 to Data?

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

375 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

A node in a childnode? 1 Answer

How to read X and Y component ( of a vector2) from a list 1 Answer

Multiple Cars not working 1 Answer

How to make an IList of a certain type? 2 Answers

Distribute terrain in zones 3 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges