Giter VIP home page Giter VIP logo

warble's Introduction

CI Lint GitHub GitHub release (latest SemVer)

Icon

Warble

Get it on AppCenter Download on Flathub

Screenshot Screenshot Screenshot Screenshot

The word-guessing game

Warble is a native Linux word-guessing game built in Vala and Gtk for elementary OS.

Figure out the word before your guesses run out!

  • Three difficulty levels
  • Almost 5k possible answers
  • Need a break? Close the game and automatically pick back up where you left off

Warble is inspired by (and not affiliated with) the recently popular online game Wordle (which itself is reminiscent of the late 80's game show Lingo).

Installation

If you are not on elementary OS, you can install Warble from Flathub:

$ flatpak install flathub com.github.avojak.warble

Community Packages

The officially supported method of installing Warble is via the flatpak, however there are several other packages maintained by the community for support on other platforms:

Source Channel/Branch Version
Snapcraft stable
edge
Fedora rawhide Fedora Rawhide
f37 Fedora 37
f36 Fedora 36
f35 Fedora 35
AUR AUR package

Install from Source

You can install Warble by compiling from source using flatpak-builder:

$ flatpak-builder build com.github.avojak.warble.yml --user --install --force-clean
$ flatpak run --env=G_MESSAGES_DEBUG=all com.github.avojak.warble

Another helpful environment variable to set is GTK_DEBUG=interactive for investigating UI and styling issues.

Word List

The dictionary.txt word list is sourced from sindresorhus/word-list.

Project Status

This project is very much in-progress and has a lot of remaining work. Check out the Projects page to track progress towards the next milestone.

Please keep in mind that at this time I am developing Warble as a personal project in my limited free time to learn Vala and contribute back to the elementary OS community, so do not be offended if I reject a pull request or other contribution.

Buy Me A Coffee

warble's People

Contributors

archisman-panigrahi avatar avojak avatar cassidyjames avatar lenemter 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

warble's Issues

Add high-contrast option

Need to add a toggle to switch colors to a high-contrast mode for accessibility.

Should also update the Help dialog to not make direct references to specific colors, and instead show the example alongside.

Need to determine:

  1. Which colors to use
  2. If there's a way to determine whether this should be enabled from the system (similar to dark style preference)

Closing One Warble Window Closes All Open Instances

Describe the bug
Closing one Warble window closes all open instances.

To Reproduce

  1. Open many Warble windows.
  2. Close one of them.
  3. They all fall down.

Expected behavior
Closing one window should only close that one window.

Environment (please complete the following information):

  • OS Version: elementary OS 6.1
  • Warble Version: 1.2.0

Additional context
I wonder also, how Warble instances are tracking separate internal state, and if you play multiple games across different window instances, if the gameplay statistics per window will either clobber each other, or aggregate.

Supporting multiple languages/dictionaries

Thank you for this great application.
While diving into the source code I realized it would be pretty nice to support not only english words but a variety of other languages.

For example, instead of having the file called dictionary.txt, it could be called dictionary..txt (same with words.txt), and then through a language selection menu it would be possible to switch languages.

I did do some research for my own language's word list and found this: https://github.com/enz/german-wordlist or https://gist.github.com/MarvinJWendt/2f4f4154b8ae218600eb091a5706b5f4. I could create two lists out of it, a dictionary with only 5 letter words and then a word list with roughly the same amount of words provided in the english set.

We then could to the exact same thing with french, spanish, or any other language that can be provided through a PR.
(ex. https://github.com/words/an-array-of-spanish-words, https://github.com/words/an-array-of-french-words)

Users should be able to Reset their Gameplay Statistics

Is your feature request related to a problem? Please describe.
Users should be able to reset their gameplay statistics.

Describe the solution you'd like
Upon viewing gameplay statistics, there could/should be a danger-level button on the other side of "close" that resets the gameplay stats.

Describe alternatives you've considered
The user can live forever in unending, agonizing toil of their imperfect scores being unresettable, and seethe in their imperfections indefinitely.

Unable to deselect menu button

When the menu icon button gains focus you can't deselect it. This causes the pop up menu to open whenever a user makes a guess.

Improve dark mode colors

Is your feature request related to a problem? Please describe.
Currently the playfield (both key and square) doesn't have a dark color when gtk_application_prefer_dark_theme is true, as illustrated below:

With custom stylesheet (Adapta-Nokto) With elementary stylesheet

This leads to an unpleasant high contrast when dark mode is activated.

Describe the solution you'd like
elementary OS screenshot

As other GTK/native elementary OS applications choose to use a darker color for inputs, a lighter color for buttons, we can also follow their behavior.

  • Squares should have a darker background than base (it's supposed to be deeper when considering a real-life game board)
  • Keys should have a brighter background than base

Describe alternatives you've considered
Use native GTK components and color with semantic color names (gdk_color_parse)

Maybe an option for colorblind people?

I for one can not distinguish between a correct letter in the correct place, and a correct letter in the wrong place.

Maybe a higher contrasting or dissimilar tile color like blue for one of the two.

Maybe I should learn Vala and GTK...

Titlebar doesn't respect close button position

I know this app is made for elementary OS, but considering it's on Flathub, it might be nice to be a little more cross-desktop friendly. 😉 Right now, the close button always appears on the left, but most other desktops have it set to the right (GNOME on Fedora, Ubuntu, Pop!_OS, etc.).

I believe this should be pretty easy to respect, as it should be built-in behavior in titlebars; if I get a minute, I can throw a PR your way as well. 😄

Does not work in Ubuntu 20.04 LTS

Describe the bug

  1. Can open using applications
  2. lower part of window is off the bottom of the screen
  3. cannot move window
  4. cannot close applications

Environment (please complete the following information):

  • OS Version: Ubuntu 20.04.3 LTS
  • Warble Version: unknown; latest install version via Flatpak

Claims word isn't word when it is

Describe the bug
I entered the word of the male organ and the program claims it isn't a word when it certainly is.

To Reproduce
Steps to reproduce the behavior:
Enter the name of the male organ.
Notice you can't.

Expected behavior
For the word to be recognized.

Screenshots
image

Environment (please complete the following information):

  • OS Version: Fedora 36 KDE
  • Warble Version: 1.3.1

Potential answers and accepted word list mismatch?

First, thanks for releasing this game, I've been enjoying it a lot!

Describe the bug
I had a round recently where the correct answer was not being accepted as a real word:

Screenshot from 2022-01-12 21-40-18

I guess this is filtered out as a potentially problematic word, but was still able to come up as the answer.

Expected behavior
The allowed word list and possible answers list should be exactly the same, with no words appearing in one but not the other.

Environment (please complete the following information):

  • OS Version: Elementary OS 6.1
  • Warble Version 1.0.1

Getting Build Error:

cc -Isrc/com.github.avojak.warble.p -Isrc -I../src -Idata -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/libdrm -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/uuid -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gee-0.8 -I/usr/include/granite -I/usr/include/libhandy-1 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -w -g '-DGETTEXT_PACKAGE="com.github.avojak.warble"' -pthread -MD -MQ src/com.github.avojak.warble.p/meson-generated_Widgets_GameArea.c.o -MF src/com.github.avojak.warble.p/meson-generated_Widgets_GameArea.c.o.d -o src/com.github.avojak.warble.p/meson-generated_Widgets_GameArea.c.o -c src/com.github.avojak.warble.p/Widgets/GameArea.c
../src/Widgets/GameArea.vala: In function ‘warble_widgets_game_area_update_states’:
../src/Widgets/GameArea.vala:383:12: error: incompatible types when assigning to type ‘WarbleModelsState’ {aka ‘enum ’} from type ‘gconstpointer’ {aka ‘const void *’}
rows.get(current_row).get(entry.key).state = entry.value;
^
../src/Widgets/GameArea.vala:402:12: error: incompatible types when assigning to type ‘WarbleModelsState’ {aka ‘enum ’} from type ‘gconstpointer’ {aka ‘const void *’}
var new_state = entry.value;
^
ninja: build stopped: subcommand failed.

error: The type name `Granite.Dialog' could not be found

Describe the bug
Build failed.

To Reproduce

  1. git clone https://github.com/avojak/warble.git
  2. meson build --prefix=$HOME/.local/usr
  3. ninja -C build install
  4. See build fail message (please see attached file: 000ERR.txt)

Expected behavior
Successful build.

Environment (please complete the following information):

  • OS Version: Debian GNU/Linux 10
  • Warble Version: 1.2.0

No title for application window

There is no title set for the main application window, so the app ID appears in the app switcher instead of the app name.

Use the keyboard UI for input

Is your feature request related to a problem? Please describe.

When I saw the cute little keyboard buttons, I wanted to click them! :D

Describe the solution you'd like

I think it'd make sense for them to be buttons. This would also make the game more accessible e.g. with just the mouse and on touch devices.

Describe alternatives you've considered

You could not make them clickable, I guess 😂

Additional context

If you make the game playable with just the mouse/touch, you'd probably need to add a submit and backspace button to the UI, too.

Force the use of the elementary stylesheet on other platforms.

Describe the bug
Running the AppCenter flatpak on a system that uses a different GTK stylesheet (Adwaita) causes the app to look odd.

To Reproduce
Simply install the application on a non-elementary system.

Expected behavior
App should maintain it's elementary style and branding regardless of the platform it is run on.

Screenshots
Screenshot from 2022-01-18 12-01-21
Screenshot from 2022-01-18 12-01-42

Environment (please complete the following information):

  • OS Version:
Linux abrar-desktop 5.16.0-zen1-1-zen #1 ZEN SMP PREEMPT Mon, 10 Jan 2022 20:12:01 +0000 x86_64 GNU/Linux
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux-logo
  • Warble Version
    V1.1.1

Suggest pressing "Enter" if a row is full

Is your feature request related to a problem? Please describe.

I'm a little slow, so I filled up a row and got "stuck" 😅 I read the directions but somehow it didn't click that I was meant to submit my answer once I'd filled up a row and not the full screen

Describe the solution you'd like

If a row is full, it would be nice to have some kind of on-screen suggestion or action to submit your answer

Describe alternatives you've considered

After a couple seconds you could throw a toast

I think what might be simplest though is fading in a button at the end of the row. go-jump is probably the most appropriate icon name for this (though it's a big ugly, sorry! I'll add that to my list of icons to fix up soon)

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.