Randomized mobile control

By adopting a randomized movement control method in the graphical user interface, detecting obstacle paths and generating randomized instructions, the problems of overlapping objects and overloading of computing resources are solved, and an efficient and pleasant user experience and simplified user interaction are achieved.

CN119136883APending Publication Date: 2024-12-13SUPERCELL
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380038145.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-05-11
Filing Date
2023-04-12
Publication Date
2024-12-13

AI Technical Summary

Technical Problem

In the prior art, objects are prone to overlap or trapped in obstacles when moving in a graphical user interface, resulting in unpleasant user experience and overload of computing resources, and user input is complex and cumbersome.

Method used

Randomized movement control method is adopted to detect obstacle paths, randomized instructions are generated to control the movement of objects, avoid overlap and jamming, simplify user input and reduce calculation load.

Benefits of technology

It achieves no overlap between objects when moving the target area, simplifies user interaction, reduces computing load, and provides a pleasant user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119136883A_ABST
    Figure CN119136883A_ABST
Patent Text Reader

Abstract

A computer-implemented method is disclosed, the method comprising generating and displaying a graphical user interface (203, 300, 400, 500, 600) on a display screen (202) of a device (200); receiving a request to move at least one group (206, 302, 402, 502A-C, 602) of objects to a target area (208, 304, 404, 504, 604) on the graphical user interface, detecting when at least one obstacle (210, 212, 306, 308, 406) is located in a path between the target area and the at least one group of objects; when it is detected that at least one obstacle is located in the path, generating an instruction for controlling the movement of objects (206A-E, 402A-C, 602A-C) in at least one group in a randomized manner, where the instruction indicates at least one randomly variable parameter to be employed during the movement of a given object in the at least one group; and executing the instructions to control movement of the objects in the at least one group from their respective starting positions to the target area on the graphical user interface.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a computer-implemented method incorporating randomized movement control. The present disclosure also relates to an apparatus incorporating randomized movement control. The present disclosure also relates to a system incorporating randomized movement control. Background Art

[0002] Often, graphical user interfaces of software applications involving the movement of objects from one location to another with one or more obstacles in between may present scenarios that may result in an unpleasant user experience. One such scenario includes overlapping multiple objects one on top of another while moving multiple objects from one location to another when an object passes through a space between two or more obstacles or circumvents an obstacle.

[0003] Typically, in order to perform such a function using a graphical user interface, one approach is to allow all objects to bypass (i.e., circumvent) obstacles, or to pass through a narrow passage between two or more obstacles at a time. However, this results in the generation of a graphical user interface in which objects are rendered one on top of another (in an overlapping manner), or some of the objects are trapped around obstacles. Therefore, this prevents the efficient movement of the group of objects to the target area when there are one or more obstacles in the path to the target area. In addition, this results in an unpleasant and unrealistic user interface, thereby destroying the user's immersion. For example, in the case of a simulator that simulates the movement of vehicles in a track (i.e., a traffic simulator), movable objects or vehicles appear on top of each other. In addition, such movement of multiple objects may overload the system's computing resources and increase its computing power consumption.

[0004] In other conventional systems, the user needs to provide separate requests to move at least one individual object in a group; this makes the user's input complex and cumbersome. In addition, the user may also need to provide input on how to move the objects one by one towards the target area. This greatly increases the computational load of the system.

[0005] Therefore, in light of the above discussion, there exists a need to overcome the above-mentioned disadvantages associated with conventional movement control of objects. Summary of the invention

[0006] The present disclosure seeks to provide a computer-implemented method incorporating randomized movement control. The present disclosure also seeks to provide an apparatus incorporating randomized movement control. The present invention also relates to a system incorporating randomized movement control. The purpose of the present disclosure is to provide a solution for at least partially overcoming the problems encountered in the prior art.

[0007] In a first aspect, an embodiment of the present disclosure provides a computer-implemented method, the method comprising:

[0008] - generating and displaying a graphical user interface on a display screen of the device;

[0009] - receiving a request to move at least one group of objects to a target area on the graphical user interface;

[0010] - detecting when at least one obstacle is in a path between the target area and at least one group of objects;

[0011] - generating instructions for controlling the movement of objects in at least one group in a randomized manner when at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; and

[0012] - The instructions are executed to control movement of objects in at least one group from their respective starting positions to a target area on the graphical user interface.

[0013] In a second aspect, an embodiment of the present disclosure provides a device, the device comprising:

[0014] Display screen; and

[0015] The processor is configured as:

[0016] - generating and displaying a graphical user interface on a display screen;

[0017] - receiving a request to move at least one group of objects to a target area on the graphical user interface;

[0018] - detecting when at least one obstacle is in a path between the target area and at least one group of objects;

[0019] - generating instructions for controlling the movement of objects in at least one group in a randomized manner when at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; and

[0020] - The instructions are executed to control movement of objects in at least one group from their respective starting positions to a target area on the graphical user interface.

[0021] In a third aspect, an embodiment of the present disclosure provides a system, comprising a server communicatively coupled to a plurality of apparatuses of the second aspect, wherein the plurality of apparatuses collaborate via respective graphical user interfaces, wherein the server is configured to:

[0022] - receiving a request from a given device to move at least one group of objects to a target area on a corresponding graphical user interface;

[0023] - detecting when at least one obstacle is located in a path between the target area and at least one group of objects on a corresponding graphical user interface;

[0024] - generating instructions for controlling the movement of objects in at least one group in a randomized manner when at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; and

[0025] - sending the generated instructions to a given device,

[0026] Wherein the processor of the given device is configured to execute the instructions to control movement of objects in at least one group from their respective starting positions to a target area on the graphical user interface.

[0027] In a fourth aspect, an embodiment of the present disclosure provides a computer program product, which includes a non-transitory computer-readable storage medium having computer-readable instructions stored thereon, and the computer-readable instructions are executable by a computing device including a processor to perform the method of the first aspect above.

[0028] The embodiments of the present disclosure substantially eliminate or at least partially solve the above-mentioned problems in the prior art, and make it possible to render the movement of at least one group of objects to a target area on a user interface in a randomized manner without requiring any specific user input on how to move the objects, so that objects in at least one group of objects do not overlap with each other when moving to the target area therein.

[0029] Other aspects, advantages, features and objects of the present disclosure will become apparent from the accompanying drawings and detailed description of illustrative embodiments, which are interpreted in conjunction with the appended claims.

[0030] It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0031] When read in conjunction with the accompanying drawings, the above summary and the following detailed description of exemplary embodiments may be better understood. In order to illustrate the present disclosure, exemplary configurations of the present disclosure are shown in the accompanying drawings. However, the present disclosure is not limited to the specific methods and tools disclosed herein. In addition, it will be appreciated by those skilled in the art that the accompanying drawings are not drawn to scale. Where possible, identical elements are represented by identical numerals.

[0032] Embodiments of the present disclosure will now be described, by way of example only, with reference to the following drawings, in which:

[0033] Figure 1is a flow chart depicting the steps of a computer-implemented method incorporating randomized movement control according to an embodiment of the present disclosure;

[0034] Figure 2A and Figure 2B are schematic diagrams of a device incorporating randomized movement control and a graphical user interface of the device according to an embodiment of the present disclosure;

[0035] Figure 3 is a schematic diagram of steps of an implementation scenario of a computer-implemented method incorporating randomized movement control according to an embodiment of the present disclosure;

[0036] Figure 4 is a schematic diagram of a graphical user interface according to an embodiment of the present disclosure, which depicts an implementation scenario of a computer-implemented method incorporating randomized movement control;

[0037] Figure 5A and Figure 5B are schematic diagrams of implementation scenarios of a computer-implemented method incorporating randomized movement control according to an embodiment of the present disclosure; and

[0038] Figure 6 It is a schematic diagram of an implementation scenario of a computer-implemented method incorporating randomized movement control according to an embodiment of the present disclosure.

[0039] In the accompanying drawings, underlined numbers are used to indicate the item in which the underlined number is located or the item to which the underlined number is adjacent. Non-underlined numbers are associated with the item identified by the line linking the non-underlined number to the item. When a number is not underlined and has an associated arrow, the number is used to identify the general item that the arrow points to. DETAILED DESCRIPTION

[0040] The following detailed description describes embodiments of the present disclosure and their implementation. Although some modes for implementing the present disclosure have been disclosed, those skilled in the art will recognize that other embodiments for implementing or practicing the present disclosure are also possible.

[0041] In a first aspect, an embodiment of the present disclosure provides a computer-implemented method, the method comprising:

[0042] - generating and displaying a graphical user interface on a display screen of the device;

[0043] - receiving a request to move at least one group of objects to a target area on the graphical user interface;

[0044] - detecting when at least one obstacle is in a path between the target area and at least one group of objects;

[0045] - generating instructions for controlling the movement of objects in at least one group in a randomized manner when at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; and

[0046] - The instructions are executed to control movement of objects in at least one group from their respective starting positions to a target area on the graphical user interface.

[0047] In a second aspect, an embodiment of the present disclosure provides a device, the device comprising:

[0048] Display screen; and

[0049] The processor is configured as:

[0050] - generating and displaying a graphical user interface on a display screen;

[0051] - receiving a request to move at least one group of objects to a target area on the graphical user interface;

[0052] - detecting when at least one obstacle is in a path between the target area and at least one group of objects;

[0053] - generating instructions for controlling the movement of objects in at least one group in a randomized manner when at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; and

[0054] - The instructions are executed to control movement of objects in at least one group from their respective starting positions to a target area on the graphical user interface.

[0055] In a third aspect, an embodiment of the present disclosure provides a system, comprising a server communicatively coupled to a plurality of apparatuses of the second aspect, wherein the plurality of apparatuses collaborate via respective graphical user interfaces, wherein the server is configured to:

[0056] - receiving a request from a given device to move at least one group of objects to a target area on a corresponding graphical user interface;

[0057] - detecting when at least one obstacle is located in a path between the target area and at least one group of objects on a corresponding graphical user interface;

[0058] - generating instructions for controlling the movement of objects in at least one group in a randomized manner when at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; and

[0059] - sending the generated instructions to a given device,

[0060] Wherein the processor of the given device is configured to execute the instructions to control movement of objects in at least one group from their respective starting positions to a target area on the graphical user interface.

[0061] In a fourth aspect, an embodiment of the present disclosure provides a computer program product, which includes a non-transitory computer-readable storage medium having computer-readable instructions stored thereon, and the computer-readable instructions are executable by a computing device including a processor to perform the method of the first aspect above.

