Create a small networked chat application

Assignment Help JAVA Programming
Reference no: EM132120576

Chatbots

Create a small, networked chat application that is populated by bots.

Introduction

On an old server park, filled with applications from the early days of the internet, a few servers still run one of the earliest chat applications. The number of servers has dwindled, so everyone who uses it knows all the servers there are. Humans have long since left the place, but for some reason the bots never left.

While the servers run bots themselves, either for moderation or simply to keep the chat lively, there are also migratory bots that fly to the southern servers when the chats get cold, as well as free bots that participate in many chats at a time.

These bots, despite being old, manage interesting levels of interaction. They copy each others messages, and have a remarkable level of variety in the number of messages they produce.

Concrete Processes

Your application will consist of a number of chatrooms. These chatrooms have a feed. If a message is sent to the feed, that message is forwarded to every participant. Chatrooms are listed as a global resource, and are accessible by everyone. They are accessible via Port and IP-address.

A local bot can be in only one particular chatroom. Local bots have an AI that is limited to
- Changing its message
- Sending a message
- Crashing

They are added to a chatroom, and never leave again.

A migratory bot can also migrate to other chatrooms. When it does, it forgets the old chatroom, and upon arriving in the new chatroom, the chatroom informs it of its feed, so it can send messages to the feed and receive messages as well.

Independent bots are run of separate machines, and as such need to connect to each chatroom with a handler, that handles traffic between the remote bot and the server by forwarding posts from the bot to the feed, and sending updates from the feed to the bot. Independent bots expand upon migratory bots through:
- Not migrating, instead
- Joining a server
- Leaving a server
This provides a lively ecosystem of bots. Naturally all bots are independent, which means that you need a thread for every single one.

Changing Messages

Changing a message is one of the ways bots try to keep things fresh in their chatrooms. Of course a good bit of spamming is never off, so copying the message of another bot verbatim is always an option. In some cases however, a bot will try a more sophisticated algorithm.

At the start, the bot will select a number close to the average number of words in a sentence among the messages it receives (but at most the maximum). Then, it will create a new sentence by, for each physical position in the sentence, copying a word in that place. For example, if it chooses 3, and receives the sentences "I see green", "I am not" and "Do you understand?" It will generate: "I am understand?".

View

It will be interesting to see what kind of spam bots see and create. Because multiple threads printing to one console is difficult to track, make a simple UI: A frame displaying print statements, used for each bot or chatroom. Do not spend any more time than necessary on your UI. Do not make a fancy configurator. Only a simple view is sufficient.

Requirements

In summary, the concise functionality is:
- Chatrooms
- Three kinds of bots with random AIs
- A view for bots and chatrooms. Achieved by means of:
- A Client-Server pair
- Copious amounts of Threads
Some useful resources: Server-Client pair, Server Socket, Socket, ObjectOutputStream, ObjectInputStream, Thread, Synchronized Methods, Random .
As extras you could think of adding human interaction, more sophisticated message generation or chat modes such as r9k.
Assignments in 2017 LuL > LUL

Reference no: EM132120576

Questions Cloud

Accordance with the case study guidelines document : Complete and submit the case study in accordance with the Case Study Guidelines document.
Business Portfolio and Dynamic Capability Development Report : MBA501 Dynamic Strategy and Disruptive Innovation Assessment - Business Portfolio and Dynamic Capability Development Report, KAPLAN Business School Australia
Describe two ways in which the permanent income : Describe two ways in which the permanent income theory of consumption is different from the spending model's consumption demand.
Discuss the eligibility requirements in detail : One of the largest government programs for health care coverage is Medicare (MCR) and it consists of multiple parts. Define each part of the MCR program.
Create a small networked chat application : Create a small, networked chat application that is populated by bots - They copy each others messages, and have a remarkable level of variety in the number
How is efficiency different from productivity : How is productivity defined? Why is productivity important? How is efficiency different from productivity?
What do you think facebook social responsbility : What do you think Facebook's social responsbility should be to its users and the communitites that is serves?
Determine the necessary safety inventory level : Determine the necessary safety inventory ( safety stock) level for a continuous replenishment policy.
Why do companies dislike pure competition : Why do companies dislike pure competition? Would it make economic sense to break up monopolies created by governments? Why or why not?

Reviews

Write a Review

JAVA Programming Questions & Answers

  Recursive factorial program

Write a class Array that encapsulates an array and provides bounds-checked access. Create a recursive factorial program that prompts the user for an integer N and writes out a series of equations representing the calculation of N!.

  Hunt the wumpus game

Reprot on Hunt the Wumpus Game has Source Code listing, screen captures and UML design here and also, may include Javadoc source here.

  Create a gui interface

Create GUI Interface in java programing with these function: Sort by last name and print all employees info, Sort by job title and print all employees info, Sort by weekly salary and print all employees info, search by job title and print that emp..

  Plot pois on a graph

Write a JAVA program that would get the locations of all the POIs from the file and plot them on a map.

  Write a university grading system in java

University grading system maintains number of tables to store, retrieve and manipulate student marks. Write a JAVA program that would simulate a number of cars.

  Wolves and sheep: design a game

This project is designed a game in java. you choose whether you'd like to write a wolf or a sheep agent. Then, you are assigned to either a "sheep" or a "wolf" team.

  Build a graphical user interface for displaying the image

Build a graphical user interface for displaying the image groups (= cluster) in JMJRST. Design and implement using a Swing interface.

  Determine the day of the week for new year''s day

This assignment contains a java project. Project evaluates the day of the week for New Year's Day.

  Write a java windowed application

Write a Java windowed application to do online quiz on general knowledge and the application also displays the quiz result.

  Input pairs of natural numbers

Java program to input pairs of natural numbers.

  Create classes implement java interface

Interface that contains a generic type. Create two classes that implement this interface.

  Java class, array, link list , generic class

These 14 questions covers java class, Array, link list , generic class.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd