Giter VIP home page Giter VIP logo

bnoggles's Introduction

Bnoggles

A word game for iOS and Android. Swipe through letters to find all words hidden in a grid.

This project is based on the Flutter application development SDK.

Install for end users

Download the app via the Apple App Store or the Google Play Store.

Example

dutch-game

bnoggles's People

Contributors

bennorichters avatar rspilker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

bnoggles's Issues

Exception when turning to landscape mode

When during gameplay the screen is rotated from portrait to landscap I get the following output in the console:

I/flutter (32302): The following message was thrown during layout:
I/flutter (32302): A RenderFlex overflowed by 426 pixels on the bottom.
I/flutter (32302): 
I/flutter (32302): The overflowing RenderFlex has an orientation of Axis.vertical.
I/flutter (32302): The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
I/flutter (32302): black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
I/flutter (32302): Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
I/flutter (32302): RenderFlex to fit within the available space instead of being sized to their natural size.
I/flutter (32302): This is considered an error condition because it indicates that there is content that cannot be
I/flutter (32302): seen. If the content is legitimately bigger than the available space, consider clipping it with a
I/flutter (32302): ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
I/flutter (32302): like a ListView.
I/flutter (32302): The specific RenderFlex in question is:
I/flutter (32302):   RenderFlex#50038 relayoutBoundary=up1 OVERFLOWING
I/flutter (32302):   creator: Column ← _InheritedProvider ← Provider ← MediaQuery ← LayoutId-[<_ScaffoldSlot.body>] ←
I/flutter (32302):   CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
I/flutter (32302):   _InkFeatures-[GlobalKey#91812 ink renderer] ← NotificationListener<LayoutChangedNotification> ←
I/flutter (32302):   PhysicalModel ← ⋯
I/flutter (32302):   parentData: offset=Offset(0.0, 80.0); id=_ScaffoldSlot.body (can use size)
I/flutter (32302):   constraints: BoxConstraints(0.0<=w<=683.4, 0.0<=h<=331.4)
I/flutter (32302):   size: Size(683.4, 331.4)
I/flutter (32302):   direction: vertical
I/flutter (32302):   mainAxisAlignment: start
I/flutter (32302):   mainAxisSize: max
I/flutter (32302):   crossAxisAlignment: center
I/flutter (32302):   verticalDirection: down

The screen also displays an error message:
screenshot_20181022-220335

Show board on results screen

When scrolling though the list of possible words, I would like to see the board I've been playing.

If possible, when a word is selected, highlight it on the board, preferably using arrows or animation to show the full path, not just the letters used.

Allow users to abort game

If there is time remaining, but I cannot think of any words anymore, I'd like to be able to go to the results screen without having to wait until time is up.

Too many non-words

For English, there are a lot of short words that are not really words. Like “st“ or “sri“. This makes it really hard to find all the words.

Add logo

Replace flutter logo with own application logo.

Improve board generation

Some boards are great, others not so.

Currently the board is generated by randomly selecting letters based on the frequency they occur in their language.

Some problems:

  • Clusters of consonants. (dead letters, not part of any dictionary word)
  • Lonely X and Q
  • Boards with too few solutions

Possible improvements:

  • Start with placing a 9+ word on the board. Possibly adjust the bias for generating the rest of the letters.
  • Use letter combination frequency (we can generate those from the dictionary) to improve the chances of finding words that contain letters that have a low frequency. Examples: 'Q' raises the chance of a neighboring 'U', or in Dutch, improve the chances of generating a 'sch' or 'ij' path.
  • Replace dead letters. Letters that are not part of any of the found words can be replaced by other letters. Possibly it is easier to regenerate a whole new board. Don't forget to stop after a few tries. We could also say that each board letter should be part of at least two words. Keep in mind that the solver needs to be able to find all occurrences of the dictionary words for this to work.
  • Build the board by fitting dictionary words, not by selecting single letters. (nice programming challenge). The difference with replacing dead letters is that this can optimize for putting in as many words as possibly. The algorithm should not be too strict to prevent generating the same puzzles.

Or a combination of some of the ideas above.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.