[0062] The present disclosure provides the above-mentioned computer-implemented method, the above-mentioned device and the above-mentioned system. The embodiments of the present disclosure are intended to control the movement of at least one group of objects in a randomized manner so that when at least one obstacle is in the path of the object, the objects in at least one group will not accumulate or overlap while moving to the target area. In addition, since the user does not have to provide a separate request to move the individual objects in at least one group, the user's input becomes easier and simplified. In other words, the objects in at least one group can be moved based on a single request from the user. In addition, due to the randomized control of movement, the user's interaction with the graphical user interface is simplified because the user does not need to provide any input on how to move the object toward the target area. In addition, this randomized control of movement can reduce the computational load of the device. In addition, the GUI provides a pleasant and realistic user experience so that a given object does not have any undesirable visual graphics that are stuck or overlapped with each other when moving toward the target area.

[0063] The method of the present disclosure is computer-implemented, that is, the above method is implemented via one or more computing devices (i.e., devices and / or servers). The device refers to an electronic device associated with a user (i.e., used by a user), which enables a user to perform a specific task thereon (or with it). Examples of computing devices may include, but are not limited to, cellular phones, personal digital assistants (PDAs), handheld devices, laptop computers, personal computers, etc. Optionally, a user can be any entity associated with the device and / or server and operating the device and / or server, such as a person (i.e., a human being) or a virtual program (such as an autonomous program, software application, or robot). It is noteworthy that the device is configured to provide a graphical user interface on its display screen. Beneficially, the interaction between the user and the device allows effective operation and control therebetween.

[0064] The term "display screen" as used herein refers to the screen of the device. Typically, the display screen is configured to provide visual graphics of a graphical user interface to a user.

[0065] The term "Graphical User Interface" (GUI) as used herein refers to the space in which the interaction between a user and the device occurs. Typically, a GUI presents one or more spatially distributed elements. Advantageously, the interaction between the user and the device allows for efficient operation and control thereof. Furthermore, the GUI is designed to allow the user to interact with the device easily and efficiently in a user-friendly manner to provide maximum usability, thereby reducing the amount of user input to achieve a desired output.

[0066] Typically, a GUI may include: one or more layers, including a human-machine interface (HMI) that interfaces the machine with physical input hardware (such as a keyboard, mouse, touch screen, or game pad); and output hardware, such as a computer display, speakers, printers, etc. In addition, the GUI layer may interact with one or more human senses and may include at least one of a tactile GUI (touch), a visual GUI (vision), an auditory GUI (sound), an olfactory GUI (smell), a balance GUI (balance), and a taste GUI (taste). Here, the user interface includes a visual GUI and a tactile GUI for displaying graphics and receiving user input, respectively. In addition, when sound is added to the user interface, the above user interface becomes a multimedia user interface (MUI).

[0067] Here, the GUI is such that at least one group of objects is displayed to the user via a display screen of the device. Subsequently, the GUI receives a request from the user to move at least one group of objects to a target area on the GUI. Optionally, the target area can be specified by the user or by a processor of the device or a processor of a server. Optionally, the target area is specified by the user, for example via a finger click on a display screen, wherein the display screen is in the form of a touch screen. Alternatively, the user can specify the target area via a mouse click. In one implementation, when the user is an automated software application for simulation purposes, the request to move at least one group of objects is received from the automated software application itself, while also specifying the target area.

[0068] The term "processor of the device" as used herein refers to a computing element that is operable to respond to and process instructions given by a user and control the operation of the device. Examples of processors include, but are not limited to, microprocessors, microcontrollers, complex instruction set computing (CISC) microprocessors, reduced instruction set computing (RISC) microprocessors, very long instruction words (VLIW) microprocessors, or any other type of processing circuits. In addition, a processor may refer to one or more individual processors, processing devices, and various elements associated with a processing device that may be shared by other processing devices. In addition, one or more individual processors, processing devices, and elements are arranged in various architectures for responding to and processing instructions that drive the device. It should be understood that each device is configured to have a processor therein.

[0069] The term "server" as used herein refers to a powerful physical or virtual infrastructure that has been virtualized, which is used to perform application and information processing storage, and allows users to remotely access the stored information through a data communication network. The server includes suitable logic, circuit systems, interfaces and / or codes configured to store, process and / or receive information corresponding to the received request from the device. In addition, in some implementations, the server is configured to provide real-time instructions based on the received request. It should be understood that the server can be a cloud server. In addition, the server can be a single server or multiple servers, which operate in a parallel or distributed architecture to be operably coupled with the disclosed device or similar system. Examples of servers include, but are not limited to, storage servers, network servers, application servers, or combinations thereof.

[0070] The method includes detecting when at least one obstacle is in a path between a target area and at least one group of objects. Here, such detection ensures effective control of the movement of the at least one group of objects toward the target area, so that when moving toward the target area, the at least one group of objects does not collide with the at least one obstacle, or objects in the at least one group of objects do not collide and overlap.

[0071] In one implementation, when an obstacle can be detected in the path between the target area and at least one group of objects, at least one group of objects is moved to the target area by bypassing at least one obstacle to avoid any collision between at least one group of objects and at least one obstacle. In another implementation, when two or more obstacles can be detected in the path between the target area and at least one group of objects, so that the objects must pass through a narrow passage between the two or more obstacles when moving to the target area, it is ensured that at least one group of objects is moved to the target area so that there is no collision or overlap between objects in at least one group of objects when passing through the narrow passage between the two or more obstacles to reach the target area.

[0072] In one implementation, when it is detected that there are no obstacles in the path between the target area and the at least one group of objects, each given object in the at least one group of objects is moved to the target via the shortest path to the target area.

[0073] It should be understood that the object can be a user-controllable object in a game, a virtual vehicle in a traffic simulation, etc. In one embodiment, the object is an autonomous vehicle, such as a delivery vehicle. In the above embodiment, in the case where two or more objects arrive in front of a narrow passage between two or more obstacles, the objects can form at least one group of objects, and the start of their movement toward the narrow passage can be initiated in a randomized manner so that the objects do not collide or overlap when moving toward the target area via the narrow passage. In this way, the embodiments of the present disclosure do not need to form a specific decision tree to work.

[0074] In addition, when at least one obstacle is detected to be located in the path, the method includes generating instructions for controlling the movement of objects in at least one group in a randomized manner, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group. Here, the randomized movement of objects in at least one group of objects prevents one or more objects from accumulating near at least one obstacle at a time. Here, the term "randomized manner" refers to the selection of objects in at least one group of objects for movement toward a target area without being affected by irrelevant variables. In this regard, optionally, the movement of objects in at least one group is controlled in a randomized manner regardless of their proximity to the target area or at least one obstacle.

[0075] Here, the term "instruction" refers to a computer executable command that can be executed by the processor of the device. It should be understood that the instruction can be generated by the processor of the device (such as in a single-user application, such as a single-user game) or by a processor of a server coupled to multiple devices (such as in a multi-user application, such as a multi-user game). In one embodiment, a single instruction can be applied to all objects in at least one group of objects. Beneficially, such a single instruction prevents the need to generate individual instructions for each object in at least one group of objects. Here, a "random variable parameter" is a parameter associated with randomization in the movement of a given object. Optionally, the random variable parameter can be randomly selected by the processor of the device or by the processor of the server. Beneficially, the random selection of the random variable parameter by the server helps to reduce the load on the processor of the device because all calculations are performed at the server.

[0076] Optionally, at least one randomly variable parameter includes at least one of the following: a starting time for a given object to move, a speed for a given object to move, a direction for a given object to start moving, and an initial distance for a given object to cover in the above direction. It should be understood that since the randomly variable parameters are randomly generated, the probability that two objects have the same random variable parameter value is very small. Therefore, when moving towards the target area, no objects collide or overlap with each other. In addition, due to the randomized control of movement, the user's interaction with the graphical user interface is simplified because the user does not need to provide any input on how to move the object towards the target area.

[0077] Optionally, at least one randomly variable parameter includes a start time for a given object to move, and wherein the method further comprises randomly selecting the start time to start within a predefined time period starting from a predefined time (t0). In this regard, each given object in at least one group of objects is randomized to have a different start time, i.e., the time at which the given object starts to move toward the target area, thereby ensuring that there is no accumulation of given objects in at least one group near at least one obstacle detected when moving toward the target area. The term "predefined time" (t0) as used herein refers to a reference time instance from which the predefined time period is calculated. Optionally, the predefined time (t0) can be a time instance at which a request is provided by a user, or a time instance at which the first object starts to move toward the target area. Subsequently, the start time of the given object is randomly selected so that it is within a predefined time period starting from the predefined time (t0). Optionally, the length of the predefined time period can be in the range of 0.1 to 1.0 seconds. For example, for the nth object, the start time may be selected to be at 0.1 seconds from the predefined time (t0), and for the n+1th object, the start time may be selected to be at 0.3 seconds from the predefined time (t0). As another example, the start time of a given object is selected to be t0+0.5 seconds, where t0 is the predefined time at which the user request is received, and +0.5 seconds is selected as a random variable parameter of the given object; in this case, the given object will start moving towards the target area at time t0+0.5 seconds. Optionally, the random selection of the start time of a given object may be performed by a processor of the device or by a server. In this way, due to the randomized control of movement, the user's interaction with the graphical user interface is simplified because the user does not need to provide any input regarding different start times for the object to start moving towards the target area. In addition, such randomized control of movement can reduce the computational load of the device because the device does not need to collect and process separate inputs regarding different start times, nor does it need to adopt any rules to determine the start time.

[0078] Additionally or alternatively, optionally, at least one randomly variable parameter includes a speed at which a given object is to move, and wherein the method further comprises randomly selecting a speed from a predefined speed range. In this regard, the start time of movement of each given object may be the same, but the initial speed may be a random variation of the average speed of the objects in at least one group of objects. For example, the average moving speed of the object may be 100 pixels per second; in this case, the predefined speed range may be from 70 pixels per second to 130 pixels per second. In addition, each given object in at least one group is randomized to have a different speed, that is, the speed at which the given object starts to move toward the target area, thereby ensuring that there will be no accumulation of the given objects in at least one group near at least one obstacle detected when moving toward the target area. The term "predefined speed range" as used herein refers to a reference speed range from which the speed is randomly selected. For example, the speed at which the first given object, the second given object, and the third given object in at least one group are to move may be randomly selected as 80 pixels per second, 100 pixels per second, and 130 pixels per second, respectively. Optionally, the random selection of the speed at which the given object is to move may be performed by a processor of the device or by a server. Advantageously, due to the randomized control of movement, user interaction with the graphical user interface is simplified, as the user does not need to provide any input regarding the different speeds at which the object moves toward the target area. In addition, such randomized control of movement can reduce the computational load of the device, as the device does not need to collect and process separate inputs regarding different speeds, nor does it need to employ any rules to determine the speed.

[0079] Additionally or alternatively, optionally, the at least one randomly variable parameter comprises a direction in which the given object is to start moving, wherein the method further comprises:

[0080] - for a given object, determining that the given object can be located based on the relative positions of the target area, at least one obstacle, and the remaining objects in at least one group relative to the given object

[0081] The range of directions to start moving; and

[0082] -Randomly select a direction from this range of directions for a given object to start moving.

[0083] In this regard, each given object in at least one group can be randomized to have a separate direction in which the given object is to start moving, thereby ensuring that when moving toward the target area, there is no accumulation of the given object in at least one group near the detected at least one obstacle. In addition, based on the relative positions of the target area, at least one obstacle and the remaining objects in at least one group relative to the given object, a range of directions in which the given object can move can be determined. Subsequently, from the determined range of directions, the direction in which the given object is to start moving is randomly selected. Optionally, the random selection of the direction in which the given object is to move can be performed by the processor of the device or by a server. In addition, due to the randomized control of movement, the user's interaction with the graphical user interface is simplified because the user does not need to provide any input about the different directions in which the object starts moving. In addition, this randomized control of movement can reduce the computational load of the device because the device does not need to collect and process separate inputs about different directions, nor does it need to adopt any rules to determine the direction.

[0084] It should be understood that in the case of performing a random selection of the direction of movement, at least one randomly variable parameter may also include an initial distance to be covered by a given object in the above-mentioned direction. This is because such a random selection of the direction may cause the given object to move in a direction away from the target area. In this case, after the initial distance is covered in the above-mentioned direction, a change in the direction of the given object may be achieved to direct the given object towards the target area. Therefore, the method may also include randomly selecting an initial distance to be covered by a given object from a predefined initial distance range. In this way, some objects may not take the shortest route, but may take a detour, thereby generating a random arrival time of the object through a narrow passage between at least one obstacle.

[0085] In addition, optionally, the instruction is generated to control the movement of the object in at least one group in a way that the object arrives at the target area in a predefined order. In this regard, the randomization of the movement of a given object in at least one group is performed in such a way that the order in which the objects in at least one group arrive at the target area is specific. In one implementation, the movement of the object to the target area in a predefined order can be very important, because some objects in at least one group with a higher priority may need to arrive at the target area first, and other objects in at least one group with a lower priority may need to arrive at the target area later. In this case, random selection can be performed in a sub-range (i.e., slab) of a predefined range. Therefore, due to the randomization control of movement, the interaction of the user with the graphical user interface is simplified, because the user does not need to provide any input about how to move the object toward the target area. In addition, this randomization control of movement can reduce the computational load of the device.

[0086] In addition, the method includes executing the instructions to control the movement of the objects in the at least one group from their respective starting positions to a target area on the graphical user interface. Here, the "corresponding starting position" refers to the corresponding position of the given object when the request is received. Subsequently, after generating the instructions for the objects in the at least one group, the generated instructions are executed to control the movement of the objects from their respective starting positions to the target area in a randomized manner, which movement is displayed to the user via the GUI. Therefore, the method ensures that there is no accumulation of the given objects in the at least one group or overlap of the given objects near the at least one detected obstacle visible on the GUI while moving towards the target area.

[0087] Optionally, the method also includes identifying a main object from the objects in at least one group, wherein the movement of the main object is followed by the movement of the remaining objects in at least one group. Here, according to the selected random variable parameters, the movement of the objects in at least one group is randomized so that the main object arrives at the target area first, and the remaining objects follow the movement of the main object and arrive at the target area after the main object. In this case, the main object can be considered to be an object with high priority. Therefore, random variable parameters cannot be selected for the main object. In addition, since the user does not have to provide separate requests to move individual objects in at least one group, the user's input becomes easier and simplified. In other words, objects in at least one group can be moved based on a single request from the user, such as to follow the main object as a result of randomized control of its movement. In addition, the user's interaction with the graphical user interface is simplified and the computational load of the device is potentially reduced.

[0088] In one implementation, where the GUI is a traffic simulation software and at least one group of objects is a convoy of cars moving to a target area, a particular car is identified as a primary object within the convoy and the remaining cars follow the particular car identified as the primary object as they move toward the target area. Here, the convoy of cars may be randomized so that the movement speed of the particular car identified as the primary object is higher than the movement rate of the remaining cars in the convoy. Additionally or alternatively, the movement of the particular car may start earlier than the movement of the remaining cars. Advantageously, the primary object moves without any distortion and speeds up the movement of the remaining objects. Thus, the car identified as the primary object leads the convoy and the remaining cars in the convoy follow the movement of the car identified as the primary object.

[0089] In one embodiment, instructions corresponding to the movement of the primary object and the remaining objects in at least one group are received and buffered. The instructions are retrieved from the buffer and executed randomly (or based on other rules) for the primary object and the remaining objects. In a software architecture, movement commands can be provided to any number of objects by directing the commands to each object. This is beneficial in situations where each object is architecturally separate and independent of each other.

[0090] Optionally, at least one group of objects includes multiple groups of objects, wherein the method also includes assigning corresponding intermediate target areas to multiple groups of objects, wherein the objects in a given group first arrive at the corresponding intermediate object area, and then move toward the target area from its corresponding intermediate target area. It should be understood that in some cases, some objects in the first group of objects moving toward the target area with random variable parameters (start time, direction, speed and / or distance) can be able to pass through narrow passages. In the above case, a second group of objects can be formed for the objects trapped in the narrow passage. The movement of the second group of objects can be re-randomized (i.e., iteratively randomized) to have new random variable parameters (start time, direction, speed and / or distance), so that the objects in the second group of objects can pass through narrow passages. Here, each object in multiple objects (i.e., objects in the first group and the second group) can be randomized to move to the corresponding intermediate target area, and is again randomized to move to the target area from the corresponding intermediate object area.

[0091] Optionally, the method further comprises dividing the plurality of objects presented on the graphical user interface into a plurality of groups based on at least one of a distance of a given object from the target area and a signal strength of a sensor of the given object.

[0092] In one implementation, the GUI is a game application, wherein at least one group of objects refers to a user's army, and the target area refers to an area where an enemy army is located. In this regard, the user's army is composed of a plurality of troops (i.e., a plurality of objects), wherein each troop has a corresponding strike range. Here, based on the strike range of each troop in the plurality of troops relative to the target area, the plurality of troops can be divided into different groups and first moved to their corresponding intermediate target areas to form an optimal defense formation of the user's army. Subsequently, each troop in the plurality of troops is moved from its corresponding intermediate target area to the target area.

[0093] The present disclosure also relates to a device as described above. The various embodiments and modifications disclosed above apply to the device mutatis mutandis.

[0094] Optionally, the at least one randomly variable parameter includes at least one of the following: a starting time for a given object to move, a speed for a given object to move, a direction for a given object to start moving, and an initial distance for a given object to cover in the above direction.

[0095] Optionally, the at least one randomly variable parameter comprises a start time at which a given object is to be moved, and wherein the processor is further configured to randomly select the start time to begin within a predefined time period from a predefined time (t0).

[0096] Optionally, the at least one randomly variable parameter comprises a speed at which a given object is to move, and wherein the processor is further configured to randomly select said speed from a predefined speed range.

[0097] Optionally, the at least one randomly variable parameter includes a direction in which the given object is to start moving, wherein the processor is further configured to:

[0098] - for a given object, determining that the given object can be located based on the relative positions of the target area, at least one obstacle, and the remaining objects in at least one group relative to the given object

[0099] The range of directions to start moving; and

[0100] -Randomly select a direction from this range of directions for a given object to start moving.

[0101] The present disclosure also relates to a system as described above. The various embodiments and modifications disclosed above apply to the system mutatis mutandis.

[0102] It should be understood that the multiple devices and graphical user interface are only for multiple devices corresponding to the above-mentioned devices and graphical user interface of the second aspect. Here, the multiple devices can collaborate on the same software application managed and served by the server.

[0103] Optionally, the at least one randomly variable parameter includes at least one of the following: a starting time for a given object to move, a speed for a given object to move, a direction for a given object to start moving, and an initial distance for a given object to cover in the above direction.

[0104] Optionally, at least one randomly variable parameter comprises a start time at which a given object is to be moved, and wherein the server or the processor is further configured to randomly select the start time to start within a predefined time period from a predefined time (t0).

[0105] Optionally, the at least one randomly variable parameter comprises a speed at which a given object is to move, and wherein the server or processor is further configured to randomly select the speed from a predefined speed range.

[0106] Optionally, the at least one randomly variable parameter includes a direction in which the given object is to start moving, wherein the server or processor is further configured to:

[0107] - for a given object, determining that the given object can be located based on the relative positions of the target area, at least one obstacle, and the remaining objects in at least one group relative to the given object

[0108] The range of directions to start moving; and

[0109] -Randomly select a direction from this range of directions for a given object to start moving.

[0110] The present disclosure also relates to a computer program product as described above. The various embodiments and variations disclosed above apply mutatis mutandis to the computer program product.

[0111] Optionally, the computer program product is implemented as an algorithm embedded in software stored in a non-transitory computer-readable storage medium. The non-transitory computer-readable storage medium may include, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above devices. Examples of implementations of computer-readable storage media include, but are not limited to, electrically erasable programmable read-only memory (EEPROM), random access memory (RAM), read-only memory (ROM), hard disk drive (HDD), flash memory, secure digital (SD) card, solid-state drive (SSD), computer-readable storage medium, and / or CPU cache.

[0112] An alternative embodiment of the present disclosure provides a computer-implemented method comprising:

[0113] - generating and displaying a graphical user interface on a display screen of the device;

[0114] - receiving a request to move at least one group of objects to a target area on the graphical user interface;

[0115] - generating instructions for controlling the movement of objects in at least one group in a randomized manner, wherein the instructions indicate that during the movement of a given object in at least one group

[0116] at least one randomly variable parameter employed; and

[0117] - executing the instructions to control the movement of the objects in the at least one group from their respective starting positions to the target area on the graphical user interface. In fact, in some cases, the instructions related to moving the objects may also be provided in a randomized manner without checking in advance whether there is at least one obstacle in the path between the target area and the at least one group of objects. The benefit of this alternative embodiment is that the executable software may be made simpler if randomized instructions are generated (as a default) for the received move request(s).

[0118] Detailed description of the drawings

[0119] refer to Figure 1 , a flowchart 100 is illustrated according to an embodiment of the present disclosure, which depicts the steps of a computer-implemented method incorporating randomized movement control. In step 102, a graphical user interface is generated and displayed on a display screen of a device. In step 104, a request is received to move at least one group of objects to a target area on the graphical user interface. In step 106, at least one obstacle is detected when it is located in a path between the target area and at least one group of objects. In step 108, when at least one obstacle is detected to be located in the path, an instruction is generated for controlling the movement of the objects in at least one group in a randomized manner, wherein the instruction indicates at least one randomly variable parameter to be adopted during the movement of a given object in at least one group. In step 110, the instruction is executed to control the movement of the objects in at least one group from their respective starting positions to the target area on the graphical user interface.

[0120] Steps 102, 104, 106, 108 and 110 are merely illustrative, and other alternatives may be provided in which one or more steps are added, one or more steps are deleted, or one or more steps are provided in a different order without departing from the scope of the claims herein.

[0121] refer to Figure 2A and Figure 2B , respectively illustrate schematic diagrams of a device 200 combined with randomized movement control according to an embodiment of the present disclosure and a graphical user interface 203 of the device 200. Figure 2A As shown, the device 200 includes a display screen 202 and a processor 204. Figure 2B As shown, the display screen 202 of the device 200 renders a graphical user interface 203. Here, the graphical user interface 203 depicts at least one group 206 of objects, wherein the at least one group 206 of objects includes objects 206A, 206B, 206C, 206D, and 206E. In addition, the graphical user interface 203 depicts two obstacles 210 and 212 in the path toward the target area 208, respectively, so that a narrow passage is generated between the obstacles 210 and 212, and the at least one group 206 of objects must pass through the passage to reach the target area 208.

[0122] refer to Figure 3, a schematic diagram of the steps of an implementation scenario of a computer-implemented method incorporating randomized movement control according to an embodiment of the present disclosure is illustrated. As shown in the figure, in step S1, a request to move at least one group 302 of objects to a target area 304 is received via a graphical user interface 300. In step S2, object C in at least one group 302 of objects is randomized to start moving toward the target area 304 before other objects (A, B, D, and E) in at least one group 302. In step S3, object E in at least one group 302 is randomized to start moving toward the target area 304. In step S4, each of objects A, B, C, D, and E in at least one group 302 is randomized to start moving toward the target area 304. In step S5, due to the control of the movement of at least one group 302 of objects in a randomized manner, each of objects A, B, C, D, and E in at least one group 302 moves one by one in an organized manner through the narrow passage between obstacles 306 and 308 to reach the target area 304. In step S6 , each of the objects A, B, C, D, and E in the at least one group 302 reaches the target area 304 one by one.

[0123] refer to Figure 4 , illustrates a schematic diagram of a graphical user interface 400 according to an embodiment of the present disclosure, which depicts an implementation scenario of a computer-implemented method incorporating randomized movement control. Figure 4 As shown, the graphical user interface 400 depicts that given objects 402A, 402B, and 402C in at least one group 402 of objects are randomized to move in different directions (shown as dashed lines L1, L2, and L3, respectively) to reach a target area 404, thereby avoiding accumulation of the given objects 402B, 402A, and 402C around an obstacle 406 when reaching the target area 404.

[0124] Common Reference Figure 5A and Figure 5B , which illustrates a schematic diagram of an implementation scenario of a computer-implemented method incorporating randomized movement control according to an embodiment of the present disclosure. Figure 5A As shown, graphical user interface 500 depicts a plurality of groups of objects, which are depicted as groups 502A, 502B, and 502C. Additionally, graphical user interface depicts target area 504.

[0125] like Figure 5B As shown, graphical user interface 500 depicts that multiple groups of objects 502A, 502B, and 502C have been moved to corresponding intermediate target areas 504A, 504B, and 504C, respectively. In addition, from corresponding intermediate target areas 504A, 504B, and 504C, multiple groups of objects will be moved to target area 504.

[0126] refer to Figure 6 , which illustrates a schematic diagram of an implementation scenario of a computer-implemented method incorporating randomized movement control according to an embodiment of the present disclosure. Figure 6 As shown, the graphical user interface 600 depicts at least one group 602 of objects, including a primary object 602A and remaining objects 602B and 602C. Here, the primary object 602A first begins to move toward a target area 604, and while moving toward the target area 604, the movement of the primary object 602 is followed by the remaining objects 602B and 602C in the at least one group 602.

[0127] The embodiments of the present disclosure described above may be modified without departing from the scope of the present disclosure as defined by the appended claims. Expressions such as "including," "comprising," "incorporating," "have," "is," etc. used to describe and claim the present disclosure are intended to be interpreted in a non-exclusive manner, i.e., allowing for the presence of items, components, or elements that are not explicitly described. References to the singular should also be interpreted as relating to the plural.

Claims

1. A computer-implemented method comprising: - generating and displaying a graphical user interface (203, 300, 400, 500, 600) on a display screen (202) of the device (200); - receiving a request to move at least one group of objects (206, 302, 402, 502A-C, 602) to a target area (208, 304, 404, 504, 604) on the graphical user interface; - detecting when at least one obstacle (210, 212, 306, 308, 406) is in a path between the target area and at least one group of objects; - generating instructions for controlling the movement of the objects (206A-E, 402A-C, 602A-C) in the at least one group in a randomized manner when the at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; as well as - executing said instructions to control said movement of said objects in said at least one group from their respective starting positions to said target area on said graphical user interface.

2. A computer-implemented method according to claim 1, wherein the at least one randomly variable parameter includes at least one of the following: the starting time for the given object to move, the speed at which the given object is to move, the direction in which the given object is to start moving, and the initial distance to be covered by the given object in the direction.

3. A computer-implemented method according to claim 1 or 2, wherein the at least one randomly variable parameter includes a start time for the given object to move, and wherein the method further comprises randomly selecting the start time to start within a predefined time period from a predefined time (t0).

4. A computer-implemented method according to any one of the preceding claims, wherein the at least one randomly variable parameter comprises a speed at which the given object is to move, and wherein the method further comprises randomly selecting the speed from a predefined speed range.

5. The computer-implemented method of any one of the preceding claims, wherein the at least one randomly variable parameter comprises a direction in which the given object is to begin moving, wherein the method further comprises: - for a given object, determining a direction range in which the given object can start to move based on the relative positions of the target area (208, 304, 404, 504, 604), the at least one obstacle (210, 212, 306, 308, 406) and the remaining objects in the at least one group (206, 302, 402, 502, 602) relative to the given object; as well as - randomly selecting the direction in which the given object is to start moving from the range of directions.

6. A computer-implemented method according to any of the preceding claims, wherein the instructions are generated to control the movement of the objects (206A-E, 402A-C, 602A-C) in the at least one group (206, 302, 402, 502A-C, 602) in such a way that the objects arrive at the target area in a predefined order.

7. The computer-implemented method of any of the preceding claims, further comprising identifying a primary object (602A) from among the objects (602A-C) in the at least one group (602), wherein movement of the primary object is followed by movement of remaining objects (602B-C) in the at least one group.

8. A computer-implemented method according to any of the preceding claims, wherein at least one group of objects (206, 302, 402, 502A-C, 602) includes multiple groups of objects (502A-C), wherein the method further includes assigning corresponding intermediate target areas (504A-C) to the multiple groups of objects, wherein objects in a given group first reach the corresponding intermediate target area and then move from their corresponding intermediate target area towards the target area (504).

9. The computer-implemented method of claim 8, further comprising: The plurality of objects presented on the graphical user interface (203, 300, 400, 500, 600) are divided into the plurality of groups (502A-C) based on at least one of a distance of the given object from the target area and a signal strength of a sensor of the given object.

10. An apparatus (200), comprising: Display screen (202); as well as The processor (204) is configured to: - generating and displaying a graphical user interface (203, 300, 400, 500, 600) on the display screen; - receiving a request to move at least one group of objects (206, 302, 402, 502A-C, 602) to a target area (208, 304, 404, 504, 604) on the graphical user interface; - detecting when at least one obstacle (210, 212, 306, 308, 406) is in a path between the target area and at least one group of objects; - generating instructions for controlling the movement of the objects (206A-E, 402A-C, 602A-C) in the at least one group in a randomized manner when the at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; as well as - executing said instructions to control said movement of said objects in said at least one group from their respective starting positions to said target area on said graphical user interface.

11. An apparatus (200) according to claim 10, wherein the at least one randomly variable parameter includes at least one of the following: the starting time at which the given object is to move, the speed at which the given object is to move, the direction in which the given object is to start moving, and the initial distance to be covered by the given object in the direction.

12. An apparatus (200) according to claim 10 or 11, wherein the at least one randomly variable parameter includes a start time at which the given object is to move, and wherein the processor (204) is further configured to randomly select the start time to start within a predefined time period from a predefined time (t0).

13. The apparatus (200) according to any one of claims 10 to 12, wherein the at least one randomly variable parameter comprises a speed at which the given object is to move, and wherein the processor (204) is further configured to randomly select the speed from a predefined speed range.

14. The apparatus (200) according to any one of claims 10 to 13, wherein the at least one randomly variable parameter comprises a direction in which the given object is to start moving, wherein the processor (204) is further configured to: - for a given object, determining a range of directions in which the given object can start to move based on the relative positions of the target area (208, 304, 404, 504, 604), the at least one obstacle (210, 212, 306, 308, 406), and the remaining objects in the at least one group (206, 302, 402, 502A-C, 602) relative to the given object; and - randomly selecting the direction in which the given object is to start moving from the range of directions.

15. A system comprising a server, the server being communicatively coupled to a plurality of devices (200) according to any one of claims 10 to 14, wherein the plurality of devices collaborate via corresponding graphical user interfaces (203, 300, 400, 500, 600), wherein the server is configured to: - receiving a request from a given device to move at least one group of objects (206, 302, 402, 502A-C, 602) to a target area (208, 304, 404, 504, 604) on a corresponding graphical user interface; - detecting when at least one obstacle (210, 212, 306, 308, 406) is located in a path between the target area and at least one group of objects on the respective graphical user interface; - generating instructions for controlling the movement of the objects (206A-E, 402A-C, 602A-C) in the at least one group in a randomized manner when the at least one obstacle is detected to be located in the path, wherein the instructions indicate at least one randomly variable parameter to be adopted during the movement of a given object in the at least one group; and - sending the generated instructions to said given device, The processor (204) of the given device is configured to execute the instructions to control the movement of the objects in the at least one group from their respective starting positions to the target area on the graphical user interface.

16. A system according to claim 15, wherein the at least one randomly variable parameter includes at least one of the following: the starting time for the given object to move, the speed at which the given object is to move, the direction in which the given object is to start moving, and the initial distance to be covered by the given object in the direction.

17. A system according to claim 15 or 16, wherein the at least one randomly variable parameter includes a start time at which the given object is to move, and wherein the server or the processor (204) is also configured to randomly select the start time to start within a predefined time period from a predefined time (t0).

18. A system according to any one of claims 15 to 17, wherein the at least one randomly variable parameter comprises a speed at which the given object is to move, and wherein the server or the processor (204) is further configured to randomly select the speed from a predefined speed range.

19. The system according to any one of claims 15 to 18, wherein the at least one randomly variable parameter comprises a direction in which the given object is to start moving, wherein the server or the processor (204) is further configured to: - for a given object, determining a range of directions in which the given object can start to move based on the relative positions of the target area (208, 304, 404, 504, 604), the at least one obstacle (210, 212, 306, 308, 406), and the remaining objects in the at least one group (206, 302, 402, 502A-C, 602) relative to the given object; and - randomly selecting the direction in which the given object is to start moving from the range of directions.

20. A computer program product comprising a non-transitory computer-readable storage medium having computer-readable instructions stored thereon, the computer-readable instructions being executable by a computing device comprising a processor (204) to perform the method of any one of claims 1 to 9.